曙海教學(xué)優(yōu)勢
本課程面向企事業(yè)項目實際需要,秉承二十一年積累的教學(xué)品質(zhì),GPU高級調(diào)試與優(yōu)化培訓(xùn)-以項目實現(xiàn)為導(dǎo)向,老師將會與您分享設(shè)計的全流程以及工具的綜合使用經(jīng)驗、技巧。線上/線下/上門皆可,GPU高級調(diào)試與優(yōu)化培訓(xùn)-專家,課程可定制,熱線:4008699035。
曙海的課程培養(yǎng)了大批受企業(yè)歡迎的工程師。曙海的課程在業(yè)內(nèi)有著響亮的知名度。大批企業(yè)和曙海
建立了良好的合作關(guān)系,合作企業(yè)30萬+。
序言:三輪演進 |
要點:VGA,TVGA,硬件加速,2D加速和3D加速,Voodo,從可配置到可編程 ,G80,GPGPU,John Nickolls,Brook和CUDA,GPU的四大功能模塊 |
第一部分:在CUDA-GDB中理解CUDA |
要點:CUDA簡要歷史,CUDA的C擴展,kernel函數(shù),WARP,CUDA的線程組織,準(zhǔn)備調(diào)試環(huán)境,單GPU調(diào)試和多GPU調(diào)試,遠程調(diào)試,nvcc,-G和-g選項,附加到已經(jīng)運行的進程,啟用kernel初始斷點(break on launch),觀察源代碼和匯編指令,設(shè)置斷點,單步跟蹤,條件斷點,觀察CUDA的內(nèi)建變量,PTX指令集,理解WARP、grid、block和thread,Grid-Stride Loops,觀察GPU線程,觀察GPU的調(diào)用棧,觀察GPU的寄存器,觀察錯誤信息,從GPU上打印信息 試驗1:編譯和觀察簡單的CUDA程序 編譯一個簡單的CUDA程序,使用CUDA SDK中的二進制工具觀察其內(nèi)容,理解CUDA的編譯過程和程序文件格式 試驗2:改進和調(diào)試向量乘法程序 使用CUDA技術(shù)編寫一個做向量乘法的小程序,理解如何向kernel函數(shù)傳遞參數(shù)和傳回計算結(jié)果 試驗3:學(xué)習(xí)CUDA-GDB的基本用法 調(diào)試一個簡單CUDA程序,練習(xí)常用的CUDA-GDB擴展命令,理解CUDA編程的關(guān)鍵概念 |
第二部分:使用NSight調(diào)試CUDA程序 |
要點:NSight簡介,安裝和設(shè)置環(huán)境信息,CUDA 9.0.props,窗口布局,在VS中編譯CUDA程序,產(chǎn)生調(diào)試信息(-G),本地調(diào)試模型,NSight Monitor,設(shè)置斷點,觀察變量,在Cuda Info窗口中觀察計算狀態(tài),WarpWatch,調(diào)用棧,源代碼跟蹤,PTX/SASS匯編調(diào)試,數(shù)據(jù)斷點,API Trace,OpenCL kernel追蹤,產(chǎn)生GPU轉(zhuǎn)儲(core dump),調(diào)優(yōu)功能 試驗4:使用Visual Studio和NSight調(diào)試CUDA程序 在VS中編譯和調(diào)試一個典型的并行計算程序,熟悉NSight提供的常用調(diào)試功能,包括產(chǎn)生調(diào)試信息,建立調(diào)試會話,設(shè)置各種斷點,觀察源代碼和變量,單步跟蹤等 |
第三部分:顯存錐鑒 |
要點:系統(tǒng)架構(gòu),內(nèi)存映射,PCI Aperture,GART,GTT,訪問主內(nèi)存, UVA/ UMA ,Batch Buffer ,CUDA中的內(nèi)存類型,內(nèi)存共享,內(nèi)存復(fù)制,使用本地共享內(nèi)存(shared memory),使用 CUDA memory checker 檢查內(nèi)存問題(越界訪問),使用Nsight的內(nèi)存調(diào)優(yōu)功能 |
第四部分:使用NSight調(diào)試圖形程序 |
要點:感受3D圖形魅力,從DX9到DX12,WDDM,UMD、KMD 和DX運行時,DRM,GEM和KMS,啟用DRM的調(diào)試功能,HLSL,DirectCompute 的遺憾,PIX,Intel GPA,HUD,HUD圖表,熱鍵,HUD控制界面,VS的圖形分析器(VSGA),Nsight的圖形調(diào)試 試驗5:使用NSight調(diào)試3D圖形程序 在VS中編譯和調(diào)試一個典型的3D程序,使用HUD功能觀察GPU工作細節(jié),使用VSGA深入分析某一幀畫面的產(chǎn)生細節(jié),認識DirectX軟件棧中的關(guān)鍵組件和執(zhí)行過程 |
第五部分:NVidia GPU微架構(gòu) |
要點:G80,從SIMD到SIMT,warp,SM(Streaming Multiprocessors),F(xiàn)ermi微架構(gòu),PTX指令集,GigaThreads調(diào)度器,ECC支持,第三代SM,Kepler微架構(gòu),Hyper-Q,Grid Management Unit(GMU),SMX,動態(tài)并行,Maxwell微架構(gòu),SMM,指令緩存,WARP調(diào)度器,指令分發(fā)單元,Pascal微架構(gòu),伏特微架構(gòu),Tensor Core,軟件仿真(GPUSim) |
第六部分:在 Code-Builder 中理解 OpenCL |
要點:?OpenCL版本,標(biāo)準(zhǔn)導(dǎo)讀,執(zhí)行模型,運行時,OpenCL的執(zhí)行硬件,CPU 模擬,SIMD,kernel 函數(shù), Code-Builder簡介,離線編譯和在線編譯,ND Range ,啟動算核函數(shù),使用Code-Builder的調(diào)試功能,觀察device信息,context ,對象樹,命令隊列,內(nèi)建函數(shù) |
第七部分:計算機視覺加速接口(OpenVX)和英特爾實現(xiàn) |
要點:OpenVX簡介,框架對象,數(shù)據(jù)對象,圖(graph),節(jié)點,節(jié)點參數(shù),執(zhí)行模型,回掉,用戶kernel,常用功能的接口函數(shù),Intel CV SDK,Vision Algorithm Designer(VAD),自動產(chǎn)生C++代碼,人臉檢測實力分析和演示 試驗6:使用Code-Builder調(diào)試人臉檢測程序 調(diào)試Intel CV SDK中的人臉檢測示例程序,練習(xí)常用的調(diào)試功能,理解OpenVX的工作原理 |
第八部分:英特爾GPU綜述 |
要點:Intel顯卡簡史,GEN架構(gòu),固定功能單元和通用計算單元(EU),EU結(jié)構(gòu),Slice 和 SubSlice,公開的編程手冊,寄存器,GRF和ARF,VLIW,GEN指令集,LINUX驅(qū)動,i915,SRB驅(qū)動,開源項目(Beignet,NEO,CM,IGC) |
第九部分:使用 CUDA profiler 優(yōu)化CUDA程序 |
要點:測量GPU的時間,nvprof,命令行選項,指定收集范圍,定義輸出目標(biāo),Visual Profiler基礎(chǔ),配置遠程目標(biāo),導(dǎo)入數(shù)據(jù),觀察時序圖,識別重要事件:CPU缺頁,GPU缺頁,數(shù)據(jù)遷移,內(nèi)存復(fù)制;采樣視圖,分析熱點,源代碼和匯編結(jié)合分析,Profile API,定義別名,定制標(biāo)記,創(chuàng)建調(diào)優(yōu)會話 試驗7:使用nvprof和Visual Profiler優(yōu)化CUDA程序 使用nvprof觀察CUDA程序的執(zhí)行細節(jié),收集性能數(shù)據(jù),在Visual Profiler中進行深入分析 |
第十部分:使用GPUView分析CPU與GPU交互 |
要點:ETW基礎(chǔ),log.cmd,收集事件,識別典型問題:GPU/CPU Starvation ,CPU/GPU Idle,線程切換,分析線程切換原因,實例演示 試驗8:使用GPUView觀察GPU的工作狀態(tài) 安裝GPUView,使用GPUView分析一個典型3D圖形程序,理解GPUView的常用功能 |
第十一部分:AMD GPU和HSA |
要點:從ATI到AMD,HSA聯(lián)盟,公開的技術(shù)手冊,APU和GCN,GCN3解析,硬件架構(gòu),支持HSA的LINUX驅(qū)動,調(diào)試支持,軟件工具鏈:GpuOpen.com,Radeon GPU Analyzer (RGA),使用GPU PerfStudio調(diào)試圖形程序,CodeXL簡介,使用CodeXL調(diào)試和優(yōu)化OpenCL程序,CodeXL功能演示 |
第十二部分:ARM GPU |
要點:Mali,典型應(yīng)用,在深度學(xué)習(xí)中的應(yīng)用(inference),Midgard 微架構(gòu)解析,內(nèi)部結(jié)構(gòu),通用計算執(zhí)行單元,DS-5簡介, DS-5 編譯工具,DS-5調(diào)試器,Streamline性能分析工具,DS-5 IDE 介紹, 系統(tǒng)時域范圍的自下而上和自上而下分析方法,自定義標(biāo)注,Log的圖形化顯示,OpenCL Kernel跟蹤, 找到代碼熱點,調(diào)用鏈分析,矩陣乘法的優(yōu)化,ARM GPU軟件工具鏈,OpenVX實現(xiàn),開源代碼解讀,實例演示:在Midgard GPU上調(diào)試OpenCL程序(使用OpenCL加速的人臉檢測應(yīng)用) |