作者簡介 徐佳寧/博士,就職于哈爾濱工業大學,副研究員。專註于電動汽車電池的大規模數據處理和儲能系統設計的大數據驅動智能優化。近年來該研究將大型模型訓練加速、計算能力調度和異構計算優化作為優先事項,旨在提高計算效率和資源利用率,以促進大規模人工智能模型的有效部署和應用。
目錄 緒論
一、NVIDIA與GPU的崛起:驅動計算革新的核心力量
二、并行編程的意義:從串列計算到高性能計算的轉型
三、CUDA的誕生與發展:統一架構下的并行計算
第1部分 CUDA基礎理論與優化方法
第1章 GPU硬體架構與CUDA開發環境配置
1 1 CUDA設備架構詳解:流式多處理器、Warp機制與寄存器
1 1 1 SM的線程調度單元與計算核心分析
1 1 2 Warp與線程的并行執行模式與分支處理機制
1 1 3 寄存器分配與線程數的關係對性能的影響
1 1 4 初步演練:基於CUDA的核函數設計
1 2 CUDA工具鏈剖析:nvcc編譯器、CUDA運行時與驅動程序的差異
1 2 1 nvcc編譯器的優化選項與目標代碼生成分析
1 2 2 CUDA運行時API與驅動API的調用流程與性能對比
1 2 3 不同CUDA版本的驅動兼容性與遷移
1 3 多平台開發環境配置:Windows、Linux與容器化環境的安裝與調試
1 3 1 Windows與Linux平台CUDA開發環境的配置與常見問題
1 3 2 使用容器化工具(如Docker)搭建跨平台CUDA開發環境
1 4 使用nvidia-smi進行GPU監控與設置:設備狀態查詢、溫度與功耗優化
1 4 1 查詢GPU內存佔用、溫度與功耗的實時狀態信息
1 4 2 動態調整GPU的性能狀態與功耗限制
1 4 3 利用腳本自動化監控與批量配置多GPU設備
1 5 本章小結
1 6 思考題
第2章 線程與網格組織
2 1 CUDA線程模型:線程、線程塊與網格的硬體綁定
2 1 1 線程塊與SM映射關係對并行計算的影響
2 1 2 CUDA線程的生命周期與線程分組的硬體依賴
2 2 多維網格設計:線程索引計算與數據映射案例(矩陣乘法)
2 2 1 多維線程網格的設計方法與索引計算邏輯
2 2 2 基於二維和三維網格的矩陣乘法性能優化
2 3 線程塊大小的選擇與資源分配:共享內存與寄存器利用率的平衡
2 3 1 如何根據GPU硬體限制選擇線程塊大小
2 3 2 分析寄存器與共享內存對線程塊大小的影響
2 4 動態并行實現:在核函數中啟動新的網格
2 4 1 動態并行API調用的性能分析與應用場景
2 4 2 動態網格嵌套的調度與資源分配優化
2 5 Warp機制深度詳解與分支發散優化
2 5 1 Warp分支發散的檢測與分支規約技術
2 5 2 使用Warp Shuffle指令優化線程間數據交換
2 6 本章小結
2 7 思考題
第3章 內存管理與優化
3 1 CUDA內存層級剖析:全局內存、共享內存、寄存器與局部內存的特性
3 1 1 全局內存與共享內存的訪問特性與延遲分析
3 1 2 寄存器分配與局部內存溢出對性能的影響
3 2 全局內存合併訪問:矩陣轉置性能優化
3 2 1 訪存對齊與內存帶寬利用率優化技術
3 2 2 基於合併訪問的全局內存訪問優化案例
3 3 共享內存動態分配:數組歸約計算優化實現
3 3 1 動態共享內存分配的機制與對線程塊的影響
3 3 2 使用共享內存實現高效歸約計算的步驟與優化
3 4 L1、L2緩存行為優化:減少內存訪問延遲
3 4 1 緩存配置選項與性能優化
3 4 2 使用緩存命中率分析工具評估訪存效率
3 5 本章小結
3 6 思考題
第4章 CUDA程序的框架與數據傳輸
4 1 核函數設計與線程調度:基於線程索引的數據分片處理
4 1 1 使用線程索引分配數據塊與循環展開優化
4 1 2 核函數內存帶寬與線程調度的優化實例
4 2 主機與設備之間的數據傳輸優化:鎖頁內存與非同步傳輸
4 2 1 使用鎖頁內存減少數據傳輸開銷的方法
4 2 2 非同步數據傳輸的實現與核函數執行的重疊
4 3 內存分配與釋放:Unified Memory、cudaMallocManaged與cudaMemcpy的對比
4 3 1 Unified Memory與傳統顯式內存分配的對比案例
4 3 2 使用cudaMallocManaged實現跨設備數據共享
4 4 本章小結
4 5 思考題
第5章 常見錯誤檢測與調試工具
5 1 利用CUDA運行時API檢測錯誤:宏定義實現通用錯誤處理
5 1 1 常見CUDA錯誤代碼及其含義與處理方法
5 1 2 基於宏函數的通用錯誤檢測與日誌記錄實現
5 2 CUDA-MEMCHECK的使用:定位內存溢出與數據競爭問題
5 2 1 使用CUDA-MEMCHECK工具檢測內存越界訪問與未初始化變數
5 2 2 數據競爭檢測與消除方法的實際案例
5 3 核函數中的線程調試:Warp分支發散的識別與優化
5 3 1 使用printf調試核函數中的線程執行路徑
5 3 2 使用Nsight工具分析分支發散和Warp效率
5 4 使用Nsight調試工具分析性能瓶頸
5 4 1 Nsight Compute的熱點分析與性能優化步驟
5 4 2 使用Nsight Systems分析非同步任務與流的重疊執行
5 4 3 案例:綜合使用調試與分析工具優化CUDA程序
5 5 本章小結
5 6
詳細資料或其他書籍請至台灣高等教育出版社查詢,查後請於客服中心或Line或本社留言板留言,我們即儘速上架。