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

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

在这里插入图片描述

硬件抽象

1存储

1.1.1 存储层次

在这里插入图片描述
在这里插入图片描述

访存一致

在这里插入图片描述

计算模型

1 Core核内同步和并行

在这里插入图片描述在这里插入图片描述

2 核间并行和同步

在这里插入图片描述

编程模型

1、Kernel

在MLU 上执行的程序叫做Kernel,每个Task 都执行一次对应的Kernel函数。
在这里插入图片描述
在这里插入图片描述

计算规模

1、需要将一个完整的任务拆分成一系列可以并行的Task,所有的Task构成一个三维网格。
在这里插入图片描述
2、每个Task有一个三维坐标+一个全局唯一的线性ID
在这里插入图片描述

3、每个Task 会被映射到一个物理 Core(cluster)上运行。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

任务类型

kernel 需要多少物理Core(TP)或者cluster。
有两种:1、Block任务(最少一个Core TP);2、Union任务(最少一个cluster)
在这里插入图片描述

执行示例

在这里插入图片描述

性能调优

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

在这里插入图片描述在这里插入图片描述

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

1、计算效率最大:计算并行,减少计算量,等效替代。
2、IO 效率:减少访存量,计算和访存并行,提升带宽利用率
在这里插入图片描述

性能调优实践

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

参考

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hali_Botebie

文中错误请不吝指正!!!!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值