(二)深度学习编译器/深度学习推理引擎 学习路径
1. 初阶
顺序 | 资源 | 知识分类/使用方法 | 推荐指数 | 链接和介绍 |
0 | 学习深度学习和机器学习相关知识 | 【基础】 | NA | 学习下面链接的“初阶”和“中阶”部分: |
0 | 学习编译器相关知识 | 【基础】 | NA | 学习下面链接的“初阶”部分: |
0 | 学习计算机系统相关知识 | 【基础】 | NA | |
0 | 学习计算机架构相关知识 | 【基础】 | NA | |
1 | AI编译器的概览、挑战和实践 | 【快速入门】 | 1 | |
1‘ | A friendly introduction to machine learning compilers and optimizers | 【快速入门】 英文文章,Chip Huyen是MLOps的大佬 | ||
2 | 手把手带你遨游TVM | 【TVM】【快速入门】 | 1 | |
3 | tvm的官网tutorial | 【TVM】 | 2 | https://tvm.apache.org/docs/tutorial/index.html 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 |
因为需要补习的基础部分很多内容,所以AI编译器的系统性教程和视频放在了“中阶”,“初阶”部分只保留TVM的内容,这也是参考了网友的建议: ”如果你仅仅想通过学习深度学习编译器这个概念,而不会all in到这方面的开发。那么看看tvm的官网tutorial,看看tvm每年举办的conference就足够了。“ | ||||
顺序 | 资源 | 知识分类/使用方法 | 推荐指数 | 链接和介绍 |
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 【AI编译器】PyTorch: https://www.bilibili.com/video/BV1p84y1675B/?vd_source=72867308e8b7b6d7774a7e4be6278f68 随着深度学习的应用场景的不断泛化,深度学习计算任务也需要部署在不同的计算设备和硬件架构上;同时,实际部署或训练场景对性能往往也有着更为激进的要求,例如针对硬件特点定制计算代码。这些需求在通用的AI框架中已经难已得到满足。由于深度学习计算任务在现有的AI框架中往往以DSL(Domain Specific Language)的方式进行编程和表达,这本身使得深度学习计算任务的优化和执行天然符合传统计算机语言的编译和优化过程。因此,【AI编译器】深度学习的编译与优化就是将当前的深度学习计算任务通过一层或多层中间表达进行翻译和优化,最终转化成目标硬件上的可执行代码的过程。本系列将围绕现有【AI编译器】中的编译和优化工作的内容展开介绍。 |
3 | OpenMLSys机器学习系统:设计和实现 | 【文字教程】 | 2 | 教程: repo: https://github.com/openmlsys/openmlsys-zh 做世界上第一本全面讲述机器学习系统知识的开源书籍 == 一个开源书籍,作者阵容很强大 |
4 | 微软人工智能系统课程 System for AI | 【文字教程】 | 1 | 课程主页: repo: |
5 | CMU 10-414/714: Deep Learning Systems | 【视频课程】 陈天奇老师的课程 | 2 | 课程主页: 视频: |
6 | 深度学习编译器整理 | 1 | ||
7 | 如何写一个深度学习编译器 | 【实战】 | 1 | |
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开发。 |
顺序 | 资源 | 知识分类/使用方法 | 推荐指数 | 链接和介绍 |
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 | |
3 | 《Introduction to FPGA Design with Vivado High-Level Synthesis》 | 1 | 英文原版: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgiobJugYokMOSggY.pdf 读书笔记: | |
4 | 知乎大V | NA | 知乎上有一群活跃的领域相关博主,阅读他们的回答、文章和视频,受益匪浅,比如: @蓝色 @杨军 @法斯特豪斯 (学习MLIR基本都会找到他的知识分享,还有B站视频) @陈清扬 @小乖他爹 @袁进辉 @BBuf @LeiWang1999 @吴建明wujianming |