课程笔记:SPIR-V 代码生成流程 | Taichi
本文是 Taichi 官方教学视频的笔记:
入门GPU编译,一堂课看懂SPIR-V | 快速上手Vulkan, OpenCL背后的技术
Compute Shaders
Resource Binding
对于参数和返回值,是特殊的数据结构,需要进行特殊处理。而对于其他普通的 buffer,则会先查找之前是否已经 bind 过,有的话就直接返回,否则生成一个新的 binding:
在访问完所有的 stmt 后,调用 get_buffer_binds 把上述 map 变成 一个 list:
SIMT Execution
对于 const range,total thread number 设置为 element number;对于 dynamic range,total thread number 设置为常量 65536(没有任何意义,随便设置的)。
Logical Addressing
代码结构
其他细节
课程笔记:SPIR-V 代码生成流程 | Taichi