---
title: 抽象硬件架构
description: "AI Core上的SIMT（Single Instruction Multiple Thread，单指令多线程）编程允许指令对数据进行独立寻址，从而支持线程级并行计算。这种方式特别适用于离散访问和复杂控制逻辑等场景，目前仅支持Atlas 350 加速卡。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/programug/Ascendcopdevg/atlas_ascendc_10_10064.html
sourcePath: /source/zh/canncommercial/900/programug/Ascendcopdevg/atlas_ascendc_10_10064.html
indexId: e8415f02a9ffc2ac679dc104e2d9c1183a8f7592c84551c679d2e25a73e63ea081
---
# 抽象硬件架构

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共享。

图1 SIMT抽象硬件架构图


以下是SIMT多线程计算涉及到的硬件资源的说明：

- 每个线程拥有独立的寄存器和栈空间，用于存储局部数据， 寄存器的数量受线程块内线程数量影响，线程数量越多，每个线程拥有的寄存器数量越少。
- Unified Buffer的一部分内存空间作为线程块内所有线程的共享内存（Share Memory），支持线程块内的线程进行数据交互，一部分作为读取Global Memory的Data Cache。
- SIMT模式中，读取Global Memory上的数据时，通过Data Cache单元完成数据中转，数据流经由Global Memory到Data Cache，再从Data Cache到寄存器。Data Cache是Unified Buffer中预留的一部分空间，其最大容量为128KB，最小容量为32KB，实际大小由用户自主分配。

若您对上述内容中的线程、线程块等概念不熟悉，建议查阅线程架构了解更多SIMT线程架构知识；同时，您也可以通过阅读内存层级，了解如何配置Data Cache、Unified Buffer的划分方式。
