GPU 编程
Kernel 语法、`GPU` 效果,以及今天可用的部分。
GPU 编程
Sounio 的目标是把 GPU 计算作为语言的一等能力,而不是事后补丁。
在表层语法上主要体现在:
kernel fn ...用于 GPU kernelwith GPU用于执行 GPU 操作的 host 函数(launch、设备内存、同步等)
今天可用的部分(编译器现状)
编译器接受 kernel fn 语法,并将 kernel 作为函数进行类型检查。
例如,下面的代码是有效的,并应当能够通过类型检查:
kernel fn noop(a: &[i32]) {
// A minimal kernel (no GPU intrinsics used).
}
fn main() with IO {
println("GPU docs: kernel syntax parses and type-checks.")
}
规范 vs 实现
完整的 GPU 编程模型包括:
- kernel 启动 API
- 设备内存分配与传输
- GPU intrinsic(线程/块 ID、同步等)
其中一些能力依赖特性开关,并且在真实硬件上执行 kernel 可能需要外部工具链(CUDA、Metal、SPIR-V)。
不确定时建议:
- 阅读
stdlib/gpu/下的 stdlib GPU 模块 - 查阅
spec/LANGUAGE_SPECIFICATION.md(GPU 章节) - 以编译器的测试与 fixtures 作为“今天能编译什么”的权威来源