本课程是为对cuda编程感兴趣的软件工程师设计的。本课程第一部分主要介绍CUDA编程相关的知识。首先本课程将简单介绍GPU编程的基础概念,包括GPU硬件,GPU编程模型(SIMT),以及简单的CUDA程序实例。本课程将进一步介绍GPU程序运行时,包括CUDA初始化,CUDA程序中不同内存的使用,CUDA程序同步机制,多GPU间的通信和进程间的通信。本课程也介绍高级的CUDA编程技术,如协作组(cooperative group),动态并发 (dynamic parallism),虚拟内存 (virtual memory),流(stream),和统一内存模型(unified memory)等。本课程的第二部分涉及CUDA编程的基础设施部分,包括网络和存储。网络部分设计Nivdia NCCL库,存储部分涉及GPU Direct Storage。为了让本课程更加实用,本课程第三部分将介绍开发不同应用程序(数值分析,计算机视觉,自然语言处理等)所需要的CUDA 库。本课程最后一部分是实验部分,主要涵盖典型的CUDA程序例子,用以熟悉CUDA编程的各种模式。· 理解CUDA编程基本概念:SIMT,CUDA kernel,GPU内存分成结构,GPU线程模型等。· 掌握CUDA编程常见范式和多种开发应用程序需要的CUDA库2) CUDA生态网络和存储基础设施介绍 (2 hours)3) CUDA应用程序开发库介绍 (2 hours) 学生应该熟悉C/C++编程,并拥有笔记本电脑进行编程,最好能有GPU硬件。· 掌握CUDA程序接口,CUDA编译流程,PTX指令等§ Minizine memory thrashing· 理解NCCL(NVidia Collective Communication Library)的作用· 深入理解NCCL实现的通信原语(Ring-allreduce, Tree-Gather, All-to-All, etc).· 了解真实GPU互联的案例 – Azure NDv42.2: GPU直通存储(GPU direct storage)· 熟悉GPU Direct Storage 的基本概念· 掌握GDS软件栈和legacy存储软件栈的区别学习目标:学习掌握数值分析需要的CUDA库, 如cuBlas, cuFFT,cuSolver等学习目标:学习掌握CUDA计算机视觉算法库(CV-CUDA)的使用,比掌握一些基础算法的实现,如自适应阈值处理,2D卷积运算,直方图统计,和SIFT算子提取。学习目标:学习掌握使用cuDNN库的API和组成部件,掌握如何使用cuDNN实现深度学习网络,理解cuDNN在深度学习框架pytoch的应用。学习目标:学习掌握cuDF的使用,已经应用案例。了解Nvidia DALI系统。4.1: Cuda “hello world” and Monte Carlo模拟(实验)4.2: 3D Laplace finite difference solver (实验)4.3: Reduction and Scan operation and recurrence equations (实验)4.4: Streams and OpenMP Multithreading (实验)4.5: CV: edge detection (实验)4.7: NLP: sequence processing and generation (实验)• 研究高性能计算对 GPU,RDMA 等有系统研究• 研究深度学习框架,熟练掌握 Jax,Pyotch,Mindspore 底层设计。Andy博士在计算机系统软件设计和实现方面有丰富的经历。Andy在国际顶级会议(SOSP,Eurosys, HostStorage, FAST, SC, PACT, SPAA),和著名杂志(TOS,TOPC)上发表有论文 20 余篇。焦博士对 GPU 的体系架构,GPU CUDA 编程,深度学习算法和软件栈(Pytorch/DeepSpeed 等)有深入研究。焦博士对计算视觉应用(如人脸识别,行人检测,视频监控等)有丰富经验;熟练使用 CUDA 库高效实现计算机视觉常用算法。课程定价:6000元/人(阅码场会员和训练营老用户优惠券已发放。)
开课时间:2024年6月
课前准备:课程咨询请联系客服小月(WX:linuxer2016)