logo
分类于: 编程语言 计算机基础

简介

并行编程方法与优化实践

并行编程方法与优化实践 0.0分

资源最后更新于 2020-03-29 02:22:57

作者:刘文志

出版社:出版社机械工业出版社

出版日期:2015-06

ISBN:9787111501947

文件格式: pdf

标签: 计算机 编程 代码 并行编程

简介· · · · · ·

本书介绍了并行编程的方法和优化实践,主要结合X86SSE与AVX、ARMNeon、OpenMP、CUDA和OpenCL等讲解了并行编程的技术、方法和最佳实践。第1章讲解X86SSE与AVX的矩阵实现;第2章讲解如何利用ARMNeon进行编程;第3章介绍OpenMP并行程序设计;第4章讲解基于GPU的CUDA和OpenCL程序设计;第5章讲解OpenACC的应用;第6~8章讲解线性代数和图形学在并行编程中的实践与应用,并给出大量示例。《并行编程方法与优化实践》系刘志文编著。

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

  1. 前言
  2. 第1章 X86 SSE/AVX指令集
  3. 1.1 SSE内置函数
  4. 1.1.1 算术运算
  5. 1.1.2 逻辑运算
  6. 1.1.3 比较
  7. 1.1.4 加载和存储
  8. 1.2 AVX内置函数
  9. 1.2.1 算术运算
  10. 1.2.2 逻辑运算
  11. 1.2.3 比较
  12. 1.2.4 加载和存储
  13. 1.3 优化实例及分析
  14. 1.3.1 如何测得CPU的浮点峰值性能
  15. 1.3.2 积分计算圆周率π
  16. 1.3.3 稀疏矩阵向量乘法
  17. 1.3.4 二维单通道图像离散卷积
  18. 1.4 本章小结
  19. 第2章 ARM NEON SIMD指令优化
  20. 2.1 NEON指令集综述
  21. 2.2 ARM A15处理器性能
  22. 2.3 NEON支持的操作
  23. 2.3.1 基本算术运算
  24. 2.3.2 基本比较运算
  25. 2.3.3 基本数据类型转换及舍入运算
  26. 2.3.4 基本位运算
  27. 2.3.5 基本逻辑运算
  28. 2.3.6 基本设置加载存储操作
  29. 2.3.7 特殊操作
  30. 2.4 应用实例
  31. 2.4.1 彩色图像转灰度图像
  32. 2.4.2 矩阵转置
  33. 2.4.3 矩阵乘
  34. 2.5 本章小结
  35. 第3章 OpenMP程序设计
  36. 3.1 OpenMP编程模型
  37. 3.1.1 OpenMP执行模型
  38. 3.1.2 OpenMP存储器模型
  39. 3.2 环境变量
  40. 3.3 函数
  41. 3.3.1 普通函数
  42. 3.3.2 锁函数
  43. 3.4 OpenMP编译制导语句
  44. 3.4.1 常用的OpenMP构造
  45. 3.4.2 常用的OpenMP子句
  46. 3.5 OpenMP异构并行计算
  47. 3.6 OpenMP程序优化
  48. 3.6.1 OpenMP程序优化准则
  49. 3.6.2 OpenMP并行优化实例
  50. 3.7 本章小结
  51. 第4章 基于GPU的异构并行计算环境:CUDA与OpenCL
  52. 4.1 GPU计算概述
  53. 4.1.1 GPU计算历史
  54. 4.1.2 CUDA概述
  55. 4.1.3 OpenCL概述
  56. 4.2 异构并行计算模型
  57. 4.2.1 平台模型
  58. 4.2.2 执行模型
  59. 4.2.3 存储器模型
  60. 4.2.4 编程模型
  61. 4.3 C语言接口
  62. 4.3.1 OpenCL C语言
  63. 4.3.2 CUDA C语言
  64. 4.4 基于GPU的异构并行计算性能优化
  65. 4.4.1 总体优化准则
  66. 4.4.2 全局存储器优化
  67. 4.4.3 合并访问
  68. 4.4.4 局部存储器
  69. 4.4.5 存储体冲突
  70. 4.4.6 常量存储器优化
  71. 4.4.7 CUDA纹理存储器优化
  72. 4.4.8 寄存器及私有存储器优化
  73. 4.4.9 工作组数目及大小
  74. 4.4.10 占用率
  75. 4.4.11 指令优化
  76. 4.4.12 分支优化
  77. 4.4.13 数据传输优化
  78. 4.5 GPU与CPU精度差别
  79. 4.6 矩阵转置
  80. 4.6.1 初次实现
  81. 4.6.2 满足合并访问的实现
  82. 4.6.3 没有存储体冲突的实现
  83. 4.7 矩阵乘法
  84. 4.7.1 初次实现
  85. 4.7.2 矩阵分块实现
  86. 4.8 本章小结
  87. 第5章 OpenACC
  88. 5.1 OpenACC编程模型
  89. 5.1.1 执行模型
  90. 5.1.2 存储器模型
  91. 5.2 编译制导语句
  92. 5.2.1 kernels构造
  93. 5.2.2 parallel构造
  94. 5.2.3 线程配置相关子句
  95. 5.2.4 data构造
  96. 5.2.5 loop构造
  97. 5.2.6 atomic构造
  98. 5.2.7 dtype子句
  99. 5.2.8 reduction子句
  100. 5.2.9 变量可见性子句
  101. 5.2.10 if子句
  102. 5.2.11 async和wait
  103. 5.3 OpenACC和CUDA协作
  104. 5.3.1 CUDA使用OpenACC生产的数据
  105. 5.3.2 OpenACC使用CUDA生产的数据
  106. 5.4 两小时性能提升10倍
  107. 5.5 本章小结
  108. 第6章 多核向量处理器架构及OpenCL程序映射
  109. 6.1 多核向量处理器架构
  110. 6.1.1 Intel Haswell CPU架构
  111. 6.1.2 ARM A15多核向量处理器架构
  112. 6.1.3 AMD GCN GPU架构
  113. 6.1.4 NVIDIA Kepler和Maxwell GPU架构
  114. 6.2 OpenCL程序在多核向量处理器上的映射
  115. 6.2.1 OpenCL程序在多核向量CPU上的映射
  116. 6.2.2 OpenCL程序在NVIDIA GPU上的映射
  117. 6.2.3 OpenCL程序在AMD GCN上的映射
  118. 6.3 本章小结
  119. 第7章 利用多种技术优化图像处理中的算法性能
  120. 7.1 图像滤波
  121. 7.1.1 均值滤波
  122. 7.1.2 中值滤波
  123. 7.2 图像直方图
  124. 7.2.1 OpenMP实现
  125. 7.2.2 CUDA实现
  126. 7.3 曼德勃罗集
  127. 7.3.1 串行算法
  128. 7.3.2 不适合进行向量化
  129. 7.3.3 OpenMP实现
  130. 7.3.4 CUDA实现
  131. 7.4 本章小结
  132. 第8章 利用多种技术优化线性代数中的算法性能
  133. 8.1 两向量距离
  134. 8.1.1 串行代码
  135. 8.1.2 循环展开代码
  136. 8.1.3 AVX指令加速
  137. 8.1.4 NEON实现
  138. 8.1.5 CUDA实现
  139. 8.2 稠密矩阵与向量乘法
  140. 8.2.1 串行算法
  141. 8.2.2 AVX指令加速
  142. 8.2.3 NEON实现
  143. 8.2.4 CUDA实现
  144. 8.2.5 OpenMP实现
  145. 8.3 本章小结