舉報

會員
GPU編程實戰(基于Python和CUDA)
(美)布萊恩·圖奧邁寧 著
更新時間:2022-12-20 18:31:35
開會員,本書免費讀 >
最新章節:
第12章 未來展望
本書旨在引導讀者基于Python和CUDA的GPU編程開發高性能的應用程序,先后介紹了為什么要學習GPU編程、搭建GPU編程環境、PyCUDA入門等內容,以及CUDA代碼的調試與性能分析、通過Scikit-CUDA模塊使用CUDA庫、實現深度神經網絡、CUDA性能優化等內容。學完上述內容,讀者應能從零開始構建基于GPU的深度神經網絡,甚至能夠解決與數據科學和GPU編程高性能計算相關的問題。本書適合對GPU編程與CUDA編程感興趣的讀者閱讀。讀者應掌握必要的基本數學概念,且需要具備一定的Python編程經驗。
最新章節
- 第12章 未來展望
- 第11章 CUDA性能優化
- 第10章 應用編譯好的GPU代碼
- 第9章 實現深度神經網絡
- 第8章 CUDA設備函數庫與Thrust庫
- 第7章 通過Scikit-CUDA模塊使用CUDA庫
品牌:人郵圖書
譯者:韓波
上架時間:2022-12-20 18:02:23
出版社:人民郵電出版社
本書數字版權由人郵圖書提供,并由其授權上海閱文信息技術有限公司制作發行
- 第12章 未來展望 更新時間:2022-12-20 18:31:35
- 第11章 CUDA性能優化
- 第10章 應用編譯好的GPU代碼
- 第9章 實現深度神經網絡
- 第8章 CUDA設備函數庫與Thrust庫
- 第7章 通過Scikit-CUDA模塊使用CUDA庫
- 第6章 CUDA代碼的調試與性能分析
- 第5章 流、事件、上下文與并發性
- 第4章 內核函數、線程、線程塊與網格
- 第3章 PyCUDA入門
- 第2章 搭建GPU編程環境
- 第1章 為什么要學習GPU編程
- 習題提示
- 12.6 習題
- 12.5 小結
- 12.4 區塊鏈技術
- 12.3.5 OpenCV
- 12.3.4 Chainer
- 12.3.3 Tensorflow與Keras
- 12.3.2 cuDNN
- 12.3.1 基礎知識
- 12.3 機器學習與計算機視覺
- 12.2.3 Vulkan
- 12.2.2 DirectX 12
- 12.2.1 OpenGL
- 12.2 圖形領域
- 12.1.3 OpenCL和PyOpenCLCUDA
- 12.1.2 集群計算和消息傳遞接口
- 12.1.1 多GPU系統
- 12.1 深入了解CUDA和GPGPU編程技術
- 第12章 未來展望
- 11.8 習題
- 11.7 小結
- 11.6 經過優化的數組求和函數
- 11.5 內聯PTX匯編
- 11.4 線程束洗牌
- 11.3 線程安全的原子操作
- 11.2 向量化數據類型與內存訪問
- 基于動態并行性的快速排序算法
- 11.1 動態并行性
- 第11章 CUDA性能優化
- 10.5 習題
- 10.4 小結
- 使用CUDA Driver API
- 10.3 為CUDA Driver API編寫包裝器
- 10.2 編譯并運行純PTX代碼
- 重溫Mandelbrot集
- 10.1 通過Ctypes模塊啟動編譯好的代碼
- 第10章 應用編譯好的GPU代碼
- 9.8 習題
- 9.7 小結
- 9.6 Iris數據集
- 9.5.3 數據的規范化和歸一化
- 9.5.2 梯度下降法
- 9.5.1 推理方法的實現
- 9.5 序貫網絡的實現
- 9.4 交叉熵損失函數的實現
- 9.3 softmax層的實現
- 實現一個密集層
- 9.2 人工神經元與神經網絡
- 9.1 技術要求
- 第9章 實現深度神經網絡
- 8.6 習題
- 8.5 小結
- 在Thrust中使用仿函數
- 8.4 CUDA Thrust庫
- 8.3.3 編寫測試用例
- 8.3.2 用蒙特卡羅方法計算定積分
- 8.3.1 定積分概述
- 8.3 CUDA Math API
- 用蒙特卡羅方法估計圓周率
- 8.2 cuRAND設備函數庫
- 8.1 技術要求
- 第8章 CUDA設備函數庫與Thrust庫
- 7.7 習題
- 7.6 小結
- 7.5.2 奇異值分解在主成分分析中的應用
- 7.5.1 奇異值分解
- 7.5 通過Scikit-CUDA使用cuSolver
- 7.4.3 利用cuFFT進行二維卷積
- 7.4.2 使用FFT進行卷積操作
- 7.4.1 一維快速傅里葉變換示例
- 7.4 利用cuFFT庫進行快速傅里葉變換
- 7.3.4 利用cuBLAS中的第3級GEMM操作測量GPU性能
- 7.3.3 利用cuBLAS庫處理第2級GEMV運算
- 7.3.2 其他第1級cuBLAS函數
- 7.3.1 利用cuBLAS庫處理第1級AXPY運算
- 7.3 利用cuBLAS庫處理基本線性代數運算
- 7.2 安裝Scikit-CUDA
- 7.1 技術要求
- 第7章 通過Scikit-CUDA模塊使用CUDA庫
- 6.7 習題
- 6.6 小結
- 6.5 使用NVIDIA性能分析工具——nvprof與Visual Profiler
- 6.4.3 借助Nsight理解CUDA的線程束鎖步特性
- 6.4.2 在Linux平臺中使用Nsight和Eclipse
- 6.4.1 在Windows平臺上的Visual Studio中使用Nsight
- 6.4 利用Nsight IDE開發和調試CUDA C代碼
- 6.3 CUDA C編程簡介
- 利用printf函數調試代碼
- 6.2 在CUDA內核函數中使用printf函數
- 6.1 技術要求
- 第6章 CUDA代碼的調試與性能分析
- 5.6 習題
- 5.5 小結
- 5.4.4 實現主機端并發的多上下文
- 5.4.3 主機端多進程與多線程技術
- 5.4.2 手動創建上下文
- 5.4.1 同步當前上下文
- 5.4 上下文
- 事件與CUDA流
- 5.3 事件
- 5.2.2 通過CUDA流實現并發版本的LIFE
- 5.2.1 使用PyCUDA流類
- 5.2 CUDA設備同步
- 5.1 技術要求
- 第5章 流、事件、上下文與并發性
- 4.7 習題
- 4.6 小結
- 4.5.4 工作高效型并行前綴算法的實現
- 4.5.3 工作高效型并行前綴算法
- 4.5.2 包含型并行前綴算法與獨占型并行前綴算法
- 4.5.1 樸素并行前綴算法
- 4.5 并行前綴算法
- 4.4.2 使用共享內存
- 4.4.1 使用設備函數__syncthreads
- 4.4 線程同步與線程通信
- 康威生命游戲
- 4.3 線程、線程塊與網格
- PyCUDA SourceModule函數
- 4.2 內核函數
- 4.1 技術要求
- 第4章 內核函數、線程、線程塊與網格
- 3.6 習題
- 3.5 小結
- 3.4.3 并行化的掃描內核函數和規約內核函數簡介
- 3.4.2 函數式編程簡介
- 3.4.1 重溫Mandelbrot集
- 3.4 使用PyCUDA的ElementwiseKernel執行逐元素運算
- 3.3.2 使用gpuarray進行基本的逐元素算術運算
- 3.3.1 使用gpuarray在GPU之間傳輸數據
- 3.3 使用PyCUDA的gpuarray類
- 使用PyCUDA查詢GPU
- 3.2 查詢GPU
- 3.1 技術要求
- 第3章 PyCUDA入門
- 2.7 習題
- 2.6 小結
- 2.5.4 測試PyCUDA
- 2.5.3 安裝PyCUDA(Windows系統)
- 2.5.2 創建環境啟動腳本(Windows系統)
- 2.5.1 安裝PyCUDA(Linux系統)
- 2.5 為GPU編程設置Python環境
- 2.4.3 安裝CUDA Toolkit
- 2.4.2 設置Visual Studio(Windows系統)
- 2.4.1 設置GCC、Eclipse IDE和圖形處理庫(Linux系統)
- 2.4 搭建C++編程環境
- 2.3.2 安裝GPU驅動程序(Windows系統)
- 2.3.1 安裝GPU驅動程序(Linux系統)
- 2.3 安裝GPU驅動程序
- 2.2.2 檢查硬件(Windows系統)
- 2.2.1 檢查硬件(Linux系統)
- 2.2 確保擁有合適的硬件
- 2.1 技術要求
- 第2章 搭建GPU編程環境
- 1.5 習題
- 1.4 小結
- 使用cProfile模塊
- 1.3 對代碼進行性能分析
- 1.2.2 Mandelbrot集
- 1.2.1 使用阿姆達爾定律
- 1.2 并行化與阿姆達爾定律
- 1.1 技術要求
- 第1章 為什么要學習GPU編程
- 體例格式
- 配套資源解壓工具
- 閱讀本書的前提
- 本書內容
- 讀者對象
- 前言
- 審稿人簡介
- 作者簡介
- 內容提要
- 版權聲明
- 版權信息
- 封面
- 封面
- 版權信息
- 版權聲明
- 內容提要
- 作者簡介
- 審稿人簡介
- 前言
- 讀者對象
- 本書內容
- 閱讀本書的前提
- 配套資源解壓工具
- 體例格式
- 第1章 為什么要學習GPU編程
- 1.1 技術要求
- 1.2 并行化與阿姆達爾定律
- 1.2.1 使用阿姆達爾定律
- 1.2.2 Mandelbrot集
- 1.3 對代碼進行性能分析
- 使用cProfile模塊
- 1.4 小結
- 1.5 習題
- 第2章 搭建GPU編程環境
- 2.1 技術要求
- 2.2 確保擁有合適的硬件
- 2.2.1 檢查硬件(Linux系統)
- 2.2.2 檢查硬件(Windows系統)
- 2.3 安裝GPU驅動程序
- 2.3.1 安裝GPU驅動程序(Linux系統)
- 2.3.2 安裝GPU驅動程序(Windows系統)
- 2.4 搭建C++編程環境
- 2.4.1 設置GCC、Eclipse IDE和圖形處理庫(Linux系統)
- 2.4.2 設置Visual Studio(Windows系統)
- 2.4.3 安裝CUDA Toolkit
- 2.5 為GPU編程設置Python環境
- 2.5.1 安裝PyCUDA(Linux系統)
- 2.5.2 創建環境啟動腳本(Windows系統)
- 2.5.3 安裝PyCUDA(Windows系統)
- 2.5.4 測試PyCUDA
- 2.6 小結
- 2.7 習題
- 第3章 PyCUDA入門
- 3.1 技術要求
- 3.2 查詢GPU
- 使用PyCUDA查詢GPU
- 3.3 使用PyCUDA的gpuarray類
- 3.3.1 使用gpuarray在GPU之間傳輸數據
- 3.3.2 使用gpuarray進行基本的逐元素算術運算
- 3.4 使用PyCUDA的ElementwiseKernel執行逐元素運算
- 3.4.1 重溫Mandelbrot集
- 3.4.2 函數式編程簡介
- 3.4.3 并行化的掃描內核函數和規約內核函數簡介
- 3.5 小結
- 3.6 習題
- 第4章 內核函數、線程、線程塊與網格
- 4.1 技術要求
- 4.2 內核函數
- PyCUDA SourceModule函數
- 4.3 線程、線程塊與網格
- 康威生命游戲
- 4.4 線程同步與線程通信
- 4.4.1 使用設備函數__syncthreads
- 4.4.2 使用共享內存
- 4.5 并行前綴算法
- 4.5.1 樸素并行前綴算法
- 4.5.2 包含型并行前綴算法與獨占型并行前綴算法
- 4.5.3 工作高效型并行前綴算法
- 4.5.4 工作高效型并行前綴算法的實現
- 4.6 小結
- 4.7 習題
- 第5章 流、事件、上下文與并發性
- 5.1 技術要求
- 5.2 CUDA設備同步
- 5.2.1 使用PyCUDA流類
- 5.2.2 通過CUDA流實現并發版本的LIFE
- 5.3 事件
- 事件與CUDA流
- 5.4 上下文
- 5.4.1 同步當前上下文
- 5.4.2 手動創建上下文
- 5.4.3 主機端多進程與多線程技術
- 5.4.4 實現主機端并發的多上下文
- 5.5 小結
- 5.6 習題
- 第6章 CUDA代碼的調試與性能分析
- 6.1 技術要求
- 6.2 在CUDA內核函數中使用printf函數
- 利用printf函數調試代碼
- 6.3 CUDA C編程簡介
- 6.4 利用Nsight IDE開發和調試CUDA C代碼
- 6.4.1 在Windows平臺上的Visual Studio中使用Nsight
- 6.4.2 在Linux平臺中使用Nsight和Eclipse
- 6.4.3 借助Nsight理解CUDA的線程束鎖步特性
- 6.5 使用NVIDIA性能分析工具——nvprof與Visual Profiler
- 6.6 小結
- 6.7 習題
- 第7章 通過Scikit-CUDA模塊使用CUDA庫
- 7.1 技術要求
- 7.2 安裝Scikit-CUDA
- 7.3 利用cuBLAS庫處理基本線性代數運算
- 7.3.1 利用cuBLAS庫處理第1級AXPY運算
- 7.3.2 其他第1級cuBLAS函數
- 7.3.3 利用cuBLAS庫處理第2級GEMV運算
- 7.3.4 利用cuBLAS中的第3級GEMM操作測量GPU性能
- 7.4 利用cuFFT庫進行快速傅里葉變換
- 7.4.1 一維快速傅里葉變換示例
- 7.4.2 使用FFT進行卷積操作
- 7.4.3 利用cuFFT進行二維卷積
- 7.5 通過Scikit-CUDA使用cuSolver
- 7.5.1 奇異值分解
- 7.5.2 奇異值分解在主成分分析中的應用
- 7.6 小結
- 7.7 習題
- 第8章 CUDA設備函數庫與Thrust庫
- 8.1 技術要求
- 8.2 cuRAND設備函數庫
- 用蒙特卡羅方法估計圓周率
- 8.3 CUDA Math API
- 8.3.1 定積分概述
- 8.3.2 用蒙特卡羅方法計算定積分
- 8.3.3 編寫測試用例
- 8.4 CUDA Thrust庫
- 在Thrust中使用仿函數
- 8.5 小結
- 8.6 習題
- 第9章 實現深度神經網絡
- 9.1 技術要求
- 9.2 人工神經元與神經網絡
- 實現一個密集層
- 9.3 softmax層的實現
- 9.4 交叉熵損失函數的實現
- 9.5 序貫網絡的實現
- 9.5.1 推理方法的實現
- 9.5.2 梯度下降法
- 9.5.3 數據的規范化和歸一化
- 9.6 Iris數據集
- 9.7 小結
- 9.8 習題
- 第10章 應用編譯好的GPU代碼
- 10.1 通過Ctypes模塊啟動編譯好的代碼
- 重溫Mandelbrot集
- 10.2 編譯并運行純PTX代碼
- 10.3 為CUDA Driver API編寫包裝器
- 使用CUDA Driver API
- 10.4 小結
- 10.5 習題
- 第11章 CUDA性能優化
- 11.1 動態并行性
- 基于動態并行性的快速排序算法
- 11.2 向量化數據類型與內存訪問
- 11.3 線程安全的原子操作
- 11.4 線程束洗牌
- 11.5 內聯PTX匯編
- 11.6 經過優化的數組求和函數
- 11.7 小結
- 11.8 習題
- 第12章 未來展望
- 12.1 深入了解CUDA和GPGPU編程技術
- 12.1.1 多GPU系統
- 12.1.2 集群計算和消息傳遞接口
- 12.1.3 OpenCL和PyOpenCLCUDA
- 12.2 圖形領域
- 12.2.1 OpenGL
- 12.2.2 DirectX 12
- 12.2.3 Vulkan
- 12.3 機器學習與計算機視覺
- 12.3.1 基礎知識
- 12.3.2 cuDNN
- 12.3.3 Tensorflow與Keras
- 12.3.4 Chainer
- 12.3.5 OpenCV
- 12.4 區塊鏈技術
- 12.5 小結
- 12.6 習題
- 習題提示
- 第1章 為什么要學習GPU編程
- 第2章 搭建GPU編程環境
- 第3章 PyCUDA入門
- 第4章 內核函數、線程、線程塊與網格
- 第5章 流、事件、上下文與并發性
- 第6章 CUDA代碼的調試與性能分析
- 第7章 通過Scikit-CUDA模塊使用CUDA庫
- 第8章 CUDA設備函數庫與Thrust庫
- 第9章 實現深度神經網絡
- 第10章 應用編譯好的GPU代碼
- 第11章 CUDA性能優化
- 第12章 未來展望 更新時間:2022-12-20 18:31:35