科學計算與企業級應用的並行優化 科学计算与企业级应用的并行优化

劉文志

  • 出版商: 機械工業出版社
  • 出版日期: 2015-07-01
  • 售價: $294
  • 語言: 簡體中文
  • 頁數: 190
  • 裝訂: 平裝
  • ISBN: 7111506286
  • ISBN-13: 9787111506287

已絕版

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

相關主題

商品描述

本書系統、深入講解了科學計算及企業級應用的並行優化方法與最佳實踐。第1章介紹了常見的並行編程基於的多核/眾核向量處理器架構。第2章介紹瞭如何在X86、ARM和GPU上優化常見的線性代數運算。第3章介紹瞭如何在X86和GPU處理器上優化偏微分方程的求解。第4章介紹瞭如何在X86處理器和GPU上優化常見的分子動力學算法。第5章詳細介紹瞭如何在X86、ARM和GPU上優化常見的機器學習算法。

作者簡介

劉文志,花名風辰,畢業於中國科學院研究生院,聞名於並行計算江湖,尤善異構並行計算(X86、ARM、GPU、APU、PHI)和大規模集群計算相關技術,有7年相關經驗,涉及圖像處理、計算機視覺、數據挖掘和石油勘探。曾任英偉達並行計算工程師(協助建立英偉達北京CUDA團隊)、百度在線高級研發工程師(協助建立百度深度學習實驗室異構計算團隊)。
 

目錄大綱


前言
第1章多核向量處理器架構1 
1.1眾核系統結構2 
1.2眾核架構的一致性3 
1.3多核向量處理器架構5 
1.3.1 Intel Haswell CPU架構6 
1.3.2 ARM A15多核向量處理器架構10 
1.3.3 AMD GCN GPU架構12 
1.3.4 NVIDIA Kepler和Maxwell GPU架構15 
1.4 Intel MIC架構21 
1.4.1整體架構22 
1.4.2計算單元22 
1.4.3存儲器單元24 
1.4.4 MIC架構上一些容易成為瓶頸的設計25 
1.5 OpenCL程序在多核向量處理器上的映射26 
1.5.1 OpenCL程序在多核向量CPU上的映射26 
1.5.2 OpenCL程序在NVIDIA GPU上的映射28 
1.5.3 OpenCL程序在AMD GCN上的映射34 
1.6 OpenCL程序在各眾核硬件上執行的區別39 
1.7眾核編程模式42 
1.8眾核性能優化42 
1.9 MIC和GPU編程比較43 
1.10本章小結43 

第2章常見線性代數算法優化44
2.1稀疏矩陣與向量乘法44 
2.1.1稀疏矩陣的存儲格式45 
2.1.2 CSR格式稀疏矩陣與向量乘法46 
2.1.3 ELL格式稀疏矩陣與向量乘56 
2.2對稱矩陣與向量乘積58 
2.2.1串行代碼59 
2.2.2向量化對稱矩陣與向量乘積60 
2.2.3 OpenMP並行化60 
2.2.4 CUDA代碼60 
2.3三角線性方程組的解法63 
2.3.1串行算法64 
2.3.2串行算法優化65 
2.3 .3 AVX優化實現65 
2.3.4 NEON優化實現66 
2.3.5如何提高並行度67 
2.3.6 CUDA算法實現68 
2.4矩陣乘法71 
2.4.1 AVX指令計算矩陣乘法72 
2.4.2 NEON指令計算矩陣乘法75 
2.4.3 GPU計算矩陣乘法77 
2.5本章小結81 

第3章優化偏微分方程的數值解法82 
3.1熱傳遞問題83 
3.1.1 C代碼及性能84 
3.1.2 OpenMP代碼及性能85 
3.1.3 OpenACC代碼及性能87 
3.1.4 CUDA代碼88
3.2簡單三維Stencil 91 
3.2.1串行實現92 
3.2.2 Stencil在X86處理器上實現的困境93 
3.2.3 CUDA實現93 
3.3本章小結96 

第4章優化分子動力學算法97 
4.1簡單搜索的實現98 
4.1.1串行代碼99 
4.1.2向量化實現分析100 
4.1.3 OpenMP實現101 
4.1.4 CUDA實現102 
4.2范德華力計算104 
4.2.1串行實現104 
4.2.2向量化實現分析105 
4.2.3 OpenMP實現106 
4.2.4 CUDA實現106 
4.2.5如何提高緩存的利用108 
4.3鍵長伸縮力計算108 
4.3.1串行實現109 
4.3.2向量化實現111 
4.3.3 OpenMP實現111 
4.3.4 CUDA實現114 
4.4徑向分佈函數計算116 
4.4.1串行實現117 
4.4.2向量化實現118 
4.4.3 OpenMP實現118 
4.4.4 CUDA實現121 
4.5本章小結126

第5章機器學習算法127 
5.1 k—means算法128 
5.1.1計算流程128 
5.1.2計算元素所屬分類129 
5.1.3更新分類中心136 
5.1.4入口函數140 
5.2 KNN算法142 
5.2.1計算步驟142 
5.2.2相似度計算143 
5.2.3求前k個相似度最大元素144 
5.2.4統計所屬分類145 
5.3二維卷積146 
5.3.1 X86實現147 
5.3.2 ARM實現152 
5.3.3 CUDA實現155 
5.4四維卷積162 
5.4.1 X86實現163 
5.4.2 ARM實現169 
5.4.3 CUDA實現172 
5.5多GPU並行優化深度學習軟件Caffe 176 
5.5.1為什麼要使用多GPU並行Caffe 177 
5.5.2 AlexNet示例177 
5.5.3 Caffe的主要計算流程180 
5.5.4多GPU並行卷積神經網絡的方式185 
5.5.5多GPU並行Caffe實踐187
5.6 本章小結190