作品简介

本系列包括3本书,本书是此系列的第三本。本书重点介绍如何利用目前主流的C语言的各种特定硬件或平台的向量化扩展、并行化库,来设计性能优良的向量化和并行代码。而本系列的第一本《并行算法设计与代码优化》关注并行优化和并行计算相关的理论、算法设计及高层次的实践经验;本系列第二本《并行编程方法与优化实践》关注C程序设计语言的向量化和并行化扩展及算法到硬件的映射;本书则关注如何将线性代数、偏微分方程求解、分子动力学和机器学习领域的常见算法优良地实现出来。本书不但包括如何使用SSE/AVX向量化扩展、OpenMP编译制导语句来优化运行在X86多核处理器上的代码性能,还包括使用NEON向量化扩展、OpenMP编译制导语句优化运行在移动处理器(ARM)的代码性能,以及使用CUDA和OpenCL优化运行在图形处理器(GPU)的代码性能。笔者希望通过这种方式能够让阅读本书的软件开发人员了解和掌握如何将常见算法映射到具体硬件上以获得高性能,以及如何依据硬件和算法的特点进行代码性能优化。

刘文志著

作品目录

  • 科学计算与企业级应用的并行优化
  • 前言
  • IT行业急需这本书
  • 读者对象
  • 如何阅读本书
  • 勘误和支持
  • 致谢
  • 第1章 多核向量处理器架构
  • 1.1 众核系统结构
  • 1.2 众核架构的一致性
  • 1.3 多核向量处理器架构
  • 1.4 Intel MIC架构
  • 1.5 OpenCL程序在多核向量处理器上的映射
  • 1.6 OpenCL程序在各众核硬件上执行的区别
  • 1.7 众核编程模式
  • 1.8 众核性能优化
  • 1.9 MIC和GPU编程比较
  • 1.10 本章小结
  • 第2章 常见线性代数算法优化
  • 2.1 稀疏矩阵与向量乘法
  • 2.2 对称矩阵与向量乘积
  • 2.3 三角线性方程组的解法
  • 2.4 矩阵乘法
  • 2.5 本章小结
  • 第3章 优化偏微分方程的数值解法
  • 3.1 热传递问题
  • 3.2 简单三维Stencil
  • 3.3 本章小结
  • 第4章 优化分子动力学算法
  • 4.1 简单搜索的实现
  • 4.2 范德华力计算
  • 4.3 键长伸缩力计算
  • 4.4 径向分布函数计算
  • 4.5 本章小结
  • 第5章 机器学习算法
  • 5.1 k-means算法
  • 5.2 KNN算法
  • 5.3 二维卷积
  • 5.4 四维卷积
  • 5.5 多GPU并行优化深度学习软件Caffe
  • 5.6 本章小结
展开全部