OpenCL异构并行编程实战

OpenCL异构并行编程实战 下载 mobi epub pdf 电子书 2024


简体网页||繁体网页
[美] 雷蒙德·泰(Raymond Tay) 著,张立浩 译



点击这里下载
    


想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

发表于2024-12-22

类似图书 点击查看全场最低价

图书介绍

出版社: 机械工业出版社
ISBN:9787111515616
版次:1
商品编码:11797528
品牌:机工出版
包装:平装
丛书名: 高性能计算技术丛书
开本:16开
出版时间:2015-10-01
用纸:胶版纸
页数:230


相关图书





图书描述

编辑推荐

  

  资深软件开发人员撰写,浓缩作者多年的OpenCL使用经验和异构编程心得,系统讲述OpenCL的核心概念、技术及实用技巧

  从软件开发人员的角度,深入剖析OpenCL异构并行编程技术,通过50多个OpenCL技巧案例及大量示例代码,加速掌握异构并行编程技术并理解高性能计算

  OpenCL是一个免版税的标准,适用于对个人计算机、服务器、手机和嵌入式设备中的现代处理器进行跨平台的并行编程。

  本书可大致划分为两部分,第一部分介绍OpenCL并行开发的基础知识,第二部分则给出各种算法。每一部分都包含许多代码示例和图解,以便演示各种概念。通过阅读本书,你将学到:

  OpenCL的使用方式

  OpenCL中的数据划分和传送

  OpenCL数据类型

  OpenCL的各种函数,包括数学、原子、线程模型、数据传送等

  在OpenCL中开发直方图

  在OpenCL中开发索贝尔边缘检测滤波器

  在OpenCL中实现矩阵乘法和稀疏矩阵向量乘法

  在OpenCL中实现双调排序和基数排序

  并行编程的相关知识

内容简介

  

  资深软件开发人员撰写,从软件开发者的角度,深入剖析OpenCL异构并行编程技术,系统讲述OpenCL的核心概念、技术及实用技巧,融合作者多年OpenCL使用经验和异构编程心得,包含大量示例代码,有助于软件开发人员快速掌握异构并行编程技术并理解高性能计算。

  本书共10章,第1章介绍使用OpenCL的目的,并概述OpenCL的核心概念;第2章讨论OpenCL中的缓冲区对象以及划分数据的策略;第3章解释OpenCL提供的两种常规数据类型,以及如何使用这些数据类型解决不同的问题;第4章讨论OpenCL提供的各种函数,以及如何使用对应的向量化函数加快执行速度;第5章给出典型OpenCL开发的生命周期及一些数据划分策略;第6章讨论如何开发索贝尔边缘检测滤波器;第7章讲述如何使用OpenCL实现矩阵乘法;第8章讨论如何在OpenCL中实现稀疏矩阵向量乘法;第9章介绍如何使用OpenCL开发双调排序;第10章介绍使用OpenCL开发基数排序。

作者简介

  Raymond Tay,资深软件开发者,拥有非常丰富的软件开发经验,精通Scala、Haskell、C和C++等编程语言。Raymond于2008年开始接触GPGPU技术,最初使用的是NVIDIA提供的CUDA工具箱和AMD提供的OpenCL工具箱,然后使用的是Intel工具箱。他参与了多个使用CUDA和OpenCL中所提供GPGPU技术与技巧的项目,同时对云计算中的函数编程范例和相关应用充满热情,并研究通过使用GPGPU技术和函数编程范例加速云中应用程序的各种途径。

目录

作者简介
审校者简介
前言
第1章 使用OpenCL 1
1.1 引言 1
1.2 查询OpenCL平台 7
1.3 查询平台上的OpenCL设备 10
1.4 查询OpenCL设备扩展 14
1.5 查询OpenCL上下文 16
1.6 查询OpenCL程序 20
1.7 创建OpenCL内核 25
1.8 创建命令队列以及对OpenCL内核排队 28
第2章 理解OpenCL数据传送与划分 32
2.1 引言 32
2.2 创建OpenCL缓冲对象 33
2.3 检索关于OpenCL缓冲对象的信息 39
2.4 创建OpenCL子缓冲对象 41
2.5 检索关于OpenCL子缓冲对象的信息 45
2.6 理解事件和事件同步 47
2.7 在存储对象之间复制数据 50
2.8 使用工作项划分数据 55
第3章 理解OpenCL数据类型 62
3.1 引言 62
3.2 初始化OpenCL标量数据类型 63
3.3 初始化OpenCL向量数据类型 65
3.4 使用OpenCL标量类型 67
3.5 理解OpenCL向量类型 69
3.6 向量和标量地址空间 80
3.7 配置OpenCL项目以启用double数据类型 83
第4章 使用OpenCL函数 87
4.1 引言 87
4.2 将向量存储到数组中 88
4.3 从数组加载向量 91
4.4 使用几何函数 94
4.5 使用整型函数 97
4.6 使用浮点函数 99
4.7 使用三角函数 101
4.8 OpenCL中的算术和舍入 104
4.9 使用OpenCL中的shuffle函数 107
4.10 使用OpenCL中的select函数 109
第5章 开发直方图OpenCL程序 112
5.1 引言 112
5.2 在C/C++中实现直方图 112
5.3 直方图的OpenCL实现 115
5.4 工作项同步 124
第6章 开发索贝尔边缘检测滤波器 126
6.1 引言 126
6.2 理解卷积理论 127
6.3 理解一维卷积 128
6.4 理解二维卷积 130
6.5 索贝尔边缘滤波器的OpenCL实现 132
6.6 理解OpenCL中的剖析 137
第7章 使用OpenCL实现矩阵乘法 140
7.1 引言 140
7.2 理解矩阵乘法 141
7.3 矩阵乘法的OpenCL实现 144
7.4 通过线程粗化获得矩阵乘法的更快速OpenCL实现 147
7.5 通过寄存器分块获得矩阵乘法的更快速OpenCL实现 150
7.6 通过矩阵乘法中的共享内存数据预取减少全局内存 152
第8章 在OpenCL中实现稀疏矩阵向量乘法 157
8.1 引言 157
8.2 使用共轭梯度方法对SpMV求解 158
8.3 理解各种SpMV数据存储格式,包括ELLPACK、ELLPACK-R、COO和CSR 162
8.4 理解如何使用ELLPACK-R格式解决SpMV问题 166
8.5 理解如何使用CSR格式解决SpMV问题 168
8.6 理解如何使用VexCL格式解决SpMV问题 176
第9章 使用OpenCL实现双调排序 179
9.1 引言 179
9.2 了解排序网络 180
9.3 了解双调排序 182
9.4 在OpenCL中开发双调排序 187
第10章 使用OpenCL实现基数排序 196
10.1 引言 196
10.2 了解基数排序 196
10.3 了解MSD和LSD基数排序 198
10.4 了解归约 200
10.5 在OpenCL中开发基数排序 207

前言/序言

  欢迎阅读本书。本书并不是浅尝辄止式的入门书籍,而是由开发人员编写且面向开发人员的专业图书。有些读者可能会对本书感到熟悉,而另一些读者则会感到陌生。本书浓缩了我使用OpenCL的经验,但更重要的是对异构计算环境进行编程的心得。我希望与读者分享我所掌握的知识,并且决定采取按照主题分类问题的组织方式。我力求让这些主题保持简洁,但不得不承认,其中一些主题有点长。这样做的原因在于选择的问题多种多样,而向读者展现这些问题是因为本书中的章节描述如何将相关技术应用于当前或未来的工作。本书有望成为一份有用的参考手册,随时供你查阅。我无疑希望这些问题的解决方案可以像帮助我一样协助你。
  本书从软件开发人员的角度进行编写,面向不仅希望知道如何以并行方式编程,还希望了解如何以并行方式思考的那些读者。依我看,后者比前者更为重要,但两者隔离都不能解决任何问题。本书通过代码加强读者对每个概念的理解,并通过介绍更多主题对这些概念进行扩展。
  本书的组织形式可以帮助你熟悉OpenCL的核心概念,从而轻松进入OpenCL领域。然后,我们会深入讨论这些概念,具体方式是将新获得的知识应用于各个主题以及在工作中会遇到的一般性并行计算问题。
  为最有效地利用本书,强烈建议读者是软件开发人员或嵌入式软件开发人员,并且有兴趣了解并行软件开发,但并不真正知道从何处及如何开始学习。理想情况下,你应该了解一些C或C++知识(可以选择C,因为它相对简单),并且熟悉使用跨平台的生成系统,如Linux环境中的CMake。CMake的优点是它允许为熟悉使用Microsoft Visual Studio、Apple XCode或其他一些集成开发环境的开发人员建立生成环境。必须承认,本书中的示例没有使用这些工具。
  本书内容
  第1章通过介绍使用OpenCL的目的和动机来为后续内容做好铺垫。在相应主题中概述了核心概念,这些主题涉及设备的内在本质和它们之间的交互;此外也通过真正可正常运行的代码介绍这些概念。读者将了解相关上下文和设备,以及如何创建在这些设备上运行的代码。
  第2章讨论OpenCL中的缓冲区对象以及划分数据的策略。随后,读者将学习工作项的定义以及如何利用OpenCL抽象化实现数据划分。
  第3章解释OpenCL提供的两种常规数据类型,即标量和向量数据类型,介绍如何使用这些数据类型解决不同的问题,以及OpenCL如何抽象化处理器中的原生向量架构。该章也会展示如何通过OpenCL产生可编程的向量。
  第4章讨论OpenCL为解决日常问题而提供的各种函数,例如几何、置换和三角函数。该章还介绍如何使用对应的向量化函数加快执行速度。
  第5章给出典型OpenCL开发的生命周期。该章也讨论一些数据划分策略,这些策略依赖于对所讨论算法的认知程度。读者会在不经意间发现,并非所有算法或问题都需要相同的处理方式。
  第6章将指导你使用索贝尔的方法构建边缘检测滤波器。同时还会介绍一些数学概念,包括一维和二维中的卷积理论以及相应的代码。最后,该章介绍如何在OpenCL中进行性能分析及其在本主题中的应用。
  第7章通过研究矩阵乘法的并行化形式以及应用从串行到并行的转换来讨论矩阵乘法的并行化。然后,该章将通过讨论如何增加计算吞吐量和提升缓存利用率来优化矩阵乘法。
  第8章讨论并行计算的环境以及用于解决该问题的传统方法,即通过充分的数学计算实现共轭梯度。一旦读者对共轭梯度有直观了解,该章将介绍稀疏矩阵的各种存储格式如何影响并行计算,然后具体讨论ELLPACK、ELLPACK-R、COO和CSR格式。
  第9章介绍各种排序算法,其中重点讨论并行排序网络,也称为双调排序。就像在其他所有章节中所做的那样,该章完成相关主题的讨论,具体包括给出相应理论及其串行实现,通过转换实现并行化,然后开发最终的并行版本。
  第10章介绍基于排序算法(如快速排序)的非比较形式的经典示例,在这些示例中,此类算法更适合GPU架构。该章也会介绍另一种核心并行化编程技术,称为归约,帮助读者直观了解归约如何有助于基数排序更好地执行。基数排序的相关主题也演示了多种内核编程,突出介绍了它们的优缺点。
  学习本书的具体要求
  读者需要能够在Linux环境下轻松工作,因为本书中的示例是针对Ubuntu 12.10 64位操作系统进行测试的。下面是相关要求:
  GNU GCC C/C++编译器版本4.6.1(最低版本要求)
  AMD、Intel和NVIDIA提供的OpenCL 1.2 SDK
  AMD APP SDK版本2.8,带有AMD Catalyst Linux显卡驱动程序版本13.4
  Intel OpenCL SDK 2012
  CMake版本2.8(最低版本要求)
  Clang版本3.1(最低版本要求)
  Microsoft Visual C++ 2010(如果你在Windows上工作)
  Boost Library版本1.53
  VexCL(由Denis Demidov提供)
  AMD提供的CodeXL Profiler(可选)
  保证每天8小时睡眠
  开放的思想和虚心的态度
  一杯特浓咖啡或其他提神的饮料
  本书读者对象
  本书面向特定的软件开发人员,这些开发人员希望了解可以用他们新购买的CPU或GPU做些什么,他们购买这些硬件的目的并不是用来玩计算机游戏。话虽如此,本书并不打算介绍仅可运行在家庭工作站上的算法。本书非常适合于有C/C++实操经验的开发人员,以及希望学习如何使用OpenCL编写在异构计算环境中执行的并行程序的开发人员。



alt="" />


OpenCL异构并行编程实战 下载 mobi epub pdf txt 电子书 格式

OpenCL异构并行编程实战 mobi 下载 pdf 下载 pub 下载 txt 电子书 下载 2024

OpenCL异构并行编程实战 下载 mobi pdf epub txt 电子书 格式 2024

OpenCL异构并行编程实战 下载 mobi epub pdf 电子书
想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

用户评价

评分

评分

书一般,比较笼统...

评分

商品很赞,京东物流给力!

评分

一直想深入学习并发编程, 在CUDA框架下学了些, 但太局限, OPENCL算是一个通用的框架, 移植性很高, 必须好好学习!

评分

在看,还挺不错的,有需要再来

评分

.........................

评分

书写得很好,值得好好读。

评分

商品很赞,京东物流给力!

评分

讲得十分清楚,不过感觉更适合于对OpenCL有初步了解的

类似图书 点击查看全场最低价

OpenCL异构并行编程实战 mobi epub pdf txt 电子书 格式下载 2024


分享链接








相关图书


本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

友情链接

© 2024 book.qciss.net All Rights Reserved. 图书大百科 版权所有