前言VI 问题,因此同一个团队中每个学生的成绩也不相同。专题研讨会为学生提供了很好的制作 简洁的演示文稿的机会,简洁的演示文稿能激发其他人阅读整篇文档。演讲结束后,学生 要提交一份最终项目的完整报告。 在线补充 如果教师用本书作为课程的教材,就可以使用我们的实验安排、最终项目指南和示例 项目说明。虽然本书提供了这些课程的知识性内容,但要想实现全部教学目标还应该查阅 其他资料。我们也想邀请大家充分利用与本书相关的在线资料,这些资料可以在ELSEVIER 出版社的网站www.elsevierdirect.com/9780123814722上下载。 最后,我们鼓励读者提交反馈意见。如果读者有关于改进本书的任何想法或者对在线 资料的补充,我们想听听读者的想法。当然,我们也想知道读者喜欢本书的哪一方面。 David B.Kirk Wen-mei W.Hwu
目 录 第1章引言…… 1.1GPU与并行计算机… …2 1.2现代GPU的体系结构 …7 13为什么需要更高的速度和并行化…8 1.4并行编程语言与模型… …11 1.5综合目标… …12 1.6本书的组织结构… …13 第2章GPU计算的发展历程… …17 2.1图形流水线的发展… …18 2.1.1固定功能的图形流水线时代… 18 21.2可编程实时图形流水线的发展… …21 213图形与计算结合的处理器… …23 2.1.4GPU:一个中间步骤… …25 2.2GPU计算… …26 2.2.1可扩展的GPU… …27 2.2.2发展近况… …27 2.3未来发展趋势… …28 第3章CUDA简介… …31 3.1 数据并行性… …32 3.2CUDA的程序结构… …33 3.3 矩阵乘法示例… …34 3.4设备存储器与数据传输… …37 3.5 kernel函数与线程… …41 3.6小结… …45 3.6.1函数声明… …45 3.6.2启动kernel函数… …46 3.6.3预定义变量… …46
X大规模并行处理器编程实战 3.6.4运行时AP… …46 第4章 CUDA线程… 49 4.1CUDA线程组织结构 50 4.2使用blockIdx和threadIdx… …54 4.3同步与透明可扩展性… …58 4.4线程分配… 59 4.5线程调度和容许延时… …60 4.6小结… 62 4.7习题… …63 第5章 CUDA存储器模型… 65 5.1存储器访问效率的重要性… …66 5.2CUDA设备存储器的类型… …67 5.3减少全局存储器流量的策略… …70 5.4存储器 一限制并行性的一个因素 …76 5.5小结… …77 5.6习题 …78 第6章性能优化… …79 6.1更多关于线程执行的问题… …80 6.2全局存储器的带宽… …86 6.3SM资源的动态划分… …93 6.4数据预取… …95 6.5 指令混合… …97 6.6线程粒度 …98 6.7可度量的性能和小结 …99 6.8习题… …100 第7章浮点运算… 105 7.1浮点格式… …106 7.1.1M的规范化表示… 106 7.1.2E的余码表示… …107 7.2能表示的数 …109 7.3特殊的位模式与精度 …113
录XⅪ 7.4算术运算的准确度和舍入… …114 7.5 算法的优化 …114 7.6小结… …115 7.7习题…116 第8章 应用案例研究:高级MRI重构 …117 8.1 应用背景 …118 8.2 迭代重构… …120 8.3 计算F …123 8.4最终评估 …139 8.5习题 …142 第9章应用案例研究:分子可视化和分析 …143 9.1应用背景… …144 9.2 kernel函数简单的实现方案 …145 9.3指令执行效率 …149 9.4存储器合并 …151 9.5 附加性能比较… …154 9.6采用多GPU …156 9.7习题 …157 第10章并行编程和计算思想 …159 10.1并行编程的目标 …160 10.2问题分解… …161 10.3 算法选择 …163 10.4计算思想 …168 10.5习题… …169 第11章 OpenCL简介… 171 11.1背景… …172 11.2数据并行性模型… …173 113设备的体系结构… …175 1l.4 kernel函数 …176 1l.5设备管理和启动kernel-… …177 11.60 penCL中的静电势图谱…179
‖大规模并行处理器编程实战 11.7小结 …183 11.8习题… …184 第12章结论与展望… …185 12.1重申月标… …186 12.2存储器体系结构的演变 …187 12.2.1大型虚拟和物理地址空间… 187 12.22统一的设备存储空间… …188 12.2.3可配置的缓存和暂时存储器… …188 12.2.4提高原子操作的速度… …189 12.2.5提高全局存储器的访问速度… …189 12.3 kernel函数执行控制过程的演变 …190 12.3.1 kernel函数内部的函数调用… …190 12.3.2 kernel函数中的异常处理… …190 12.3.3多个kernel函数的同步执行… …191 12.3.4可中断的kernel函数… …191 12.4内核的性能… …………191 12.4.1双精度的速度… … 191 12.4.2提高控制流的效率… …192 12.5编程环境… …192 12.6美好前景… …193 附录A矩阵乘法主机版的源代码… 195 附录BGPU的计算能力… 207