打开微信,使用扫一扫进入页面后,点击右上角菜单,
点击“发送给朋友”或“分享到朋友圈”完成分享
进阶开发者课程~ BANG 系列基础知识课程已更新,以下为简介及课后练习答案:
一、《初识 BANG 异构模型》
简介:BANG 异构计算平台;抽象硬件模型与存储模型;BANG 语言基础介绍。
链接:初识 BANG 异构模型 – 寒武纪开发者社区 (cambricon.com)
课后习题:
Q1、NRAM主要功能、作用是什么? 可与什么单元能进行数据交互?
Q2、任务映射:设任务类型为 Union2, 任务规模为dim.x=8,dim.y=2,dim.z=2, 分析taskIdx, taskIdy, taskIdz 和 taskId 的值。
答案:
A1、NRAM作用是主要用来存放向量运算和张量运算的输入和输出数据,也可以存储一些计算过程中的临时标量数据。NRAM可以与GDRAM、SRAM、WRAM、LDRAM进行数据交互。
A2、taskIdx取值范围为[0,7],taskIdy取值范围为[0,1],taskIdy取值范围为[0,1],taskID取值范围是[0,31]
二、《BANG 编程实战》
简介: BANG C 语言的基础语法支持;Host 侧和 Device 侧代码编写流程;编译流程 与 CNGDB 调试
链接:BANG 编程实战 – 寒武纪开发者社区 (cambricon.com)
课后习题
Q1、参考文档中的案例,实现一个完整的向量加法程序,在MLU中尝试编译运行。
Q2、尝试使用 CNGDB 对问题1中代码进行调试。
答案
A1、代码见文本,编译为:cncc kernel_add.mlu -o add --bang-mlu-arch=mtp_372 -O3
(下载以下附件中的文件:kernel_add.mlu)
A2、根据视频课件进行调试和熟悉。
三、BANG 性能优化
简介: BANG 编程优化的基本流程和常用优化方法
链接:BANG 性能优化 – 寒武纪开发者社区 (cambricon.com)
课后习题
Q1、简述性能调优基本流程。
Q2、简述性能调优基本方法。
答案
A1、
a) 建立性能基准:以第一份运行正确的代码运行时间为基准性能数据。
b) 识别性能瓶颈:程序性能瓶颈主要有两个,计算瓶颈和 IO 瓶颈。
c) 等价变换:确保代码执行正确的前提下,优化代码,消除或降低瓶颈。
d) 回归验证:运行新代码,看性能是否提升,然后继续上述步骤,不断优化。
A2、
Ø 计算优化(尽量使用融合指令)
Ø 访存优化(拷贝方式,排流水等)
Ø 异构优化(在host侧:kernel融合,多队列并行,多队列流水)
热门帖子
精华帖子