SDDA C学习笔记 class_2
本文最后更新于 130 天前,其中的信息可能已经过时,如有错误请发送邮件到 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 Time163 days 10 H 23 M 29S