今天合并到主线LLVM的代码正在为跨GFX9、GFX10和GFX11 GPU系列的通用目标概念做准备。在后续工作中,这些通用目标的目标是允许编译代码一次,然后在给定硬件系列中的多个GPU上运行。
今天合并到AMDGPU LLVM后端的代码允许新的通用目标gfx9-通用(Vega)、gfx10.1-通用(RDNA1)、gfx10.3-通用(RDNA2)和gfx11-通用(RDNA3),供那些想要针对给定一代并为该目标构建能够在各种GPU上很好地工作的二进制代码的人使用。
LLVM提交解释:
这些通用目标包括多个GPU,未来将提供一种构建一次并在多个GPU上运行的方法,代价是优化机会较少。
请注意,这只是在编译器方面做事情,设备库运行时/加载器等还不知道这些目标,所以它们现在都没有实际工作。这只是让LLVM意识到它们的初始承诺。
这是AMDGPU在他们的编码对象V6 support.