基础知识
纯SIMT编程场景当前不支持使用SIMT API,敬请期待后续版本的正式发布。
与SIMD编程不同,在SIMT编程中Global Memory上的数据可以被直接读取和使用。SIMT编程常通过组织线程的层次结构来实现数据切分,使用threadIdx等SIMT BuiltIn关键字计算线程应处理的数据索引,完成对应数据的计算,从而将函数的实现简化为标量计算。
SIMT是Ascend C单指令多线程的编程抽象,允许一条指令对数据进行独立寻址,更加灵活, 如下图所示,对于离散访问的算子,适合使用SIMT编程实现,例如Scatter类与Gather类算子。此外,线程可以独立执行,每个线程具有较高的灵活性,能够执行不同的逻辑分支以完成复杂的逻辑实现。

父主题: SIMT算子实现