求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
 
 
 
开班计划 | 技术学院 | 管理学院 | 嵌入式学院 | 机械 | 军工学院 | 定向培养 | 专家指导  
 电话 English
成功案例   品质保证
 
成功案例
某集成电 多核体系的软件仿真
某电力能 设计模式原理及应用
南方航空 软件设计方法与实践
某跨国公 软件设计原理与实
爱立信( 软件设计
Moto 设计模式
北京 软件设计原理与实践
 

全部课程 >C/C++技术  
GPU高级调试与优化
2393 次浏览  33 次
张老师
曾任INTEL的高级工程师
 
时间地点:北京 上海 深圳根据报名开班
课程费用:5500元/人
企业内训:可以根据企业需求,定制内训,详见 内训学习手册


认证方式:
培训前了解能力模型。
培训后进行能力评测:
  • 在线考试
  • 能力分析,给出学习建议
  • 合格者颁发证书,作为职业技能资格证明


    本研习班从GPU的发展简史入手,沿着GPU的发展历程,从内部结构、硬件接口和软件接口三个维度螺旋推进,深入解析GPU编程的知识要点和难点。硬件方面,以NVIDIA、AMD、INTEL和ARM四大阵营的GPU产品为例,揭秘GPU的内部架构和执行逻辑,解读其强大并行能力的硬件基础。软件方面,覆盖编程模型(CUDA、OpenCL、OpenVX、DirectX和OpenGL)、驱动模型(DRM和WDDM)和工具三个层面。具体由以下12个主题讲解和8个动手试验组成。
    培训目标:
    • 让学员学习理解GPU编程。
    • 揭秘GPU的内部架构和执行逻辑,理解其强大并行能力的硬件基础。
    • 软件方面,学习编程模型(CUDA、OpenCL、OpenVX、DirectX和OpenGL)、驱动模型(DRM和WDDM)和工具三个层面。
    培训对象:GPU进行通用计算和图形加速的软件工程师(开发和测试)、技术经理和科研人员
    学员基础:具有C++编程经验
    授课方式:实战演练、讲解和讨论点评
    培训内容:3天
    序言:三轮演进 (0.5小时)
    要点:VGA,TVGA,硬件加速,2D加速和3D加速,Voodo,从可配置到可编程 ,G80,GPGPU,John Nickolls,Brook和CUDA,GPU的四大功能模块
    第一部分:在CUDA-GDB中理解CUDA(1.5小时) 要点:CUDA简要历史,CUDA的C扩展,kernel函数,WARP,CUDA的线程组织,准备调试环境,单GPU调试和多GPU调试,远程调试,nvcc,-G和-g选项,附加到已经运行的进程,启用kernel初始断点(break on launch),观察源代码和汇编指令,设置断点,单步跟踪,条件断点,观察CUDA的内建变量,PTX指令集,理解WARP、grid、block和thread,Grid-Stride Loops,观察GPU线程,观察GPU的调用栈,观察GPU的寄存器,观察错误信息,从GPU上打印信息
    试验1:编译和观察简单的CUDA程序
    编译一个简单的CUDA程序,使用CUDA SDK中的二进制工具观察其内容,理解CUDA的编译过程和程序文件格式
    试验2:改进和调试向量乘法程序
    使用CUDA技术编写一个做向量乘法的小程序,理解如何向kernel函数传递参数和传回计算结果
    试验3:学习CUDA-GDB的基本用法
    调试一个简单CUDA程序,练习常用的CUDA-GDB扩展命令,理解CUDA编程的关键概念
    第二部分:使用NSight调试CUDA程序(1.5小时) 要点:NSight简介,安装和设置环境信息,CUDA 9.0.props,窗口布局,在VS中编译CUDA程序,产生调试信息(-G),本地调试模型,NSight Monitor,设置断点,观察变量,在Cuda Info窗口中观察计算状态,WarpWatch,调用栈,源代码跟踪,PTX/SASS汇编调试,数据断点,API Trace,OpenCL kernel追踪,产生GPU转储(core dump),调优功能
    试验4:使用Visual Studio和NSight调试CUDA程序
    在VS中编译和调试一个典型的并行计算程序,熟悉NSight提供的常用调试功能,包括产生调试信息,建立调试会话,设置各种断点,观察源代码和变量,单步跟踪等
    第三部分:显存锥鉴(1.5 小时) 要点:系统架构,内存映射,PCI Aperture,GART,GTT,访问主内存, UVA/ UMA ,Batch Buffer ,CUDA中的内存类型,内存共享,内存复制,使用本地共享内存(shared memory),使用 CUDA memory checker 检查内存问题(越界访问),使用Nsight的内存调优功能
    第四部分:使用NSight调试图形程序(1.5小时) 要点:感受3D图形魅力,从DX9到DX12,WDDM,UMD、KMD 和DX运行时,DRM,GEM和KMS,启用DRM的调试功能,HLSL,DirectCompute 的遗憾,PIX,Intel GPA,HUD,HUD图表,热键,HUD控制界面,VS的图形分析器(VSGA),Nsight的图形调试
    试验5:使用NSight调试3D图形程序
    在VS中编译和调试一个典型的3D程序,使用HUD功能观察GPU工作细节,使用VSGA深入分析某一帧画面的产生细节,认识DirectX软件栈中的关键组件和执行过程
    第五部分:NVidia GPU微架构(1.5小时) 要点:G80,从SIMD到SIMT,warp,SM(Streaming Multiprocessors),Fermi微架构,PTX指令集,GigaThreads调度器,ECC支持,第三代SM,Kepler微架构,Hyper-Q,Grid Management Unit(GMU),SMX,动态并行,Maxwell微架构,SMM,指令缓存,WARP调度器,指令分发单元,Pascal微架构,伏特微架构,Tensor Core,软件仿真(GPUSim)
    第六部分:在 Code-Builder 中理解 OpenCL(1小时)
    要点: OpenCL版本,标准导读,执行模型,运行时,OpenCL的执行硬件,CPU 模拟,SIMD,kernel 函数, Code-Builder简介,离线编译和在线编译,ND Range ,启动算核函数,使用Code-Builder的调试功能,观察device信息,context ,对象树,命令队列,内建函数
    第七部分:计算机视觉加速接口(OpenVX)和英特尔实现(1.5小时) 要点:OpenVX简介,框架对象,数据对象,图(graph),节点,节点参数,执行模型,回掉,用户kernel,常用功能的接口函数,Intel CV SDK,Vision Algorithm Designer(VAD),自动产生C++代码,人脸检测实力分析和演示
    试验6:使用Code-Builder调试人脸检测程序
    调试Intel CV SDK中的人脸检测示例程序,练习常用的调试功能,理解OpenVX的工作原理
    第八部分:英特尔GPU综述(50分钟) 要点:Intel显卡简史,GEN架构,固定功能单元和通用计算单元(EU),EU结构,Slice 和 SubSlice,公开的编程手册,寄存器,GRF和ARF,VLIW,GEN指令集,LINUX驱动,i915,SRB驱动,开源项目(Beignet,NEO,CM,IGC)
    第九部分:使用 CUDA profiler 优化CUDA程序(1.5小时) 要点:测量GPU的时间,nvprof,命令行选项,指定收集范围,定义输出目标,Visual Profiler基础,配置远程目标,导入数据,观察时序图,识别重要事件:CPU缺页,GPU缺页,数据迁移,内存复制;采样视图,分析热点,源代码和汇编结合分析,Profile API,定义别名,定制标记,创建调优会话
    试验7:使用nvprof和Visual Profiler优化CUDA程序
    使用nvprof观察CUDA程序的执行细节,收集性能数据,在Visual Profiler中进行深入分析
    第十部分:使用GPUView分析CPU与GPU交互(1小时) 要点:ETW基础,log.cmd,收集事件,识别典型问题:GPU/CPU Starvation ,CPU/GPU Idle,线程切换,分析线程切换原因,实例演示
    试验8:使用GPUView观察GPU的工作状态
    安装GPUView,使用GPUView分析一个典型3D图形程序,理解GPUView的常用功能
    第十一部分:AMD GPU和HSA ( 1.5 小时) 要点:从ATI到AMD,HSA联盟,公开的技术手册,APU和GCN,GCN3解析,硬件架构,支持HSA的LINUX驱动,调试支持,软件工具链:GpuOpen.com,Radeon GPU Analyzer (RGA),使用GPU PerfStudio调试图形程序,CodeXL简介,使用CodeXL调试和优化OpenCL程序,CodeXL功能演示
    第十二部分:ARM GPU (1.5 小时) 要点:Mali,典型应用,在深度学习中的应用(inference),Midgard 微架构解析,内部结构,通用计算执行单元,DS-5简介, DS-5 编译工具,DS-5调试器,Streamline性能分析工具,DS-5 IDE 介绍, 系统时域范围的自下而上和自上而下分析方法,自定义标注,Log的图形化显示,OpenCL Kernel跟踪, 找到代码热点,调用链分析,矩阵乘法的优化,ARM GPU软件工具链,OpenVX实现,开源代码解读,实例演示:在Midgard GPU上调试OpenCL程序(使用OpenCL加速的人脸检测应用)
     
    2393 次浏览  33 次
    其他人还看了课程
    C++高级编程  9427 次浏览
    Win32下的C/C++核心编程  2192 次浏览
    Unix/Linux下的C/C++核心编程  2177 次浏览
    C++程序开发  3268 次浏览
    GIS系统架构与应用开发  1292 次浏览
    C++ 11,14,17,20新特性  1522 次浏览
    定制内训


    咨询服务:全流程测试工作平台与工具链
    咨询目标
    帮助开发测试团队建立从代码到组件,再到系统的全是流程测试工作平台与工具
    咨询范围 代码检查、单元测试、集成测试、功能测试、性能测试
    咨询方式 培训、客户一线项目咨询、工具打包交付
    详情咨询:010-62670969, zhgx@uml.net.cn
    课程计划
    MBSE(基于模型的系统工程)4-18[北京]
    自然语言处理(NLP) 4-25[北京]
    基于 UML 和EA进行分析设计 4-29[北京]
    以用户为中心的软件界面设计 5-16[北京]
    DoDAF规范、模型与实例 5-23[北京]
    信息架构建模(基于UML+EA)5-29[北京]