SDDA C学习笔记 class_2
本文最后更新于25 天前,其中的信息可能已经过时,如有错误请发送邮件到zhangweihao22@outlook.com

【总结】 到一定位置时对前面学习到的知识进行回顾和总结。注意,因此总结还是具有一定的知识片面性

内容一览

线程组

【理解】
就是把一定数量的SPE给打包成一个小计算单元

计算核心SPE的同步

SPM内存的分配和释放

【总结】
SPM就相当于计算机中的cache【缓存】
数据读取更加高效

就是用malloc和free当作接口
它们对应申请和释放SPE空间

数据搬运

跨步操作?

【思考】
跨步操作的作用和意义是什么???

【思考】
从这个图上获得的思考:
SPM可以从global上执行跨步操作拼接内存得到吗? 应该是数据,不是内存
还是说SPM就是执行的上述跨步操作而得到i的?
SPM空间是否连续【和上面的问题本质上一致】

DMA数据搬运???【单元内内存的搬运】

上面标题的单元指SPA一个计算单元

可以从同一SPA中的一个global搬运空间到另外一个global
可以从同一SPA中的一个global与SPM之间
可以从同一SPE中的SPM与SPM之间

DMA数据搬运的类型

阻塞型DMA数据搬运

相当于同步接口???

非阻塞型DMA数据搬运

仅限于global和SPM之间的数据搬运

【思考】
那为什么不直接用阻塞型?
是因为前者的实现比后者难吗?
亦或者是后者效率更高???

原因:
非阻塞型接口的执行开销比较小

【妙点】 后面尽量时候非阻塞型接口进行数据的搬运

RMA数据搬运【单元间的内存搬运】

上面标题的单元指SPA一个计算单元

RMA数据搬运类型

阻塞型RMA数据搬运

见图

非阻塞型RMA数据搬运

见图

【思考】
阻塞型数据搬运是不是需要等所有的数据搬运完了才能开始下一步,其它指令的执行
而非阻塞型数据搬运则是给出搬运数据的指令
然后正常进行下面的指令
最后在需要使用搬运来的空间的时候检查再空间是否搬运过来
若没有,则等待;若完成,则继续

应该是,这样的解释和前面老师将阻塞型数据搬运等价为同步接口来理解相符合

Broadcast数据搬运

理解:单位内存信息的分发【全局和局部】

Broadcast广播有两种

  1. 同一SPA中的一个SPE向其它(部分)SPE进行数据的传递【广播】
  2. global数据向同一SPA内的部分SPE发送数据
    具体实现过程可能是:
    global数据发送到某一SPE中,再进行广播1

原子操作

【目的以及实现】
目的:防止出现SPE竞争数据的使用【线程?】导致冲突
实现:一个SPE在读写Global空间的时候就关闭其它的访问通道【就是上锁,其它人不能进去访问】,一个读写完毕再下一个读写。因此称为“保证多线程对同一内存空间访问的串行性”

【总结】 【思考】 太初AI计算卡中硬件的设置:
一个加速卡中有众多的SPA【SPA可以理解为计算集群】
然后一个SPA中有众多的SPE【SPE可以理解为计算单元】
每个SPE对应绑定一个【?】SPM【SPM可以理解为最小储存单元】
然后SPA中有一个公用的Global空间

【思考】 感觉像是把mpi和omp的内存前提都囊括完了

矩阵乘

【思考】
意思就是不需要我们对矩阵乘法这一步进行优化了??!【可惜哇】

矩阵乘接口类型

也是分为阻塞和非阻塞
非阻塞型矩阵乘有额外的限制:

  1. 矩阵所在的位置必须是在SPM上
  2. 矩阵的大小有限制

【思考】
权重矩阵是什么?
又来行偏移…

转置操作

【思考】
什么?!线代里的操作???!

就是对目的矩阵进行一个行列的变换

【思考】
用二维数组来表示的矩阵的转置还比较简单可以理解,就是数组下标的规律转换就好
但是….如果使用了行/列偏移表示的矩阵该怎么….

转置操作的类型

依旧是阻塞型和非阻塞型

向量操作

【闲话】 绝了,特招提也是做到这一步就没做了

【总结】
和特招题最终优化是一样的
先标量与向量间的数据搬运
然后再标记向量计算中间量
最后把计算结果储存在结果变量中

性能采样

在目标代码前后”插桩“?

数学函数

2024/10/21 创建
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
Copyright 2025-2025 @ Ziyang
Running Time days H M S