高性能CUDA应用设计与开发

高性能CUDA应用设计与开发

(美) 罗布, 著

出版社:机械工业出版社

年代:2012

定价:49.0

书籍简介:

本书共分12章。第1~2章介绍了CUDA的基本概念、构建、调试CUDA应用所需要的工具,以及完整的机器学习与优化的通用框架。第3章介绍了高新能编程的性能分析技术——CUDA性能分析工具,以及两种数据挖掘技术。第4章主要介绍了CUDA执行模型。第5~6章讨论了CUDA提供的多种GPU内存优缺点,以及如何使应用高效利用内存的技术。第7章通过示例和对应的性能分析输出结果介绍了多GPU、异步核函数执行以及统一虚拟地址空间等GPU并行方式的应用。第8章讨论了多种CUDA后端设备,并给出可有效在异构多GPU环境中运行的示例以及响应的性能分析输出结果。第9章讨论CUDA如何显著地加速可视化与游戏应用。第10章介绍如何使用MPI提升应用的可伸缩性以及性能。第11章介绍了应用于不同技术的CUDA开源代码项目,其中包括支持向量机、多维尺度分析等。第12章介绍了基于第9章的框架,给出的一个用于视频识别的实时视频流处理示例。

书籍目录:

译者序序言前言第1章 CUDA入门与编程思想 1.1 源代码与维基 1.2 一个用以区别CUDA与传统程序开发的示例 1.3 选择合适的CUDA API 1.4 CUDA的一些基本概念 1.5 理解首个Runtime Kernel 1.6 GPGPU编程的三条法则  1.6.1 法则1:将数据放入并始终存储于GPU  1.6.2 法则2:交给GPGPU足够多的任务  1.6.3 法则3:注重GPGPU上的数据重用,以避免带宽限制 1.7 大O记号的思想与数据传输 1.8 CUDA和Amdahl定律 1.9 数据并行与任务并行 1.10 混合执行:同时使用CPU和GPU资源 1.11 回归测试与正确性 1.12 静默错误 1.13 调试简介 1.14 UNIX调试方法  1.14.1 NVIDIA cuda-gdb调试器  1.14.2 CUDA内存检查器  1.14.3 通过UNIX ddd界面使用cuda-gdb 1.15 使用Parallel Nsight进行Windows调试 1.16 本章小结第2章 CUDA在机器学习与优化中的应用 2.1 建模与模拟  2.1.1 拟合参数化模型  2.1.2 Nelder-Mead方法  2.1.3 Levenberg-Marquardt方法  2.1.4 算法加速 2.2 机器学习与神经网络 2.3 异或逻辑:一个重要的非线性机器学习问题  2.3.1 目标函数示例  2.3.2 针对多GPU设备、多CPU处理器的完整仿函数  2.3.3 完整Nelder-Mead优化代码的简要讨论 2.4 异或逻辑的性能结果 2.5 性能讨论 2.6 本章小结 2.7 C NELDER-MEAD代码模板第3章 CUDA工具套件:对PCA、NLPCA进行性能分析 3.1 PCA和NLPCA  3.1.1 自编码网络  3.1.2 用于PCA分析的仿函数示例  3.1.3 用于NLPCA分析的示例仿函数 3.2 获得基础性能分析数据 3.3 gprof:通用UNIX性能分析器 3.4 NVIDIA可视化性能分析器:computeprof 3.5 Microsoft Visual Studio中的Parallel Nsight  3.5.1 Nsight时间表分析  3.5.2 NVTX跟踪支持库  3.5.3 CUDA API的可扩展性表现 3.6 性能调节与分析实用工具(TAU) 3.7 本章小结第4章 CUDA执行模型 4.1 GPU架构综述  4.1.1 线程调度:通过执行配置统筹性能与并行度  4.1.2 computeprof中Warp相关值  4.1.3 Warp分歧  4.1.4 关于Warp分歧的若干准则  4.1.5 computeprof中Warp分歧相关值 4.2 Warp调度与TLP 4.3 ILP:高性能低占用率  4.3.1 ILP隐藏算术计算延迟  4.3.2 ILP隐藏数据延迟  4.3.3 ILP的未来  4.3.4 computeprof中指令速率相关值 4.4 Little法则 4.5 检测限制因素的CUDA工具  4.5.1 nvcc编译器  4.5.2 启动约束  4.5.3 反汇编器  4.5.4 PTX Kernel函数  4.5.5 GPU模拟器 4.6 本章小结第5章 CUDA存储器 5.1 CUDA存储器层次结构 5.2 GPU存储器 5.3 L2缓存 5.4 L1缓存 5.5 CUDA内存类型  5.5.1 寄存器  5.5.2 局域内存  5.5.3 和局域内存相关的computeprof性能分析参数  5.5.4 共享内存  5.5.5 和共享内存相关的computeprof性能分析参数  5.5.6 常量内存  5.5.7 纹理内存  5.5.8 和纹理内存相关的computeprof性能分析参数 5.6 全局内存  5.6.1 常见的整合内存示例  5.6.2 全局内存的申请  5.6.3 全局内存设计中的限制因素  5.6.4 和全局内存相关的computeprof性能分析参数 5.7 本章小结第6章 高效使用CUDA存储器 6.1 归约  6.1.1 归约模板  6.1.2 functionReduce.h的测试程序  6.1.3 测试结果 6.2 使用非规则数据结构 6.3 稀疏矩阵和CUSP支持库 6.4 图论算法 6.5 SoA、AoS以及其他数据结构 6.6 分片和分块 6.7 本章小结第7章 提高并行度的技巧 7.1 CUDA上下文环境对并行度的扩展 7.2 流与上下文环境  7.2.1 多GPU的使用  7.2.2 显式同步  7.2.3 隐式同步  7.2.4 统一虚拟地址空间  7.2.5 一个简单的示例  7.2.6 分析结果 7.3 使用多个流乱序执行  7.3.1 在同一GPU内并发执行Kernel函数的建议  7.3.2 隐式并行Kernel的原子操作 7.4 将数据捆绑计算  7.4.1 手动分割数据  7.4.2 映射内存  7.4.3 映射内存的工作机制 7.5 本章小结第8章 CUDA在所有GPU与CPU程序中的应用 8.1 从CUDA到多种硬件后端的途径  8.1.1 PGI CUDA x86编译器  8.1.2 PGI CUDA x86编译器  8.1.3 将x86处理器核心用作流多处理器  8.1.4 NVIDIA NVCC编译器  8.1.5 Ocelot  8.1.6 Swan  8.1.7 MCUDA 8.2 从其他语言访问CUDA  8.2.1 SWIG  8.2.2 Copperhead  8.2.3 EXCEL  8.2.4 MATLAB 8.3 支持库  8.3.1 CUBLAS  8.3.2 CUFFT  8.3.3 MAGMA  8.3.4 phiGEMM支持库  8.3.5 CURAND 8.4 本章小结第9章 CUDA与图形渲染混合编程 9.1 OpenGL  9.1.1 GLUT  9.1.2 通过OpenGL映射GPU内存  9.1.3 使用基元重启提升3D处理性能 9.2 框架内各文件的介绍  9.2.1 Kernel与Perlin Kernel演示的示例代码  9.2.2 simpleGLmain.cpp文件  9.2.3 simpleVBO.cpp文件  9.2.4 callbacksVBO.cpp文件 9.3 本章小结第10章 在云计算和集群环境中使用CUDA 10.1 消息传递接口  10.1.1 MPI编程模型  10.1.2 MPI通信器  10.1.3 MPI进程号  10.1.4 主从模式  10.1.5 点对点模式基础 10.2 MPI通信机制 10.3 带宽 10.4 平衡率 10.5 运行大型MPI程序需要考虑的因素  10.5.1 初始数据加载的可扩展性  10.5.2 使用MPI进行计算  10.5.3 可扩展性检查 10.6 云计算 10.7 代码示例  10.7.1 数据的产生  10.7.2 主体代码部分 10.8 本章小结第11章 CUDA在现实问题中的应用 11.1 高维数据的处理  11.1.1 PCA/NLPCA  11.1.2 多维尺度分析  11.1.3 K均值聚类算法  11.1.4 期望最大化  11.1.5 支持向量机  11.1.6 Bayesian网络  11.1.7 互信息 11.2 力导向图 11.3 Monte Carlo方法 11.4 分子建模 11.5 量子化学 11.6 交互式工作流 11.7 其他众多的项目 11.8 本章小结第12章 针对现场实况视频流的应用程序 12.1 机器视觉话题  12.1.1 3D效果  12.1.2 肤色区域分割  12.1.3 边缘检测 12.2 FFmpeg 12.3 TCP服务器 12.4 实况视频流应用程序  12.4.1 kernelWave():动画Kernel函数  12.4.2 kernelFlat():在平面渲染图像  12.4.3 kernelSkin():仅保留肤色区域  12.4.4 kernelSobel():Sobel边缘检测过滤器  12.4.5 launch_kernel()方法 12.5 simpleVBO.cpp文件 12.6 callbacksVBO.cpp文件 12.7 生成与执行代码 12.8 展望  12.8.1 机器学习  12.8.2 Connectome 12.9 本章小结 12.10 simpleVBO.cpp文件参考文献术语表

内容摘要:

  美国国家安全实验室资深专家撰写,硬件角度解读CUDA设计理念与体系结构,软件角度讲解CUDA应用开发思想、方法、技巧与准则。  本书是广受推崇的系统学习高性能CUDA应用开发与设计的经典著作,是美国国家安全实验室资深高性能编程专家多年工作经验结晶,橡树岭国家实验室资深专家鼎力推荐!本书不仅从硬件角度深入解读了CUDA的设计理念和GPGPU硬件的体系结构,而且从软件角度系统讲解了CUDA应用设计与开发的思想、方法、技巧、准则、注意事项和最佳实践。第1章首先介绍了CUDA的核心概念和编程思想,以及构建与调试CUDA应用所需的工具和方法,然后讲解了有效提高程序性能的CPU编程准则;第2章讲解了CUDA在机器学习与优化中的核心概念与应用,并给出了完整的通用框架;第3章介绍了CUDA的性能分析工具套件以及性能分析的方法,同时讨论了PCA和NLPCA两种数据挖掘方法;第4章讲解了CUDA的执行模型,深刻揭示了GPU的工作方式和原理;第5章介绍了CUDA提供的多种GPU内存,以及各种内存的优缺点;第6章讲解了高效利用内存的技术;第7章介绍了GPU提供的多种并行方式及其应用;第8章首先讨论了多种CUDA后端设备,以及CUDA如何与Python、Java、R等高级语言交互;第9章讲解了CUDA与图形渲染混合编程;第10章讲解了在云计算和集群环境中使用CUDA的方法和技术细节;第11章介绍了CUDA在高维数据处理、力导向图、交互式工作流、量子化学等现实问题中的应用;第12章为学习CUDA设计了一个综合性的针对实时视频流的应用案例。【作者简介】  RobFarber,资深高性能编程专家,是Irish高端计算中心和美国国家实验室等权威机构的高性能编程技术顾问,同时为多家《财富》世界500强企业提供咨询服务,经验十分丰富,在该领域颇具权威和影响力。他还是一位技术作家,任职于SantaFe学院,在《Dr. Dobb’s Journal》、《ScientificComputing》等媒体上发表了多篇关于高性能编程的经典技术文章,深受读者喜爱。此外,他还是《财富》排名前100名的两家公司的合伙创始人。

书籍规格:

书籍详细信息
书名高性能CUDA应用设计与开发站内查询相似图书
丛书名华章程序员书库
9787111404460
如需购买下载《高性能CUDA应用设计与开发》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位机械工业出版社
版次1版印次1
定价(元)49.0语种简体中文
尺寸24 × 19装帧平装
页数 315 印数

书籍信息归属:

高性能CUDA应用设计与开发是机械工业出版社于2013.1出版的中图分类号为 TP391.41 的主题关于 计算机图形学 的书籍。