您好,欢迎光临有路网!
高性能CUDA应用设计与开发:方法与最佳实践
QQ咨询:
有路璐璐:

高性能CUDA应用设计与开发:方法与最佳实践

  • 作者:(美)罗布 于玉龙 唐堃
  • 出版社:机械工业出版社
  • ISBN:9787111404460
  • 出版日期:2013年01月01日
  • 页数:271
  • 定价:¥59.00
  • 分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    本书是广受推崇的系统学习高性能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章讲解了
    文章节选
    第1章 CUDA入门与编程思想
    本章的目的是介绍CUDA(由NVIDIA开发并行计算架构)以及CUDA与常规的单核、多核编程之间的区别。通过示例程序和用法说明,学习如何编译并运行CUDA程序,以及如何根据需要来改写这些程序。本章使用并讨论了CUDA Thrust和CUDA Runtime两种API(应用开发接口),同时还介绍了GPGPU开发中的三条准则,以及Amdahl定律、大O记号、数据并行与任务并行的区别等内容。此外,本章也介绍了基本的GPU调试工具,在大多数情况下CUDA代码的调试工作和其他常规C或C++程序的调试是一致的。为了帮助初学者更好地掌握本章内容,本章在适当的位置提供了额外入门参考资料。读完本章后,读者将能够在单一程序中并发利用GPGPU和CPU处理器,编写和调试能执行上百万线程的大规模并行程序。
    通过对本章的学习,读者能理解如下基本内容:
    编写、编译并运行CUDA应用程序的方法。
    选用合适的CUDA API的准则。
    Amdahl定律及其与GPU计算的关系。
    高性能GPU计算的三条准则。
    大O记号,以及数据传输的影响。
    任务并行与数据并行的区别。
    各CUDA调试工具在Linux、Mac、Windows中针对GPU的特有功能。
    CUDA内存检查器(CUDA memory checker)及其寻找越界和数据未对齐等内存错误的方法。 ……
    目录
    译者序
    序言
    前言
    第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应用开发思想、方法、技巧与准则。

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外