当前位置:主页 > 计算机电子书 > 程序设计 > GPU编程下载
GPU编程与优化:大众高性能计算

GPU编程与优化:大众高性能计算 PDF 超清中文版

  • 更新:2024-04-01
  • 大小:78 MB
  • 类别:GPU编程
  • 作者:方民权
  • 出版:清华大学出版社
  • 格式:PDF

  • 资源介绍
  • 学习心得
  • 相关内容

GPU编程与优化:大众高性能计算》是一本很好的书籍,它主要涵盖了GPU编程、GPU优化和高性能计算的内容,本书第一篇系统地介绍了GPU编程的相关知识,帮助读者快速入门,并构建了一个完整的GPU知识体系,这本书具有一定的参考价值,无论是对于初学者还是对于已经了解GPU编程的人来说,都可以从中获得实用的经验和技巧,如果你对GPU编程、GPU优化和高性能计算有兴趣,那么这本书绝对值得一读。

GPU编程与优化电子书封面

读者评价

对于学习GPU编程的同学来说,是一本不错的书。

GPU并行处理的好书,建议买本做参考

系统全面的GPU知识体系,实践引导的有效优化方法,切中要害的性能影响因素,通俗翔实的异构协同并行,循序渐进的优化实例解析,精炼真实的GPU性能测评

内容介绍

本书第一篇系统地介绍GPU编程的相关知识,帮助读者快速入门,并构建GPU知识体系;第二篇和第三篇给出大量实例,对每个实例进行循序渐进的并行和优化实践,为读者提供GPU编程和优化参考;第四篇总结影响GPU性能的关键要素(执行核心和存储体系),量化测评GPU的核心性能参数,给出CPU/GPU异构系统上覆盖完全的各种混合并行模式及其实践,帮助读者真正透彻理解GPU。

本书适合作为计算机及相关专业的教材,也可作为GPU程序开发人员和科研人员的参考书。本书封面贴有清华大学出版社防伪标签,无标签者不得销售。

目录

  • 第一篇理论篇
  • 第1章高性能计算概述3
  • 第2章GPU概述10
  • 第3章GPU硬件架构17
  • GPU编程与优化——大众高性能计算目录第4章GPU软件体系33
  • 第5章CUDA C编程41
  • 第二篇入门篇
  • 第6章向量加法67
  • 第7章归约: 向量内积76
  • 第8章矩阵乘法95
  • 第9章矩阵转置116
  • 第三篇提高篇
  • 第10章卷积129
  • 第11章曼德博罗特集148
  • 第12章扫描: 前缀求和163
  • 第14章几种简单图像处理211
  • 第四篇核心篇
  • 第15章GPU执行核心237
  • 第16章GPU存储体系254
  • 第17章GPU关键性能测评284
  • 第18章CPUs和GPUs协同299
  • 附录
  • 附录A判断法1D卷积代码333
  • 附录B曼德博罗特集的系列优化代码340
  • 附录C几种图像处理完整源码357
  • 附录Dnvprof帮助菜单383
  • 附录ENVCC帮助菜单388
  • 附录F几种排序算法源代码399
  • 参考文献417

资源获取

资源地址1:https://pan.quark.cn/s/ffc2aee375a1

网友留言

网友NO.28832
蓬志新

按照开始流程的先后顺序,CUDA程序的编写与GPU优化需要解决以下问题: 1)确定任务中的串行部分和并行部分,选择合适的算法。 2)按照算法确定数据和任务的划分方式,将每个需要并行实现的步骤映射为一个满足CUDA两层并行模型的内核函数。 3)编写一个能够正确运行的程序,作为优化的起点。程序为了保证结果正确,在必要的时候必须使用memory fence、同步、原子操作等功能。 4)优化显存访问,避免显存带宽成为瓶颈。 5)优化指令流。由于编译器会进行一些优化,而编译过程基本无法控制,所以指令流优化不一定能获得立竿见影的效果。 6)资源均衡。调整shared memroy和register的使用量。 7)与主机通信优化。由于PCI-E带宽相对较小,应该尽量减少CPU与GPU间传输的数据量,并通过一些手段提高可用带宽。 总之,这是一个相当复杂的过程,需要有很强专业性知识的人或技术员,才可以操作的。

网友NO.49419
寇烨然

GPU的瓶颈 其实仔细分析我们就可以发现,影响的GPU性能的无非就是2大方面,一方面是顶点数量过多,像素计算过于复杂。另一方面就是GPU的显存带宽。那么针锋相对的两方面举措也就十分明显了。 减少顶点数量,简化计算复杂度。 压缩图片,以适应显存带宽。 减少绘制的数目 那么第一个方面的优化也就是减少顶点数量,简化复杂度,具体的举措就总结如下了: 保持材质的数目尽可能少。这使得Unity更容易进行批处理。 使用纹理图集(一张大贴图里包含了很多子贴图)来代替一系列单独的小贴图。它们可以更快地被加载,具有很少的状态转换,而且批处理更友好。 如果使用了纹理图集和共享材质,使用Renderer.sharedMaterial 来代替Renderer.material 。 使用光照纹理(lightmap)而非实时灯光。 使用LOD,好处就是对那些离得远,看不清的物体的细节可以忽略。 遮挡剔除(Occlusion culling) 使用mobile版的shader。因为简单。 优化显存带宽 第二个方向呢?压缩图片,减小显存带宽的压力。 OpenGL ES 2.0使用ETC1格式压缩等等,在打包设置那里都有。 MipMap Mipmap中,每一个层级的小图都是主图的一个特定比例的缩小细节的复制品。因为存了主图和它的那些缩小的复制品,所以内存占用会比之前大。但是为何又优化了显存带宽呢?因为可以根据实际情况,选择适合的小图来渲染。所以,虽然会消耗一些内存,但是为了图片渲染的质量(比压缩要好),这种方式也是推荐的。