课程培训
GPU高性能计算培训课程

GPU高性能计算培训课程大纲

  •  

  • 培训对象

  • 适合具备C/C++或Python编程基础,希望系统掌握GPU高性能计算核心技术、利用GPU加速科学计算与工程应用的科研人员、算法工程师、高性能计算开发者及计算机相关专业学生。

  •  

  • 培训目标

  • 完成本课程后,学员将能够深入理解GPU体系架构与高性能计算核心概念,熟练掌握CUDA编程模型与优化技术,掌握OpenMP、OpenACC等异构并行编程方法,熟练使用cuBLAS、cuFFT等高性能计算库,具备性能分析、瓶颈识别与优化调优的能力,能够独立完成从串行程序到GPU并行化的迁移与加速,并了解多GPU与集群部署方案。

  •  

  • 培训内容


  • (1)高性能计算与GPU架构基础:了解高性能计算(HPC)的定义、发展历程和应用领域。掌握并行计算的基本概念:Flynn分类法(SIMD/MIMD)、共享内存与分布式内存架构。深入理解GPU与CPU的架构差异(多核并行vs众核并行),掌握SIMT(单指令多线程)执行模型、线程层次结构(网格Grid、线程块Block、线程Thread)以及GPU存储体系(全局内存、共享内存、寄存器、常量内存)的组织方式

    (2)CUDA编程模型与开发环境:学习CUDA编程模型的核心概念,包括内核函数(Kernel)定义与调用、线程组织方式、内置变量(threadIdx、blockIdx、blockDim)和API函数。搭建CUDA开发环境,掌握NVCC编译器使用、项目配置和调试工具(NVIDIA Nsight、CUDA-GDB)的应用。编写第一个CUDA程序,实现向量加法并理解主机与设备间的数据传递机制

    (3)CUDA内存管理与优化:掌握CUDA API进行设备内存分配(cudaMalloc)、释放(cudaFree)和主机-设备间数据拷贝(cudaMemcpy)。理解页锁定内存(pinned memory)、统一内存(unified memory)的应用场景。掌握全局内存的合并访问原则,利用共享内存减少全局内存访问次数,使用常量内存加速特定访问模式。实践基于平铺(tiling)技术的矩阵乘法优化

    (4)线程层次结构与执行模型:掌握CUDA线程、块和网格的配置方法以定义并行度。理解线程束(Warp)调度原理与过程、延迟隐藏原则和设备占用率的计算方法,能够根据硬件资源合理配置内核执行参数以最大化利用率。学习块内同步(__syncthreads)和网格级同步机制。

    (5)原子操作与并发处理:掌握原子操作(atomicAdd等)的原理与应用场景,解决并行计算中的竞态条件。实现规约(Reduce)等需要共享数据更新的算法。学习CUDA流(Streams)实现计算与数据传输的重叠,提高设备利用率。掌握异步并发执行和事件同步机制,使用CUDA事件进行性能计时和依赖管理。

    (6)性能分析与调试工具:使用NVIDIA Nsight Systems、Nsight Compute进行CUDA代码的性能分析,识别性能瓶颈和热点。掌握CUDA-MEMCHECK检测内存错误和泄漏。学习使用nvprof和Visual Profiler进行性能剖析。掌握性能优化方法论:识别热点、分析瓶颈、迭代优化

    (7)CUDA高性能计算库:了解CUDA生态系统提供的常用高性能计算库,包括cuBLAS(线性代数)、cuFFT(快速傅里叶变换)、cuRAND(随机数生成)、Thrust(C++模板库)和CUB(CUDA原语库)。学习如何利用这些库加速应用开发,避免重复造轮子。实践使用cuBLAS进行矩阵运算加速,使用cuFFT进行快速傅里叶变换。

    (8)OpenMP与GPU加速:学习使用OpenMP指令实现CPU多线程并行化。掌握OpenMP offloading技术,通过指令将计算任务卸载到GPU。理解数据映射和内存管理机制,实践将现有C/C++程序通过OpenMP offloading迁移到GPU平台

    (9)OpenACC指令式编程:学习OpenACC指令式编程模型的核心概念,掌握如何通过编译器指令实现应用加速。了解OpenACC与CUDA的适用场景差异。学习识别CPU-only应用的热点并进行GPU加速,优化CPU与GPU间的数据移动

    (10)多GPU编程技术:掌握多GPU编程模型和任务划分策略。学习使用CUDA API管理多设备(cudaSetDevice、cudaDeviceProp)。了解点对点通信(Peer-to-Peer Access)和多GPU数据并行模式的基本原理。使用NCCL(NVIDIA集合通信库)实现多GPU间高效通信

    (11)CUDA Python与Numba加速:学习使用Numba编译器在Python中编写CUDA内核的方法。掌握通过几行代码实现NumPy ufuncs的GPU加速,利用CUDA线程层次结构配置代码并行化。编写自定义CUDA内核实现最大性能和灵活性,使用内存合并和共享内存增加CUDA内核的带宽

    (12)综合项目实战:高性能计算应用开发:结合所学知识,完成一个完整的GPU高性能计算项目(如分子动力学模拟、流体力学计算、蒙特卡洛模拟或图像处理算法加速)。涵盖算法设计、CUDA内核实现、性能优化(合并访问、共享内存、流并发)、多GPU扩展、功能验证和结果分析的全流程,形成规范的高性能计算项目报告。





如果您想学习本课程,请预约报名
如果没找到合适的课程或有特殊培训需求,请订制培训
除培训外,同时提供相关技术咨询与技术支持服务,有需求请发需求表到邮箱soft@info-soft.cn,或致电4007991916
技术服务需求表点击在线申请

服务特点:
海量专家资源,精准匹配相关行业,相关项目专家,针对实际需求,顾问式咨询,互动式授课,案例教学,小班授课,实际项目演示,快捷高效,省时省力省钱。

专家力量:
中国科学院软件研究所,计算研究所高级研究人员
oracle,微软,vmware,MSC,Ansys,candence,Altium,达索等大型公司高级工程师,项目经理,技术支持专家
中科信软培训中心,资深专家或讲师
大多名牌大学,硕士以上学历,相关技术专业,理论素养丰富
多年实际项目经历,大型项目实战案例,热情,乐于技术分享
针对客户实际需求,案例教学,互动式沟通,学有所获
报名表下载
联系我们 更多>>

咨询电话010-62883247

                4007991916

咨询邮箱:soft@info-soft.cn  

 

  微信咨询

随时听讲课

聚焦技术实践

订制培训 更多>>