AI Pulse

5KB汇编程序让旧电脑跑起Gemma-2B,每秒4.6词

5KB推理引擎

一位开发者用纯x86-64汇编语言(FASM)写了一个Gemma-2B推理引擎。整个引擎只有5.2KB机器码,分两个文件:3.7KB的核心引擎(gemma_engine.bin),加上1.5KB的矩阵乘子程序(mat_smp_f16c_gemm_avx2.bin)。

在较老的四核i5台式机上,引擎以FP16精度解码,速度约为每秒4.5到4.7个token。一位评论者说,这个速度对2B模型跑在CPU上相当不错,CPU跑问答模型总算有点用了。

技术特点集中在硬件层:只用AVX2和F16C指令集,预填充阶段跑自己写的4线程SMP GEMM,在普通DDR4-2400内存上能维持约18.5GB/s带宽。

没有运行时依赖

整个引擎没有C/C++运行时,也没有PyTorch。Python测试脚本也只通过ctypes调用VirtualAlloc和操作系统线程。

作者在项目说明里划清了边界:这不打算跟llama.cpp这类功能完整的工具竞争。项目是一次从第一性原理出发的探索,看一个现代Transformer能多干净地映射到裸机硬件上。这也是给未来资源受限的MCU/DSP上的微型LLM留一个参考点。

评论区问的一个问题

评论区有人问得很具体:5.2KB是否包含分词器?还是引擎只接收token ID,文本解码在外面做?

一段30年前的对照

评论区里有一条高票回复,说的是30年前的一段往事。有公司用原生80x86汇编写了一个完整的集成软件包,数据库、电子表格、图表、文字处理器和编程语言都在里面。这位回复者自己的C语言编译器,在基准测试中平均比那套汇编软件快12倍。他提醒,汇编编码不会自动带来性能,算法选择同样重要。

有人留言说,正在尝试复活自己旧的32位x86汇编源码,想回到汇编编程。也有人建议作者在README里加一段实时GIF演示,让运行效果更直观。

项目已在GitHub开源,仓库名PULSAR-ASM,并附有架构说明文档。

阅读原文
📚 相关主题 开源工程

订阅 AI Pulse

每天 08:00 · 12:30 · 18:30 · 23:50 更新