我一直在阅读有关异构计算的内容并遇到了SPIR-V。在那里我发现了以下内容:
SPIR-V 是第一个用于本地表示并行计算和图形的开放标准、跨 API 中间语言。
从这张图片中我可以看到所有高级语言,如 GLSL、HLSL、OpenCL C 等,都被编译成 SPIR-V,并以这种方式传递给正确的物理设备以执行。
我的问题是为什么我们需要将我们的着色器/内核代码编译为 SPIR-V,而不是将其直接编译为将由所选物理设备执行的机器指令?如果这个问题不正确,您能否解释一下我们为什么需要 SPIR-V?