逆向工程RK3588 NPU:构建开放编译器以36 tok/s运行GPT-2
摘要
逆向工程了RK3588 NPU并构建了一个开放编译器和运行时,以从PyTorch、ONNX和JAX运行GPT-2和SigLIP,无需供应商SDK。
去年我发布了关于黑客入侵RK3588 NPU以运行一个视觉编码器的文章(前一篇文章)。今年我全面开放了:逆向工程了寄存器格式,构建了一个开放编译器和运行时,现在GPT-2和SigLIP可以从PyTorch、ONNX和JAX运行,无需供应商SDK。故事链接:https://amohan.dev/blog/2026/opening-the-black-box-a-year-building-an-open-compiler-for-the-rk3588-npu/ 报告链接:https://amohan.dev/blog/2026/opennpu-v1-0-open-compiler-runtime-rk3588-npu/
相似文章
Qualcomm NPU 编译器的逆向工程
逆向工程 Qualcomm NPU 编译器揭示了未文档化的 VTCM 内存管理、基于 MILP 的布局、自动精度更改,以及一个用于边缘部署优化的隐藏分析模拟器(Hextimate)。
Show HN: NanoEuler – 从头开始用纯C/CUDA实现的GPT-2规模模型
NanoEuler 是一个完全用纯 C/CUDA 从头构建的 GPT-2 规模语言模型,不依赖任何机器学习库,包括手写的前向/反向传播、字节级 BPE 分词器和训练流水线。该项目是一个教育示范,展示了 Transformer 训练背后的工程原理,可在单个 RTX 4070 上运行。
一个可定制的编译器,用于为AI模型生成高效的融合GPU内核 [P]
作者介绍了一款用 Python 编写、高度可定制且易于修改的 ML 编译器。该编译器通过多级 IR 流水线将 LLMs 转换为优化的 CUDA 内核,在特定操作上实现了与 PyTorch 相当甚至更优的性能。文章详细阐述了该编译器的优化过程、降级规则以及用于生成高效融合 GPU 内核的 CLI 用法。
@no_stp_on_snek: 我的第二个且迟交的 Build Small 参赛作品。10天,1位开发者:从头构建的 Rust 引擎 + 自定义 GPU 内核 vs vLLM 在 N…
一位开发者从头构建了一个 Rust 推理引擎,带有自定义 GPU 内核,在 Nemotron-30B 解码上优于 vLLM,达到 75.7 vs 57 tok/s,提交至 Build Small 黑客马拉松。
@ying11231:在TPU上令人印象深刻的性能。
LMSYS Org 的一篇博客文章详细介绍了使用 SGLang-JAX 在 TPU v7x 上优化 Ling-2.6-1T(一个 1 万亿参数的混合 MoE 模型),通过单个 Pallas 内核将 MoE 数据移动隐藏在计算之后,从而实现高效的推理。