并行编程方法与优化实践

并行编程方法与优化实践

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

本书关注C程序设计语言的向量化和并行化扩展,以及算法到硬件的映射。

内容简介

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

作者简介

作者刘文志,花名风辰,毕业于科学院研究生院,闻名于并行计算江湖,尤善异构并行计算(X86、ARM、GPU、APU、PHI)和大规模集群计算相关技术,有7年相关经验,涉及图像处理、计算机视觉、数据挖掘和石油勘探。曾任英伟达并行计算工程师(协助建立英伟达北京CUDA团队)、百度在线高级研发工程师(协助建立百度深度学习实验室异构计算团队)。

章节目录

版权信息

前言

第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 本章小结

并行编程方法与优化实践是2015年由机械工业出版社华章分社出版,作者刘文志。

得书感谢您对《并行编程方法与优化实践》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
现代医院管理——理论、方法与实践 电子书
本书将理论与实践相结合,强调理论性、指导性、操作性的统一。
供应链突发事件协调优化理论与方法 电子书
王传涛、李宝文所著的《供应链突发事件协调优化理论与方法》紧扣供应链领域发展前沿,研究供应链突发事件的协调优化问题。本书内容分为8章,第1章为绪论,对本书的研究背景、国内外研究现状、研究思路和内容进行了介绍和评述。第2章对供应链突发事件的机理进行了分析。第3章和第4章分别研究了确定型需求扰动信息对称和不对称下供应链的协调优化问题。第5章研究了随机型需求扰动下供应链的协调优化问题。第6章和第7章分别研
ARM64体系结构编程与实践 电子书
1.内容系统,突出动手实践基于树莓派4B开发板,系统介绍ARM64体系结构,内容由浅入深,帮助读者开发运行小型的OS2.以问题为导向,提高学习效率深入浅出的问题导向式学习方法,各大公司高频面试题,提高读者阅读兴趣3.趣味案例,常见陷阱总结基于树莓派4B开发板和QEMU实验平台,总结了众多一线工程师在实际项目中遇到的陷阱与经验,让你不再害怕踩雷4.海量资源随书赠送本书赠送配套VMware开发环境,Linux软件包,QEMU+ARM64实验平台仓库,芯片资料,实验参考代码和配套资料以及配套教学视频供读者参考学习
经方实践方法 电子书
本书著者为我国著名中医临床专家陈瑞春先生、朱进忠先生弟子,在长期的临床实践中,精研典籍,推求师意,于经方体会尤深。本书总结了著者关于桂枝汤、当归四逆汤、麻黄汤、小青龙汤等30余首《伤寒》《金匮》方的应用经验,探讨了六经辨证实践方法,并对方证难点疑点予以分析,系点滴思考日积月累而成,对中医临床工作者有一定的参考价值。
医药市场营销:理论、方法与实践 电子书
内容提要本书以医药市场营销组合策略为编写主线,从营销管理角度分析、阐述医药市场营销的理论与实务。内容包括:医药市场营销概述、医药市场营销环境分析、医药市场顾客购买行为分析、医药市场营销战略制定与选择、医药市场调研与预测、医药营销产品策略、医药营销价格策略、医药营销促销策略、医药营销渠道策略、医药国际市场营销和医药市场营销新发展。本书适宜作为高等院校本、专科及各类成人高等教育医药市场营销学课程的授课