CUDA on ARM Platform线上冬令营开营

学习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编程专家在线回答同学们的问题,辅导同学们进行线上实验。

亮点:

[list]
[]介绍高性能计算基础编程模型CUDA的基本编程原理。
[
]在结合ARM CPU和 GPU的实验平台上完成动手实践。
[*]内容和应用相结合,将介绍如何利用CUDA完成光影渲染、信号处理、深度学习的网络搭建等热门案例。
[/list]

形式:

每堂课由讲解部分和实践部分组成,每次课程介绍完,会提供相应的编程实例,让学生在实际操作中理解概念。

线上冬令营分两个班,同期上课,请报名者根据自己的实际情况选择:

冬令营班
主办方提供Jetson NANO云平台,参加者无需准备开发环境,只需要通过自己普通电脑的浏览器远程访问Jetson NANO计算平台进行学习。为了确保学习效果,将对每位参加者收取200元的报名费。完成了每日的学习打卡任务,将原路退回200元。
此班级只针对在校学生。
人数限制50名。
冬令营旁听班
自备Jetson NANO,主办方提供课件代码和镜像文件,参加者需要自行配置环境。与冬令营班一起参加线上课。 无需缴纳报名费。课程结束,主办方会另外安排线上课程结业测试。
此班级针对学生或者在职开发者。
不限制人数

参加者要求:

[list]
[*]本课程需要学员有一定的C/C++程序设计基础。
[/list]

冬令营指导老师:

何琨(KEN)

NVIDIA 企业开发者社区经理

NVIDIA企业级开发者社区经理,拥有多年的GPU和人工智能开发经验。自2017年加入NVIDIA开发者社区以来,完成过上百场培训,帮助上万个开发者了解人工智能和GPU编程开发。在计算机视觉,高性能计算领域完成过多个独立项目。并且,在机器人和无人机领域,有过丰富的研发经验。对于图像识别,目标的检测与跟踪完成过多种解决方案。曾经参与GPU版气象模式GRAPES,是其主要研发者。

李奕澎

NVIDIA 企业开发者社区经理

拥有 4 年数据分析建模开发经验,3 年人工智能自然语言处理开发经验。在自动语音识别、自然语言处理、自然语言理解等技术有着丰富的实战经验与见解

报名:

报名链接:https://jinshuju.net/f/aH3RDn

请添加微信号【CUDA冬令营助教】:gpusupport,确认班级等事宜。同时助教会拉您进入相应的微信群。

[attach]19543[/attach]

冬令营日程安排:
[table]
[tr][td=47]
Day1
[/td][td=506]

1月10日

[/td][/tr]
[tr][td=47]
[/td][td=506]

9:00-9:10开营

[/td][/tr]
[tr][td=47]
[/td][td=506]

中国自动化学会智慧教育专业委员会秘书长 刘希未致开幕词

NVIDIA GPU应用市场总监 侯宇涛 致辞

[/td][/tr]
[tr][td=47]
[/td][td=506]

9:10-16:30 ( 11:30-14:00午休)

[/td][/tr]
[tr][td=47]

1

[/td][td=506]

基于Arm的Jetson开发环境介绍,Arm Linux系统简介(1.1理论课+实验课)

介绍我们的实验平台,介绍Linux编译的基本技巧,介绍基本的开发环境

实验课:Makefile 编写规范

[/td][/tr]
[tr][td=47]

2

[/td][td=506]

GPU架构及异构计算(1.2)

介绍GPU架构以及异构计算的基本原理

介绍GPU硬件平台

介绍基于Arm的嵌入式平台GPU架构和编程模型之间的关系,介绍Grace CPU相关

最新的GPU应用领域,GPU在现代计算机科学中的通用性

[/td][/tr]
[tr][td=47]

3

[/td][td=506]

CUDA编程模型—初识CUDA(1.3+1.4实验课)

CUDA程序的编译

GPU线程的调用

GPU和CPU的通讯

使用多个线程的核函数

使用线程索引

多维网络

网格与线程块

利用NVProf查看程序执行情况

实验课内容:编写程序HelloCUDA,并且利用NVCC编译。编写VectorAdd多线程程序,和多维网络线程程序,并用nvprof来测试不同设置情况下运行速

[/td][/tr]
[tr][td=47]

Day2

[/td][td=506]

1月11日 9:30-16:30 ( 11:30-14:00午休)

[/td][/tr]
[tr][td=47]

1

[/td][td=506]

CUDA编程模型—CUDA存储单元的使用与错误检测(2.1+2.2实验课)

设备初始化

GPU的存储单元

GPU存储单元的分配与释放

数据的传输

数据与线程之间的对应关系

CUDA应用程序运行时的错误检测

CUDA中的事件

利用事件进行计时

实验课内容:编写MatrixMul程序,体验线程和数据的对应关系

留课后作业

[/td][/tr]
[tr][td=47]

2

[/td][td=506]

多种CUDA存储单元详解(2.3)

CUDA中的存储单元种类

CUDA中的各种存储单元的使用方法

CUDA中的各种存储单元的适用条件

[/td][/tr]
[tr][td=47]

3

[/td][td=506]

CUDA编程模型—原子操作(2.4理论+实验)

CUDA中的原子操作

原子操作的适用场景

利用原子操作优化程序

[/td][/tr]
[tr][td=47]

Day3

[/td][td=506]

1月12日 9:30-16:30 ( 11:30-14:00午休)

[/td][/tr]
[tr][td=47]

1

[/td][td=506]

共享存储单元详解

共享内存的Bank conflict

利用共享存储单元进行矩阵转置和矩阵乘积

实验课内容:编写Shared Memory优化过的矩阵乘法

介绍shared memory原理,介绍利用shared memory 优化的多种案例

矩阵转置

[/td][/tr]
[tr][td=47]

2

[/td][td=506]

基于ARM平台的Jetson NANO存储单元调用(3.3+3.4实验课)

基于ARM平台的Jetson nano的存储单元特点

统一内存的基本概念

如何更有效的利用Jetson的存储单元

实验课内容:编写MatrixMul程序,体验统一内存的使用方法

介绍基于Jetson平台的共享存储单元的特点,介绍Jetson平台SoC DRAM memory的应用

[/td][/tr]
[tr][td=47]

Day4

[/td][td=506]

1月13日 9:30-16:30 ( 11:30-14:00午休)

[/td][/tr]
[tr][td=47]

1

[/td][td=506]

CUDA stream(4.1+4.2实验课)

CUDA流的基本概念

默认流与非默认流

利用CUDA流重叠计算和数据传输

实验课内容:结合cuBLAS,体验利用流来减少运行时间

介绍CUDA stream,介绍利用Stream分割处理的加速方案,介绍利用stream处理超大数据的加速方案

[/td][/tr]
[tr][td=47]

2

[/td][td=506]

CUDA加速库介绍:cuBLAS, cuDNN, cuFFT(4.3+4.4实验课)

cuBLAS介绍

cuDNN介绍

cuFFT介绍

利用cuDNN,cuFFT和cuBLAS来实现相关应用案例

[/td][/tr]
[tr][td=47]

Day5

[/td][td=506]

11月14日 线上答疑

[/td][/tr]
[tr][td=47]

Day6

[/td][td=506]

11月15日 冬令营班线上课程结业考试(旁听班考试另行安排)

[/td][/tr]
[/table]

关于冬令营考核:
[table=557]
[tr][td=35]
1.
[/td][td=522]

完成所有的理论和上机实验,并完成小程序打卡

[/td][/tr]
[tr][td=35]

2

[/td][td=522]

完成课后线上答题

[/td][/tr]
[tr][td=35]

3

[/td][td=522]

所有课程结束后完成三个考题,每个考题为完成一段程序,由易到难。

三组都完成的视为合格

考试时间:1月15日 上午09:00—12:00

[/td][/tr]
[/table]

教材与学习资源
[table]
[tr][td=85]
冬令营教材
[/td][td=468]

《CUDA ON ARM PLATFORM冬令营》自编教材

[/td][/tr]
[tr][td=1,4,85]

参考书目

[/td][td=468]

樊哲勇《CUDA编程:基础与实践》清华大学出版社出版时间:2020-10-01

[/td][/tr]
[tr][td=468]

NVIDIA官方文档:CUDA C++ Best Practices Guide

[/td][/tr]
[tr][td=468]

NVIDIA官方文档:CUDA Programming Guide

[/td][/tr]
[tr][td=468]
[/td][/tr]
[/table]

1月10日(周一)上午9点开始上课了,请交费班的务必在电脑上安装好Chrome浏览器,旁听班请自备Jetson设备(NANO/NX/Xavier),刷好JetPack 4.5/4.6,装好Jupyter即可。
链接: https://pan.baidu.com/s/1fZWllBdZB0VX-l6tUHunBQ 密码: r9ls
CUDA On ARM 的 Nano 版镜像,以及纯课件压缩档。。有NANO的,镜像用 Etcher 刷机,里面的密码都设为 111111(不是NANO的,请不要用这个镜像刷机)

官网刷机镜像可以访问:https://developer.nvidia.cn/zh-cn/embedded/downloads#?search=Jetson%20AGX%20Orin%20%26%20Jetson%20AGX%20Xavier%20Interface%20Comparison%20%26%20Migration%20Application%20Note

怎么进群?管理员说群满了,不给进群了

没人吗,管理员呢