MindStudio Insight里面的thread和stream
在 MindStudio Insight 的 Timeline 界面中,CANN 层使用 Thread 而 Ascend Hardware 层使用 Stream 来组织任务,这反映了两个层级在昇腾异构计算架构中所处的不同位置和承担的不同职责 。
CANN 是 Compute Architecture for Neural Networks 的缩写,它是昇腾AI处理器的计算架构,其软件栈运行在主机CPU上。它的主要职责是接收上层框架(如MindSpore、PyTorch)下发的计算任务,并进行任务管理、资源分配等 。在 Host 侧,任务的执行和管理是由操作系统进程和线程来调度的。因此,在 CANN 层,任务被组织在 Thread(线程) 泳道中,这反映了其在 CPU 上的多线程执行模式 。每个 Thread 子泳道主要包含 AscendCL、GE、Runtime 组件以及 Node(算子)的耗时数据。
Ascend Hardware 层位于 Device(设备侧,即NPU)。 这一层直接对应昇腾AI处理器(NPU)硬件的执行单元。它负责接收来自 Host 侧 CANN 层下发的具体计算任务,并在 NPU 上执行 。在 NPU 硬件上,为了最大化并行效率和资源利用率,任务会被调度到不同的硬件队列中并发执行。这些队列在软件层面被抽象为 Stream(任务流)。因此,在 Ascend Hardware 层,任务被组织在不同的 Stream 泳道中,每个 Stream 代表一个独立的任务执行流水线,记录着 AI 任务运行时各个 Task 在不同加速器下的执行耗时。
这种命名差异清晰地标示了任务在异构计算系统中的流动路径: 上层应用 → CANN(Host侧,CPU线程管理) → Ascend Hardware(Device侧,NPU流式执行)。CANN 层的 Thread 体现了 Host 侧 CPU 的软件调度和管理单元。 Ascend Hardware 层的 Stream 体现了 Device 侧 NPU 硬件的任务执行和并行流水线。 这种划分有助于用户理解从软件到硬件的完整执行栈,并定位性能瓶颈是发生在主机侧的任务调度,还是设备侧的计算执行 。
- 点赞
- 收藏
- 关注作者
评论(0)