Wink Pings

qwenGPU:在Qwen3.5-2B的45个未训练层里跑CUDA

qwenGPU把4路SIMT GPU编译成Qwen3.5-2B的45个未训练层。模型自己写出每次真实CUDA启动的步骤,Gated DeltaNet状态被拿来当寄存器和内存。这个实验更像架构探针,离替代GPU还很远。

MarkTechPost 介绍了一个叫 qwenGPU 的实验:它把 4 路 SIMT GPU 编译进 Qwen3.5-2B,作为 45 个未训练层存在。模型自己生成每一次真实 CUDA 启动的步骤,并用 Gated DeltaNet 的状态充当寄存器和内存。

先把上下文补齐。CUDA 是 NVIDIA 的并行计算接口,SIMT 指单指令多线程,GPU 靠大量 lane 并行干活。qwenGPU 只做了 4 路 lane,规模小得像个教学模具。它的目标似乎不在吞吐,而在验证一件事:能不能把 GPU 的执行语义压进语言模型的前向计算里。

标题里的 runs CUDA 容易让人误会。按公开描述,它没有把 NVIDIA 驱动或真实显卡搬进模型。更准确地说,模型内部多出 45 层,这些层承担一个极简 SIMT 执行器的角色,CUDA launch 的流程在模型里被逐步展开。所谓“模型自己写每一步”,包括生成 kernel 启动配置、参数传递、内存读写这些动作。CUDA launch 本来就繁琐,grid、block、共享内存、同步点,每一步都能出错。让模型自己写,等于把执行计划也交给前向计算。

Gated DeltaNet 的状态在这里很关键。Gated DeltaNet 是带门控的线性注意力/状态模型,用递推状态保存历史信息。qwenGPU 把这个状态当寄存器与内存用,相当于让模型在序列推进时维护 GPU 执行现场。这个做法很巧,限制也明显:状态维度决定可寻址空间,4 lane 决定并行度,45 层决定能展开多复杂的程序。它能跑通 CUDA,不代表能跑得快,更不代表能跑大 kernel。

45 个未训练层是另一个细节。按字面理解,这些层没有用训练数据拟合 GPU 行为,它们由编译过程确定。公开摘要没展开初始化方式,也没说支持 CUDA 的哪个子集。单靠这段介绍,无法判断它能不能处理分支、循环、原子操作这些真实 kernel 常见结构。能确定的是,研究者的路子很野:他们把执行规则直接编译进权重和层结构,没走拿 CUDA 数据微调模型的常规路线。

这件事值得看的地方,在问题本身:如果模型能维护一个可执行的 GPU 状态,它就不只是生成代码,还能在内部走执行流程。对 AI 从业者,这提供了一种把程序语义嵌进模型结构的思路;对普通读者,可以把它理解成在语言模型里搭了一个极小的 GPU 模拟器。它现在离实用很远,但作为架构探针,已经够有意思。

原文链接:MarkTechPost

发布时间: 2026-11-02 15:28