
【免费下载链接】BoothOpen-source CUDA, Triton and HIP compiler targeting multiple GPU and CPU architectures.项目地址https://gitcode.com/gh_mirrors/bar/Booth点击查看免费下载Booth 是一款开源的 CUDA、HIP 与 Triton 编译器它的 x86-64 CPU 后端可以把 CUDA 内核直接编译成在普通笔记本上运行的原生目标文件——不需要 GPU、不需要 NVCC、不需要 LLVM。今天这篇文章就带你用 Booth 的 CPU 后端在家完成 CUDA 内核的编译、运行与调试全流程。Booth 是什么一分钟认识一句话概括你平时交给nvcc、ROCm 或 Triton JIT 的源码文件Booth 都能读然后输出 AMD RDNA、NVIDIA PTX、Tenstorrent 等 GPU 二进制或者最让人惊喜的——普通的 x86-64 机器码在没有装过显卡的机器上跑起来。它的命令行工具叫kath致敬创始人 Kathleen Booth避开与 Linux 高可用组件booth重名。后端描述实现位于 src/cpu/cpu_be.c完整命令参考见 docs/usage.md。上图是 Booth 作者在新西兰住所对面的海港项目作者本人就住在 GPU 一样令人困惑的地方 完整致谢见 CONTRIBUTING.md。为什么需要 x86-64 CPU 后端学 GPU 编程最劝退的一点没有显卡就没法验证代码。Booth 的 CPU 后端改变了这一点零硬件门槛SIMT 线程被改写为 host 上的线程循环一次调用扫完全部元素完整前端支持CUDA C 和 Triton 内核走同一条编译管线连 Triton 的tl.dot矩阵乘法都能在 CPU 上跑调试友好可以用--ir、--ast、--sema逐层查看词法、语法与中间表示可靠的对照基准因为 CPU 后端最简单它还被官方用作差分测试的标准答案见下文⚠️ 定位要说清楚CPU 后端是正确性优先——每次调用单块执行、暂不支持寄存器分配它帮你验证逻辑而不是拼速度详见 docs/features.md。5分钟上手获取并构建 Booth构建只需要一个 C99 编译器gcc 或 clang 均可一条命令搞定git clone https://gitcode.com/gh_mirrors/bar/Booth cd Booth make验证安装./kath --version如果更省事官方还发布了 Linux/macOS/Windows 的免依赖预编译包解压即用无需make。编译第一个 CUDA 内核到 x86-64拿 GPU 界的Hello World——向量加法 tests/vector_add.cu 开刀./kath --cpu tests/vector_add.cu -o vadd.o一个参数之差同样的源文件就能输出不同目标命令产物./kath --cpu kernel.cux86-64 host 目标文件无需 GPU./kath --amdgpu-bin kernel.cuAMD RDNA 二进制./kath --nvidia-ptx kernel.cuNVIDIA PTX在 CPU 上运行内核唯一的隐藏参数这是 CPU 后端最有意思的设计调用约定 内核自身参数 末尾追加一个nthreads。函数体按thread_id从 0 到nthreads各跑一遍所以一维启动直接传元素个数即可。官方示例 examples/cpu_launch_vadd.c 完整演示了编译→链接→运行./kath --cpu -o vadd.o vadd.cu gcc -no-pie examples/cpu_launch_vadd.c vadd.o -o cpu_vadd ./cpu_vadd输出逐元素核对并给出OK判定。更硬核的还有 examples/cpu_launch_matmul.c把 Triton 矩阵乘法内核tests/tri_matmul.py编译到 CPU 上与主机参考实现逐格比对。调试工作流从中间表示到差分测试没有 GPU 也能拥有完整的调试链看中间产物——定位问题出在哪一层./kath --ir kernel.cu # 查看 BIR 中间表示 ./kath --ast kernel.cu # 查看语法树 ./kath --sema kernel.cu # 运行语义分析BIR 指令集完整文档见 docs/INSTRUCTIONS.md。差分测试——官方把 CPU 后端当作标准答案同一内核跑两个后端逐格比对答案不一致就能锁定是某个后端代码生成出了错。直接运行 tests/diff/run_diff.sh原理说明在 tests/diff/README.mdbash tests/diff/run_diff.sh自检工具——./kath doctor会报告本机设备与工具链情况并做自检。进阶Triton 内核同样零 GPU 可跑Booth 内置 Triton 前端解析triton.jitPython 源码直达 BIR./kath --triton --cpu tests/tri_vadd.py -o vadd.oTriton 的常量折叠、广播、[:, None]重塑等 tile 特性都会正常降级连 matmul 的运行时 K 循环都在 CPU 路径上实现见 tests/tri_vadd.py 与 tests/tri_matmul.py。用--lex、--parse、--sema还能分步检查前端解析过程。注意事项与后续路线上手前了解这些边界能少走弯路目前只编译 device 代码不生成 host 代码tl.load的 mask 暂不生效请让nthreads等于元素个数纹理/曲面、动态并行等 GPU 特性尚未支持完整清单见 docs/features.md已验证的硬件清单在 docs/hardware.md——当你的内核在 CPU 后端验证通过后再交给真实 GPU 后端风险会被大幅压缩。写在最后Booth 的 x86-64 CPU 后端把学习 CUDA/Triton 必须买显卡这道门槛拆掉了一台普通笔记本git clone加make就能编译、运行、调试 GPU 内核。它或许不算最快但它是你通往多架构 GPU 编程最便宜的第一块跳板。全部后端与参数docs/usage.md后端架构与扩展指南docs/backends.md路线图docs/roadmap.md赞分享【免费下载链接】BoothOpen-source CUDA, Triton and HIP compiler targeting multiple GPU and CPU architectures.项目地址https://gitcode.com/gh_mirrors/bar/Booth点击查看免费下载相关推荐如何把Triton矩阵乘法跑在没有GPU的笔记本上Booth CPU后端极简上手如何把Triton矩阵乘法跑在没有GPU的笔记本上Booth CPU后端极简上手 Booth 是一款开源的 CUDA、HIP 与 Triton 编译器它的Numba CUDA 模拟器完全指南在 CPU 上调试 CUDA Python 内核Numba CUDA 模拟器完全指南在 CPU 上调试 CUDA Python 内核 Numba 的 CUDA Simulator 是一个用纯 Python编译器高性能计算如何让CUDA程序在Windows Intel GPU上运行ZLUDA DirectX后端实战指南如何让CUDA程序在Windows Intel GPU上运行ZLUDA DirectX后端实战指南 ZLUDA是一个革命性的开源项目它实现了CUDA on高性能计算编译器创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考