课程背景
openCL是从事GPU系统软件开发无法绕开的技术难点。从用户openCL的API到GPU内部执行过程打通,相关资料和经验都鲜有分享。
GPGPU的开发众,知道GPU内部数据流控制流工作原理,对于理解GPU驱动开发至关重要。
GPU的调试相比CPU调试工具不多,调试工具很难上手,很多用户反馈GPU调试是一个难点,也是一个痛点。
基于以上,我们策划了这个训练营,旨在让从事GPGPU驱动开发的用户能够有快速打通任督二脉,同时有一个可以持续学习的平台。
课程介绍
本门课程面向具备一定开发经验的Linux驱动工程师,以异构计算驱动开发需要的技术点为角度,来解析gpgpu驱动工程师需要掌握的技能。本课程更多的是从宏观的、如何实现功能的角度,结合OpenCL标准例程的代码,跟踪整体数据流、控制流计算过程,并针对业界计算效能提升面临的痛点和难点进行来讲解。学习完成后,开发者可依据知识点以及参考相关开源代码,独立开发gpgpu、npu等AI芯片驱动。
Slide | content |
1 | 第一部分 异构计算 |
1.1 | why we neew 异构计算 |
1.2 | cpu + gpu |
1.3 | cpu + gpgpu |
1.4 | cpu + npu |
1.5 | cpu + dsp |
测试与讨论 | |
2 | 第二部分 CPU + GPGPU(从cuda视角看异构计算软件栈) |
2.1 | CUDA简介 |
2.2 | CUDA软件栈 |
2.3 | CUDA runtime api |
测试与讨论 | |
3 | 第三部分 GPGPU runtime umd驱动开发 |
3.1 | 一个例子看cpu和gpu异构计算(compiler,elf loader,task dispatch) |
3.2 | umd context create management |
3.3 | umd stream managent |
3.4 | umd memory management |
3.5 | umd event management |
3.6 | umd device managemt |
3.7 | umd相关的c++相关技术点梳理 |
测试与讨论 | |
4 | 第四部分 GPGPU kmd驱动开发 |
4.1 | pcie设备管理、设备初始化、字符设备等等 |
4.2 | context 管理 |
4.3 | queue management and task dispatch |
4.4 | memory managent(create、destory、share、dma、page table、uva) |
4.5 | 多机、多卡通信(p2p、rdma、IB) |
4.6 | Linux内核相关技术点梳理 |
测试与讨论 | |
5 | 第五部分 profile && debug tools |
5.1 | cpu runtime api profile tools |
5.2 | gpu kernel profile |
5.3 | debug queue packet、read write register、device info query |
5.4 | lspci setpci usage |
测试与讨论 |
课程收益
•深入掌握GPGPU驱动开发的要点,快速上手
•熟悉异构体系结构和cuda
•掌握umd和kmd驱动要点
•GPGPU的debug工具
•对于芯片设计,异构硬件设计人员,将获得更多软件和系统视角
讲师介绍
TE, 资深GPU驱动架构师,曾供职中兴、海光以及蔚来汽车。10年系统软件经验,参与许多重大系统软件的规划与开发,丰富的软硬件联合调优和系统落地经验。
课程受众
•GPGPU驱动开发工程师
课程定价:待定
开课时间:待定
课前:目前训练营内容未最终定型,如果对课程内容有建议,欢迎课联系客服小月(WX:linuxer2016)或者(WX:yufeipu),你的建议被采纳,我们会有优惠。