Warp Scheduler 如何通过 Verilog 实现

    2025-09-17

    本文主要介绍如何通过 Verilog 设计一个简单的 Warp Scheduler,Warp Scheduler 是 GPU 中用来调度 Warp、 发射指令的模块。

    Warp 概念

    Warp 可以理解为 一组线程(比如 32 个)。正常情况下,Warp 内的所有线程会执行同一条指令。那么我们为什么需要 Warp 呢?首先,管...

    Read More

    Minimind 代码解析 2

    2025-08-11

    MoEForward

    本文主要介绍 MiniMind 的代码解析,是该系列的第二篇文章。”minimind 是一个著名的开源项目。它没有使用各种高度抽象的接口,为我们展示了训练一个语言模型的细节(没有让细节被隐藏在各种第三方库之下)。因此,它也是入门 LLM 的一个很好的开源项目。 这篇文章解析了部分 minimind 的代码,并给出了...

    Read More

    Minigpu 如何构建 Tensorcore

    2025-08-11

    本文是 miniGPU 系列的第二篇文章,介绍我们设计的 TensorCore。TensorCore 的主要作用是 在一个周期内实现 FMA 运算。也就是一个乘加运算($D=AB+C$),我们的设计中,TensorCore 处理的是 $4\times 4$ 的矩阵;另一个比较重要的特性是,TensorCore 可以进行混合精度运算。

    混合精度 Read More

    Muzero

    2025-08-06

    MuZero 整体架构

    MuZero 是一种强化学习算法,在大名鼎鼎的 AlphaZero 的基础上有一定的突破与改进。MuZero 主要有预测三个函数:
    我们首先介绍一些符号,$o^k$ 代表第 k 步观察到的状态,$r^k$ 代表预测第 k 步获得的即时奖励,$s^k$ 代表第 k 步的隐藏状态,$a^k$ 代表...

    Read More

    计算机如何实现浮点运算

    2025-07-29

    本文基于 IEEE754 标准,介绍计算机实现 FP32(32 位浮点数)加法、乘法运算的过程,并提供一份 Verilog 实现,因为我并没有仔细推敲,所以我提供的代码可能效率不够高、简洁,仅作参考。

    IEEE754标准

    在 IEEE754 标准下,32 个比特位被拆分为 符号位(1bit)、指数位(8bit...

    Read More

    如何配置 Ssh X11 转发

    2025-07-28

    我们大部分时候通过 SSH 远程连接服务器,在命令行中输入指令实现操作。 如果你曾经尝试过在服务器上执行 类似 plt.show() 的命令的话,那么你应该知道,图形窗口是无法显示的,为了能够方便便捷地编程,我们希望在本机可以看到这些图形窗口。 这就需要用到 SSH X11 转发了。本文将介绍如何在 VSCode 上配置 X11 转发。

    ...

    Read More

    Minimind 代码解析

    2025-07-25

    minimind 是一个著名的开源项目。它没有使用各种高度抽象的接口,为我们展示了训练一个语言模型的细节(没有让细节被隐藏在各种第三方库之下)。因此,它也是入门 LLM 的一个很好的开源项目。 这篇文章解析了部分 minimind 的代码,并给出了一些运行结果,帮助对 Pytorch 不熟悉的人快速上手 minimind。

    mo...

    Read More

    Diffusion Model

    本文介绍扩散模型,从最经典的 DDPM 到 一些改进工作,从 实施步骤 到 一些总括性的理论。

    DDPM

    扩散模型从自然界中的扩散过程获得灵感,正向的扩散过程是一种 熵增过程,会损失一部分信息量。

    将扩散过程和图片生成联系起来是十分天才的想法,为了更好地理解扩散模型,我们需要一些先验知识。 i)时间跨度足够长的扩散过程...

    Read More
    View: User: