並行編程方法與優化實踐 并行编程方法与优化实践

劉文志

  • 出版商: 機械工業
  • 出版日期: 2015-06-08
  • 定價: $354
  • 售價: 8.5$301
  • 語言: 簡體中文
  • 頁數: 216
  • 裝訂: 平裝
  • ISBN: 7111501942
  • ISBN-13: 9787111501947

無法訂購

買這商品的人也買了...

相關主題

商品描述

 

<內容簡介>

近兩三年來,在因特網企業中,代碼優化、並行計算和GPU的使用越來越受到重視。無論是國外的Google、Facebook還是國內的百度、騰訊、阿裡和360,都在使用代碼優化、並行計算和GPU來完成以前不能完成的任務?而現在中小型企業也在使用代碼優化和並行化技術來提升產品的使用體驗。對於軟件開發人員來說,如果不掌握並行計算和代碼性能優化技術,在不久的將來就會被淘汰。
劉文志編著的《並行編程方法與優化實踐》不但涵蓋主流的現代多核處理器平臺架構、並行指令集和編譯制導語句,還介紹了常見並行程序設計語言、圖像處理和線性代數演算法的代碼性能優化,OpenCL程序如何在AMD、GCN、GPU和NVIDIA GPU上的編程執行,以及CUDA和OpenCL在GPU上的執行區別等。

 

<章節目錄>

前言
第1章 X86 SSE/AVX指令集
  1.1 SSE內置函數
    1.1.1 算術運算
    1.1.2 邏輯運算
    1.1.3 比較
    1.1.4 加載和存儲
  1.2 AVX內置函數
    1.2.1 算術運算
    1.2.2 邏輯運算
    1.2.3 比較
    1.2.4 加載和存儲
  1.3 優化實例及分析
    1.3.1 如何測得CPU的浮點峰值性能
    1.3.2 積分計算圓周率π
    1.3.3 稀疏矩陣向量乘法
    1.3.4 二維單通道圖像離散捲積
  1.4 本章小結
第2章 ARM NEON SIMD指令優化
  2.1 NEON指令集綜述
  2.2 ARM A15處理器性能
  2.3 NEON支持的操作
    2.3.1 基本算術運算
    2.3.2 基本比較運算
    2.3.3 基本數據類型轉換及舍入運算
    2.3.4 基本位運算
    2.3.5 基本邏輯運算
    2.3.6 基本設置加載存儲操作
    2.3.7 特殊操作
  2.4 應用實例
    2.4.1 彩色圖像轉灰度圖像
    2.4.2 矩陣轉置
    2.4.3 矩陣乘
  2.5 本章小結
第3章 OpenMP程序設計
  3.1 OpenMP編程模型
    3.1.1 OpenMP執行模型
    3.1.2 OpenMP存儲器模型
  3.2 環境變量
  3.3 函數
    3.3.1 普通函數
    3.3.2 鎖函數
  3.4 OpenMP編譯制導語句
    3.4.1 常用的OpenMP構造
    3.4.2 常用的OpenMP子句
  3.5 OpenMP異構並行計算
  3.6 OpenMP程序優化
    3.6.1 OpenMP程序優化準則
    3.6.2 OpenMP並行優化實例
  3.7 本章小結

第4章 基於GPU的異構並行計算環境:CUDA與OpenCL
  4.1 GPU計算概述
    4.1.1 GPU計算歷史
    4.1.2 CUDA概述
    4.1.3 OpenCL概述
  4.2 異構並行計算模型
    4.2.1 平臺模型
    4.2.2 執行模型
    4.2.3 存儲器模型
    4.2.4 編程模型
  4.3 C語言接口
    4.3.1 OpenCL C語言
    4.3.2 CUDA C語言
  4.4 基於GPU的異構並行計算性能優化
    4.4.1 總體優化準則
    4.4.2 全局存儲器優化
    4.4.3 合併訪問
    4.4.4 局部存儲器
    4.4.5 存儲體衝突
    4.4.6 常量存儲器優化
    4.4.7 CUDA紋理存儲器優化
    4.4.8 寄存器及私有存儲器優化
    4.4.9 工作組數目及大小
    4.4.10 佔用率
    4.4.11 指令優化
    4.4.12 分支優化
    4.4.13 數據傳輸優化
  4.5 GPU與CPU精度差別
  4.6 矩陣轉置
    4.6.1 初次實現
    4.6.2 滿足合併訪問的實現
    4.6.3 沒有存儲體衝突的實現
  4.7 矩陣乘法
    4.7.1 初次實現
    4.7.2 矩陣分塊實現
  4.8 本章小結
第5章 OpenACC
  5.1 OpenACC編程模型
    5.1.1 執行模型
    5.1.2 存儲器模型
  5.2 編譯制導語句
    5.2.1 kernels構造
    5.2.2 parallel構造
    5.2.3 線程配置相關子句
    5.2.4 data構造
    5.2.5 loop構造
    5.2.6 atomic構造
    5.2.7 dtype子句
    5.2.8 reduction子句
    5.2.9 變量可見性子句

    5.2.10 if子句
    5.2.11 async和wait
  5.3 OpenACC和CUDA協作
    5.3.1 CUDA使用OpenACC生產的數據
    5.3.2 OpenACC使用CUDA生產的數據
  5.4 兩小時性能提升10倍
  5.5 本章小結
第6章 多核向量處理器架構及OpenCL程序映射
  6.1 多核向量處理器架構
    6.1.1 Intel Haswell CPU架構
    6.1.2 ARM A15多核向量處理器架構
    6.1.3 AMD GCN GPU架構
    6.1.4 NVIDIA Kepler和 Maxwell GPU架構
  6.2 OpenCL程序在多核向量處理器上的映射
    6.2.1 OpenCL程序在多核向量CPU上的映射
    6.2.2 OpenCL程序在NVIDIA GPU上的映射
    6.2.3 OpenCL程序在AMD GCN上的映射
  6.3 本章小結
第7章 利用多種技術優化圖像處理中的演算法性能
  7.1 圖像濾波
    7.1.1 均值濾波
    7.1.2 中值濾波
  7.2 圖像直方圖
    7.2.1 OpenMP實現
    7.2.2 CUDA實現
  7.3 曼德勃羅集
    7.3.1 串行演算法
    7.3.2 不適合進行向量化
    7.3.3 OpenMP實現
    7.3.4 CUDA實現
  7.4 本章小結
第8章 利用多種技術優化線性代數中的演算法性能
  8.1 兩向量距離
    8.1.1 串行代碼
    8.1.2 循環展開代碼
    8.1.3 AVX指令加速
    8.1.4 NEON實現
    8.1.5 CUDA實現
  8.2 稠密矩陣與向量乘法
    8.2.1 串行演算法
    8.2.2 AVX指令加速
    8.2.3 NEON實現
    8.2.4 CUDA實現
    8.2.5 OpenMP實現
  8.3 本章小結