Rust 中的 GPU 卸载:把零开销、多厂商、内存安全的 GPU 编程原生搬进 rustc 与 LLVM
来源:arxiv.org — 2026-08
📋 概述
这篇论文提出把 GPU 编译框架原生构建进 Rust 编译器(rustc)和 LLVM 后端,实现零开销、多厂商的 GPU 卸载。传统 GPU 编程被迫在「执行效率」与「内存安全」之间二选一:要么用厂商锁定的 DSL,要么逃逸到裸指针 unsafe。作者利用 Rust 的所有权模型、类型系统与严格别名保证(noalias),通过 LLVM 的 Offload 基础设施管理并优化数据传输,并解决 Host/Device 之间 ABI 降级不匹配的问题,引入双通道编译管线来安全处理手动与编译器生成的两种内存移动。
🔑 核心要点
- 核心痛点:GPU 编程长期在执行效率与内存安全之间被迫二选一。
- 方案:把零开销、多厂商的 GPU 编译框架原生构建进 rustc 与 LLVM 后端,不做任何运行时开销。
- 利用 Rust 所有权、类型系统与 noalias 严格别名保证,通过 LLVM Offload 管理数据迁移。
- 直面 Host/Device 的 ABI 降级不匹配,提出双通道编译管线安全处理手动与编译生成的内存移动。
- 在 RAJAPerf 上的评估表明,rustc 方案能产出与手写优化的 CUDA/HIP C++ 相抗衡的 kernel 性能。
💡 金句
GPU 编程长期以来被迫在速度与安全之间二选一——这份工作想把它一次性还清。
👍 0
👎 0
← 返回 Lobsters 首页