(二)深度学习编译器/深度学习推理引擎学习路径

2024-11-30 16:12

(二)深度学习编译器/深度学习推理引擎 学习路径




1. 初阶

顺序

资源

知识分类/使用方法

推荐指数

链接和介绍

0

学习深度学习和机器学习相关知识

【基础】

NA

学习下面链接的“初阶”和“中阶”部分:

https://www.xiaogeedu.net/sys-nd/191.html

0

学习编译器相关知识

【基础】

NA

学习下面链接的“初阶”部分:

https://www.xiaogeedu.net/sys-nd/197.html

0

学习计算机系统相关知识

【基础】

NA

https://www.xiaogeedu.net/sys-nd/196.html

0

学习计算机架构相关知识

【基础】

NA

https://www.xiaogeedu.net/sys-nd/201.html

1

AI编译器的概览、挑战和实践

【快速入门】

1

https://zhuanlan.zhihu.com/p/508345356

1‘

A friendly introduction to machine learning compilers and optimizers

【快速入门】

英文文章,Chip Huyen是MLOps的大佬


https://huyenchip.com/2021/09/07/a-friendly-introduction-to-machine-learning-compilers-and-optimizers.html

2

手把手带你遨游TVM

【TVM】【快速入门】

1

https://zhuanlan.zhihu.com/p/50529704

3

tvm的官网tutorial

【TVM】

2

https://tvm.apache.org/docs/tutorial/index.html


https://tvm.apache.org/


会议:https://www.tvmcon.org/


tvm windows下安装全记录:https://www.yuque.com/jinfagang/ovohtp/ualg35

4

Machine Learning Compilation(MLC)

【TVM】【视频教程】【文字教程】

2

视频讲解:https://space.bilibili.com/1663273796/channel/collectiondetail?sid=499979&ctype=0


https://mlc.ai/zh/

因为需要补习的基础部分很多内容,所以AI编译器的系统性教程和视频放在了“中阶”,“初阶”部分只保留TVM的内容,这也是参考了网友的建议:

”如果你仅仅想通过学习深度学习编译器这个概念,而不会all in到这方面的开发。那么看看tvm的官网tutorial,看看tvm每年举办的conference就足够了。“


2. 中阶

顺序

资源

知识分类/使用方法

推荐指数

链接和介绍

1

tvm_mlir_learn

【资源汇总】

2

https://github.com/BBuf/tvm_mlir_learn


如果你能把其中大部分的东西都了如指掌,那在工业界找个深度学习编译器相关的坑是问题的不大的。我了解到的情况,现在大家都在基于tvm魔改做对应backend上的算子生成和厂商的library的一些corner case比比性能。当然,使用tvm的前提,是你对手写算子的优化必须有很深刻的理解并且真正能够借助相关的优化技术,比如在NV的GPU上,你能很清楚cuda各个版本推出的新特性以及怎么通过内敛一些特殊的intrinsic达到cuDNN/cuBLAS所达不到的性能,亦或是你对cutlass有很深刻的理解,能够通过cutlass给出的template和接口完成业务对应算子的fusion加速。这些东西都是需要你去hands-on的实践和分析,单单靠看书是难以达到的。。。

另外一个路线则是通过MLIR构建自己的dialect,然后将各个不同能力的codegen和一些性能和开发较为固定的template丝滑的连接起来,使得不同生态能够更好的协同作用。当然,这方面的要求和门槛也比上面的“魔改算子开发”要更难一些。。。

2

AI编译器原理

【视频课程】

1

【AI编译器】传统编译器:

https://www.bilibili.com/video/BV1D84y1y73v/?vd_source=72867308e8b7b6d7774a7e4be6278f68


【AI编译器】概述:

https://www.bilibili.com/video/BV1pM41167KP/?vd_source=72867308e8b7b6d7774a7e4be6278f68


【AI编译器】前端优化:

https://www.bilibili.com/video/BV1ne411w7n2/?vd_source=72867308e8b7b6d7774a7e4be6278f68


【AI编译器】后端优化:

https://www.bilibili.com/video/BV17D4y177bP/?vd_source=72867308e8b7b6d7774a7e4be6278f68

PyTorch2.0


【AI编译器】PyTorch:

https://www.bilibili.com/video/BV1p84y1675B/?vd_source=72867308e8b7b6d7774a7e4be6278f68


随着深度学习的应用场景的不断泛化,深度学习计算任务也需要部署在不同的计算设备和硬件架构上;同时,实际部署或训练场景对性能往往也有着更为激进的要求,例如针对硬件特点定制计算代码。这些需求在通用的AI框架中已经难已得到满足。由于深度学习计算任务在现有的AI框架中往往以DSL(Domain Specific Language)的方式进行编程和表达,这本身使得深度学习计算任务的优化和执行天然符合传统计算机语言的编译和优化过程。因此,【AI编译器】深度学习的编译与优化就是将当前的深度学习计算任务通过一层或多层中间表达进行翻译和优化,最终转化成目标硬件上的可执行代码的过程。本系列将围绕现有【AI编译器】中的编译和优化工作的内容展开介绍。

3

OpenMLSys机器学习系统:设计和实现

【文字教程】

2

教程:

https://openmlsys.github.io/


repo:

https://github.com/openmlsys/openmlsys-zh


做世界上第一本全面讲述机器学习系统知识的开源书籍

==

一个开源书籍,作者阵容很强大

4

微软人工智能系统课程 System for AI

【文字教程】

1

课程主页:

https://microsoft.github.io/ai-edu/%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B/A6-%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E7%B3%BB%E7%BB%9F/


repo:

https://github.com/microsoft/ai-edu

5

CMU 10-414/714: Deep Learning Systems

【视频课程】

陈天奇老师的课程

2

课程主页:

https://dlsyscourse.org/


视频:

https://www.youtube.com/watch?v=ftP5HeOvsI0

6

深度学习编译器整理


1

https://zhuanlan.zhihu.com/p/382015459

7

如何写一个深度学习编译器

【实战】

1

https://zhuanlan.zhihu.com/p/594619136

8

《TensorFlow:实战Google深度学习框架》

【实战】

1

‍https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg-u_9ugYo8K_1rgY.pdf‍


TensorFlow是谷歌2015年开源的主流深度学习框架,目前已得到广泛应用。《TensorFlow:实战Google深度学习框架(第2版)》为TensorFlow入门参考书,旨在帮助读者以快速、有效的方式上手TensorFlow和深度学习。书中省略了烦琐的数学模型推导,从实际应用问题出发,通过具体的TensorFlow示例介绍如何使用深度学习解决实际问题。书中包含深度学习的入门知识和大量实践经验,是走进这个前沿、热门的人工智能领域的优选参考书。

9

《FPGA并行编程 Parallel Programming for FPGAs》

【HLS】【FPGA】

1

https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg8PC9ugYomPWc9AI.pdf‍


中文翻译:https://xupsh.gitbook.io/pp4fpgas-cn/zheng-wen/00-preface


https://github.com/xupsh/pp4fpgas-cn


国内鲜有介绍HLS的书,我们希望通过翻译Parallel Programming for FPGAs这本书,让更多的人来了解HLS和FPGA开发。


3. 高阶

顺序

资源

知识分类/使用方法

推荐指数

链接和介绍

1

Awesome Tensor Compilers


1

https://github.com/merrymercy/awesome-tensor-compilers


如果你要将深度学习编译器作为你的学业追求,想用几年的时间来推动这个领域的发展。那么,书本的内容可以说是不可能满足你的需求,需要的是你能够追随最新的研究进展,从而创造出比书本更有价值的问题,通过你的“才华”给出令人拍案叫绝的解法。推荐你看看GitHub上的这个repo,然后选出来一个你认为你很喜欢的开源编译器作为你的codebase来搞搞科研和开发。

2

论文


NA

https://www.zhihu.com/question/592179428/answer/3126825525


https://github.com/merrymercy/awesome-tensor-compilers


https://github.com/HuaizhengZhang/Awesome-System-for-Machine-Learning


https://github.com/zwang4/awesome-machine-learning-in-compilers


https://github.com/areuther/ai-accelerators


https://github.com/gopala-kr/DL-on-Silicon


https://github.com/fengbintu/Neural-Networks-on-Silicon


https://github.com/basicmi/AI-Chip

3

《Introduction to FPGA Design with Vivado High-Level Synthesis》


1

英文原版:

‍https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgiobJugYokMOSggY.pdf

读书笔记:

https://zhuanlan.zhihu.com/p/578586431

4

知乎大V


NA

知乎上有一群活跃的领域相关博主,阅读他们的回答、文章和视频,受益匪浅,比如: @蓝色 @杨军 @法斯特豪斯 (学习MLIR基本都会找到他的知识分享,还有B站视频) @陈清扬 @小乖他爹 @袁进辉 @BBuf @LeiWang1999 @吴建明wujianming


DIY吧 除非你...
若你有信心 我建议CS申硕申博求职DIY~ 若你想找专家伴你成长 我建议寻找做啥成啥的人 他们能力强 资源多 能解决你一切CS申硕申博求职身份生活的挑战~
先找其他机构?
肯定有其他靠谱机构 但如果你感觉他们干不过我、或你走投无路了 你再来找我吧hhh 但如果我没名额了 希望你别难过 我不是针对你 而是我每年名额都会满
就想加肖哥微信
我的微信被我藏在我荡气回肠的人生经历里 xiaogeedu.tech/col.jsp?id=253 辛苦你去找下hhh 我是美西时区 但每年9月中-12月中是申请季/招聘季 作息是乱的
不考虑商业合作
不商业合作 因为我不知谁靠谱 不合作能杜绝狗血 因噎废食能保护我自己 且我不缺流量还要赶走流量 找我合作您巨亏hh 我与任何商家或申硕申博求职中介都无关
用电脑访问本站
不建议用手机端访问本站,看着贼挤,在电脑端看着舒服hh