AI学习者 · 2022年05月23日

基于 MLIR 完成对 GEMM 的编译优化 中英视频上,中部分

这个视频讲解了如何基于 MLIR 完成对 GEMM 的编译优化。也即对 HIGH PERFORMANCE CODE GENERATION IN MLIR: AN EARLY CASE STUDY WITH GEMMhttps://arxiv.org/pdf/2003.00532.pdf) 这篇论文的走读。

作者在高层次的Dialect上定义了一个矩阵乘算子,这个算子的参数包含了输入矩阵(A,B)以及输出矩阵(C),同时为这个算子添加了tile/unroll 的尺寸等属性。

8361fa80421b94037fc94f1d4f039c13.png

High Dialect GEMM Operator

其中,(M_C, K_C)的选择使得 M_CxK_C 大小的 A 矩阵块能够在L2 cache中复用,(K_C, N_R)的选择使得 K_CxN_R 大小的B矩阵块能够在 L1 cache 中复用,(M_R, N_R)的选择是使得 M_RxN_R 大小的输出矩阵块能够在 CPU Register 中复用。在这篇论文中凭借经验尝试了很多组这种值,最终获得的结果如下:

e22d997fd43040cafb622a1432313b80.png

基于MLIR优化的GEMM和其它库以及浮点峰值的对比

基于 MLIR 的矩阵乘算子 Dialect 递降过程为:

57522f74bb0fb711548079e94ace0de4.png

图源:https://www.birentech.com/news/115.html

如果你对基于 MLIR 的深度学习模型高性能代码生成比较感兴趣的话建议研究一下 IREE ,这篇论文感觉还是有一点 Toy 。

相关资料:

前30分钟视频如下(还剩下13分钟视频下周争取补上),视频转载自 https://www.youtube.com/watch?v=boXl7rmaasU&t=2372s ,添加了中英文字幕 :
https://www.bilibili.com/video/BV1Lg411o7vU?spm_id_from=333.337.search-card.all.click

原文:GiantPandaCV
作者:GiantPandaCV字幕
更多嵌入式AI相关技术干货请关注嵌入式AI专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
16456
内容数
1229
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息