AI Core上的SIMT(Single Instruction Multiple Thread,单指令多线程)编程允许指令对数据进行独立寻址,从而支持线程级并行计算。这种方式特别适用于离散访问和复杂控制逻辑等场景,目前仅支持Atlas 350 加速卡。
SIMT编程能够简化复杂算子和不规则控制流的开发,通过SIMT编程可以有效缓解包含分支等的发散计算,同时控制程序复杂度。在系统层面,这有助于提高硬件利用率和能效。如图1所示,AI处理器内部有多个Vector Core,每个Vector Core包含计算单元、Share Memory即Unified Buffer、寄存器和堆栈空间,核外的Global Memory是全局内存空间,被所有Vector Core共享。
以下是SIMT多线程计算涉及到的硬件资源的说明:
若您对上述内容中的线程、线程块等概念不熟悉,建议查阅线程架构了解更多SIMT线程架构知识;同时,您也可以通过阅读内存层级,了解如何配置Data Cache、Unified Buffer的划分方式。