学习GPU编程,迈上AI科研的制高点,让你的职业生涯快人一步
亲爱的老师/同学,
AI是这个时代最为强大的技术力量。未来,数万亿台运行AI的计算机将在世界各地创造一种全新的物联网,从智能零售、制造业、服务机器人、自动驾驶汽车到智能城市,重塑人们所知的计算。借助Arm庞大的生态系统,英伟达将其GPU和AI技术引入到包括移动设备和个人电脑在内的大型终端市场。于此同时,越来越多的AI公司需要招聘更多的掌握基于边缘计算的GPU编程技能的人才。
本次CUDA ON ARM PLATFORM线上训练营由NVIDIA发起,由中国自动化学会智慧教育专业委员会协办,旨在帮助初学者学习如何在GPU上快速加速代码,掌握CUDA编程的基本概念和技能。NVIDIA工程师将通过为期5天的时间,系统性地介绍ARM嵌入式平台的特色,以及在该平台上如何实现CUDA并行加速计算。通过四大模块的学习,并搭配丰富的线上实验环节,让学生们掌握基于Arm的Jetson开发环境和GPU异构计算原理,了解CUDA编程模型,包括线程组织和CUDA存储单元,以及如何利用共享存储单元优化应用等,每次课程介绍完,会提供相应的编程实例,让学生在实际操作中理解概念。
CUDA ON ARM PLATFORM线上训练营的最终目标是帮助学习者建立对GPU 编程的信心,为此,还将将建立专门的CUDA学习线上微信群。邀请CUDA编程专家在线回答同学们的问题,辅导同学们进行线上实验。
课程亮点:- 介绍高性能计算基础编程模型CUDA的基本编程原理。
- 在结合ARM CPU 和 GPU的实验平台上完成动手实践。
- 内容和应用相结合,将介绍如何利用CUDA完成光影渲染、信号处理、深度学习的网络搭建等热门案例。
- 完成课程结业测试,NVIDIA企业开发者社区将颁发结业证书和纪念徽章。
形式:主办方提供Jetson云平台,参加者无需准备开发环境,只需要通过自己普通电脑的浏览器远程访问Jetson计算平台进行学习。为了确保学习效果,将对每位参加者收取100元的报名费。完成了每日的学习打卡任务,将原路退回100元。
此班级只针对在校学生。 人数限制100名。
参加者要求:
训练营指导老师:何琨 (Ken He) NVIDIA 企业级开发者社区经理,拥有多年的GPU 和人工智能开发经验。自2017年加入NVIDIA 开发者社区以来,完成过上百场培训,帮助上万个开发者了解人工智能和 GPU编程开发。在计算机视觉,高性能计算领域完成过多个独立项目。并且,在机器人和无人机领域,有过丰富的研发经验。对于图像识别,目标的检测与跟踪完成过多种解决方案。曾经参与GPU 版气象模式 GRAPES,是其主要研发者。 李奕澎 NVIDIA 企业开发者社区经理,拥有 4 年数据分析建模开发经验,3 年人工智能自然语言处理开发经验。在自动语音识别、自然语言处理、自然语言理解等技术有着丰富的实战经验与见解。
报名:报名后请添加微信号【社区助教】:gpusupport,确认报名费缴纳事宜。同时助教会拉您进入相应的微信群。
训练营日程安排:
Day1 | |
| |
| 中国自动化学会智慧教育专业委员会秘书长 刘希未致开幕词 NVIDIA GPU应用市场总监 侯宇涛 致辞 |
| 9:10-16:30 ( 11:30-14:00午休) | | 基于Arm的Jetson开发环境介绍,Arm Linux系统简介(1.1理论课+实验课) 介绍我们的实验平台,介绍Linux编译的基本技巧,介绍基本的开发环境 实验课:Makefile 编写规范 | | GPU架构及异构计算(1.2) - 介绍GPU架构以及异构计算的基本原理
- 介绍GPU硬件平台
- 介绍基于Arm的嵌入式平台GPU架构和编程模型之间的关系,介绍Grace CPU-相关
- 最新的GPU应用领域,GPU在现代计算机科学中的通用性
| | CUDA编程模型---初识CUDA(1.3+1.4实验课) - CUDA程序的编译
- GPU线程的调用
- GPU和CPU的通讯
- 使用多个线程的核函数
- 使用线程索引
- 多维网络
- 网格与线程块
- 利用NVProf查看程序执行情况
- 实验课内容:编写程序HelloCUDA,并且利用NVCC编译。编写VectorAdd多线程程序,和多维网络线程程序,并用nvprof来测试不同设置情况下运行速
| | 7月5日 9:30-16:30 ( 11:30-14:00午休) | | CUDA编程模型---CUDA存储单元的使用与错误检测(2.1+2.2实验课) - 设备初始化
- GPU的存储单元
- GPU存储单元的分配与释放
- 数据的传输
- 数据与线程之间的对应关系
- CUDA应用程序运行时的错误检测
- CUDA中的事件
- 利用事件进行计时
- 实验课内容:编写MatrixMul程序,体验线程和数据的对应关系
留课后作业 | | 多种CUDA存储单元详解(2.3) - CUDA中的存储单元种类
- CUDA中的各种存储单元的使用方法
- CUDA中的各种存储单元的适用条件
| | 利用共享存储单元优化应用(2.4实验课) - 共享存储单元详解
- 共享内存的Bank conflict
- 利用共享存储单元进行矩阵转置和矩阵乘积
- 实验课内容:编写Shared Memory优化过的矩阵乘法
介绍shared memory原理,介绍利用shared memory 优化的多种案例 | | 7月6日 9:30-16:30 ( 11:30-14:00午休) | | CUDA编程模型---原子操作(3.1理论+3.2实验) - CUDA中的原子操作
- 原子操作的适用场景
- 利用原子操作优化程序
| | 基于ARM平台的Jetson存储单元调用(3.3+3.4实验课) | | 7月7日 9:30-16:30 ( 11:30-14:00午休) | | CUDA stream(4.1+4.2实验课) - 基于ARM平台的Jetson的存储单元特点
- 统一内存的基本概念
- 如何更有效的利用Jetson的存储单元
- 实验课内容:编写MatrixMul程序,体验统一内存的使用方法
- 介绍基于Jetson平台的共享存储单元的特点,介绍Jetson平台SoC DRAM memory的应用
| | CUDA加速库介绍:cuBLAS,cuFFT(4.3+4.4实验课) cuFFT介绍 | | | | |
关于训练营考核: 1. | | | | | 所有课程结束后完成三个考题,每个考题为完成一段程序,由易到难。 三组都完成的视为合格 考试时间:7月9日 上午09:00—12:00 |
教材与学习资源 训练营教材 | 《CUDA ON ARM PLATFORM训练营》自编教材 | | 樊哲勇《CUDA编程:基础与实践》清华大学出版社出版时间:2020-10-01 | | |
|
|