找回密码
 立即注册
发表于 2021-7-2 11:03:47
13930
学习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编程专家在线回答同学们的问题,辅导同学们进行线上实验。

招生对象:
  • 本次夏令营只招收50名学员,名额报满即关闭报名通道。
  • 本次夏令营只招收学生。
  • 本课程需要学员有一定的C/C++程序设计基础。

学习形式:
  • 整个夏令营包含了线上理论课程和线上上机实际操作两个部分,学员只需要自备一台可以上网的电脑即可,对硬件没有要求。
  • 参加所有的课程和上机实验,并通过最后的测试,将获得由NVIDIA开发者社区颁发的结业证书。
  • 为了确保学习效果,将对每位参加者收取200元的报名费。完成了每日的学习打卡任务和最终测试后,将原路退回200元。
  • 50个学习席位等待您,名额报满即关闭报名通道。

报名费缴纳:
请报名后添加社区小助手微信号:NVChina02
报名费通过微信转账给社区小助手。
夏令营结束后完成活动任务后,社区小助手会原路退回报名费


夏令营日程安排:

日期
时间
安排
7月12日
9:30-11:30



















开营
1.  1
9:30-10:30

理论教学:
基于Arm的Jetson开发环境+Linux for Tegra 系统简介
  • 介绍实验平台
  • 介绍基本的开发环境
1.2
9:30-10:30

上机实验:
掌握Linux编译的基本技巧

1.3
10:30-11:30

理论教学:
GPU架构及异构计算
  • 介绍GPU架构以及异构计算的基本原理
  • 介绍GPU硬件平台
  • 介绍基于Arm的嵌入式平台GPU架构和编程模型之间的关系

1.4
14:00-15:00

理论教学:
CUDA编程模型---初识CUDA程序的编译
  • GPU线程的调用
  • GPU和CPU的通讯
  • 利用NVProf查看程序执行情况

1.5
15:00-16:00

上机实验:
编写程序HelloCUDA,并且利用NVCC编译
7月13日

2.  1
9:30-10:30

理论教学:
CUDA编程模型---线程组织
  • 使用多个线程的核函数
  • 使用线程索引
  • 多维网络
  • 网格与线程块
  • 实验课内容:编写VectorAdd多线程程序,和多维网络线程程序,并用nvprof来测试不同设置情况下运行速度

2.2
10:30-11:30

上机实验:
编写VectorAdd多线程程序,
编写多维网络线程程序,
用nvprof来测试不同设置情况下运行速度

2.3
14:00-15:00

理论教学:
CUDA编程模型---CUDA存储单元的使用
  • 设备初始化
  • GPU的存储单元
  • GPU存储单元的分配与释放
  • 数据的传输
  • 数据与线程之间的对应关系

2.4
15:00-16:00


上机实验:
编写MatrixMul程序,体验线程和数据的对应关系

7月14日

3.1
9:30-10:30

理论教学:
CUDA编程模型---错误检测与事件 
  • CUDA应用程序运行时的错误检测
  • CUDA中的事件
  • 利用事件进行计时

3.2
10:30-11:30

理论教学:
多种CUDA存储单元详解 
  • CUDA中的存储单元种类
  • CUDA中的各种存储单元的使用方法
  • CUDA中的各种存储单元的适用条件

3.  3
14:00-15:00

理论教学:
利用共享存储单元优化应用
  • 共享存储单元详解
  • 共享内存的Bank conflict
  • 利用共享存储单元进行矩阵转置和矩阵乘积

3.4
15:00-16:00

上机实验
编写Shared Memory优化过的矩阵乘法
7月15日

4.1
9:30-10:30

理论教学:
基于Jetson平台的存储单元调用
  • 基于ARM平台的Jetson nano的存储单元特点
  • 统一内存的基本概念
  • 如何更有效的利用Jetson的存储单元

4.2
10:30-11:30

上机实验
编写MatrixMul程序,体验统一内存的使用方法

4.3
14:00-15:00

理论教学:
cuBLAS应用
  • 介绍已有的cuda库,着重介绍cuBLAS的应用案例

4.4
14:00-15:00


理论教学:
CUDA stream
  • CUDA流的基本概念
  • 默认流与非默认流
  • 利用CUDA流重叠计算和数据传输

4.5
15:00-16:00
上机实验:
结合cuBLAS,体验利用流来减少运行时间
7月16日

在线答疑,准备结业测试


关于课程考核:
1.
完成所有的理论课程和上机实验,并完成小程序打卡
2
完成课后线上答题
3
所有课程结束后完成三个考题,每个考题为完成一段程序,由易到难。
三组都完成的视为合格
考试时间:7月17日 上午09:00—12:00

完成#1#2和#3,退还200元报名费,还将获得NVIDIA开发者社区颁发的结业证书。
教材与学习资源
课程教材
《CUDA on ARM platform 夏令营》自编教材
参考书目
樊哲勇《CUDA编程:基础与实践》清华大学出版社出版时间:2020-10-01
NVIDIA官方文档:CUDA C++ Best Practices Guide
NVIDIA官方文档:CUDA Programming Guide



使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册