【寒武纪(7)】MLU的cntoolkit:Cambricon-BANG架构和使用分析,MLU并行计算的硬件抽象、编程模型以及调优思路

文章目录

  • 硬件抽象
    • 1存储
      • 1.1.1 存储层次
      • 访存一致
    • 计算模型
      • 1 Core核内同步和并行
      • 2 核间并行和同步
  • 编程模型
    • 1、Kernel
      • 计算规模
    • 任务类型
    • 执行示例
  • 性能调优
  • 性能调优实践
  • 参考

cambricon BANG架构是基础的,高度抽象的,向用户暴露统一编程模型和编程接口,并提供调试和分析工具。

【寒武纪(7)】MLU的cntoolkit:Cambricon-BANG架构和使用分析,MLU并行计算的硬件抽象、编程模型以及调优思路_第1张图片

硬件抽象

1存储

1.1.1 存储层次

【寒武纪(7)】MLU的cntoolkit:Cambricon-BANG架构和使用分析,MLU并行计算的硬件抽象、编程模型以及调优思路_第2张图片
【寒武纪(7)】MLU的cntoolkit:Cambricon-BANG架构和使用分析,MLU并行计算的硬件抽象、编程模型以及调优思路_第3张图片

访存一致

【寒武纪(7)】MLU的cntoolkit:Cambricon-BANG架构和使用分析,MLU并行计算的硬件抽象、编程模型以及调优思路_第4张图片

计算模型

1 Core核内同步和并行

【寒武纪(7)】MLU的cntoolkit:Cambricon-BANG架构和使用分析,MLU并行计算的硬件抽象、编程模型以及调优思路_第5张图片【寒武纪(7)】MLU的cntoolkit:Cambricon-BANG架构和使用分析,MLU并行计算的硬件抽象、编程模型以及调优思路_第6张图片

2 核间并行和同步

在这里插入图片描述

编程模型

1、Kernel

在MLU 上执行的程序叫做Kernel,每个Task 都执行一次对应的Kernel函数。
【寒武纪(7)】MLU的cntoolkit:Cambricon-BANG架构和使用分析,MLU并行计算的硬件抽象、编程模型以及调优思路_第7张图片
【寒武纪(7)】MLU的cntoolkit:Cambricon-BANG架构和使用分析,MLU并行计算的硬件抽象、编程模型以及调优思路_第8张图片

计算规模

1、需要将一个完整的任务拆分成一系列可以并行的Task,所有的Task构成一个三维网格。
【寒武纪(7)】MLU的cntoolkit:Cambricon-BANG架构和使用分析,MLU并行计算的硬件抽象、编程模型以及调优思路_第9张图片
2、每个Task有一个三维坐标+一个全局唯一的线性ID
在这里插入图片描述

3、每个Task 会被映射到一个物理 Core(cluster)上运行。
【寒武纪(7)】MLU的cntoolkit:Cambricon-BANG架构和使用分析,MLU并行计算的硬件抽象、编程模型以及调优思路_第10张图片
【寒武纪(7)】MLU的cntoolkit:Cambricon-BANG架构和使用分析,MLU并行计算的硬件抽象、编程模型以及调优思路_第11张图片

【寒武纪(7)】MLU的cntoolkit:Cambricon-BANG架构和使用分析,MLU并行计算的硬件抽象、编程模型以及调优思路_第12张图片

任务类型

kernel 需要多少物理Core(TP)或者cluster。
有两种:1、Block任务(最少一个Core TP);2、Union任务(最少一个cluster)
【寒武纪(7)】MLU的cntoolkit:Cambricon-BANG架构和使用分析,MLU并行计算的硬件抽象、编程模型以及调优思路_第13张图片

执行示例

【寒武纪(7)】MLU的cntoolkit:Cambricon-BANG架构和使用分析,MLU并行计算的硬件抽象、编程模型以及调优思路_第14张图片

性能调优

1、计算效率最大化
2、IO效率最大化

【寒武纪(7)】MLU的cntoolkit:Cambricon-BANG架构和使用分析,MLU并行计算的硬件抽象、编程模型以及调优思路_第15张图片【寒武纪(7)】MLU的cntoolkit:Cambricon-BANG架构和使用分析,MLU并行计算的硬件抽象、编程模型以及调优思路_第16张图片

因此,2个方向调优:1、计算并行;2、计算和IO并行两个方向。和硬件有关,当前一款的MLU代码,到另外不一定效率高。

1、计算效率最大:计算并行,减少计算量,等效替代。
2、IO 效率:减少访存量,计算和访存并行,提升带宽利用率
【寒武纪(7)】MLU的cntoolkit:Cambricon-BANG架构和使用分析,MLU并行计算的硬件抽象、编程模型以及调优思路_第17张图片

性能调优实践

具体看文档《Cambricon-BANG-C-C+±Programming-Guide-CN-v1.5.0.pdf》,有很多技巧。

参考

Cambricon-BANG-C-C+±Programming-Guide-CN-v1.5.0.pdf

你可能感兴趣的:(并行计算)