21 hours ago
- ROCm 采用 SPIR-V 作为 AMD GPU 的便携中间表示,实现了‘一次编译、按设备特化’的模型,替代了传统针对每个目标架构的提前编译方式。
- SPIR-V 解决了扩展性问题:消除了因针对每个目标架构的提前编译而带来的长构建时间、庞大臃肿的二进制文件以及缺乏前向兼容性的问题,使得单一二进制文件能够在未来的 GPU 架构上运行。
- 其关键特性是延迟解析的特性谓词(ZCFS),通过诸如 __builtin_amdgcn_processor_is 和 __builtin_amdgcn_is_invocable 等内置函数,实现了按架构分派而无需运行时开销。
- 基准测试显示,无论目标数量多少,SPIR-V 都能提供稳定的构建时间和二进制大小,而臃肿的二进制文件大小则呈线性增长;首次启动时的即时编译延迟(约 70-100 毫秒)通过缓存机制得到了缓解。
- 当前状态包括已发布 amdgcnspirv 目标和即时编译缓存;正在进行中的开发包括集成到 LLVM 主线的 SPIR-V 后端以及在软件包安装时进行即时编译;库的覆盖范围仍然是其局限所在。