为你推荐
内容简介
第1章 MXMACA编程简介
1.1 本书写给谁
1.2 学习MXMACA编程的基础
1.3 本书结构
1.4 相关的背景知识
1.4.1 计算机体系结构和摩尔定律
1.4.2 摩尔定律碰到了三堵墙
1.4.3 并行计算
1.4.4 计算平台的分类
1.4.5 GPU和CPU体系结构对比
1.4.6 GPU异构编程
第2章 MXMACA编程环境
2.1 MXMACA云端编程环境
2.2 MXMACA本机编程环境
2.2.1 下载MXMACA安装工具包
2.2.2 安装MXMACA编程环境
2.2.3 配置MXMACA编程环境
2.3 用MXMACA打印“Hello World”
2.3.1 过程概述和代码示例
2.3.2 习题和思考
第3章 MXMACA编程模型
3.1 硬件平台
3.2 程序结构
3.3 内存管理
3.4 线程管理
3.5 核函数
3.6 向量加法示例
3.6.1 用传统的CPU编程完成向量相加
3.6.2 用MXMACA异构编程完成向量相加
3.6.3 向量加法实测结果比较
3.6.4 习题和思考
第4章 MXMACA编程API
4.1 基本语法
4.2 数据类型
4.2.1 C++语言基础类型
4.2.2 half类型
4.2.3 bfloat类型
4.3 MXMACA C++语言扩展集
4.3.1 扩展的Token
4.3.2 函数执行空间限定符
4.3.3 变量存储空间限定符
4.3.4 内置向量类型
4.3.5 内置变量
4.3.6 向量运算单元
第5章 MXMACA执行模型
5.1 沐曦GPU并行架构
5.1.1 设备线程架构信息查询
5.1.2 核函数的并发执行和串并行执行
5.1.3 核函数的启动方式
5.2 线程束执行的本质
5.2.1 线程束和线程块
5.2.2 线程束分化
5.2.3 资源分配
5.2.4 延迟隐藏
5.2.5 占用率
5.2.6 同步机制
5.2.7 协作组编程
5.2.8 可扩展性
5.2.9 CPU线程和GPU线程的区别
5.2.10 习题和思考
5.3 MXMACA流和并发执行
5.3.1 什么是流
5.3.2 基于流的并行
5.3.3 默认流与隐式同步
5.3.4 用户自定义流
5.3.5 流编程
5.3.6 用API启动核函数
5.3.7 MXMACA流管理函数汇总
5.4 MXMACA动态并行
5.4.1 动态并行的执行模型
5.4.2 动态并行的内存模型
5.4.3 在GPU上嵌套打印“Hello World”
5.4.4 使用动态并行计算Mandelbrot集合图像
5.5 MXMACA事件
5.5.1 使用事件同步
5.5.2 MXMACA事件管理函数汇总
5.6 MXMACA核函数计时
第6章 MXMACA内存模型和内存管理
6.1 计算机存储器分级模型
6.1.1 存储器的层次结构
6.1.2 GPU内存的层次结构
6.1.3 Linux的内存管理
6.2 MXMACA内存层次模型
6.2.1 GPU寄存器
6.2.2 GPU私有内存
6.2.3 GPU工作组共享内存
6.2.4 GPU常量内存
6.2.5 GPU全局内存
6.2.6 GPU缓存
6.3 MXMACA内存管理
6.3.1 常规内存管理
6.3.2 零复制内存
6.3.3 统一虚拟寻址技术
6.3.4 统一寻址内存技术
6.3.5 虚拟内存管理API
6.3.6 流序内存分配器
6.3.7 MXMACA编程内存相关的知识汇总
6.3.8 MXMACA内存管理函数的分类及特点
6.3.9 部分MXMACA内存管理函数的行为总结
6.3.10 习题和思考
第7章 MXMACA程序的编译、运行和调试
7.1 MXMACA代码的编译和运行
7.1.1 离线编译和静态运行
7.1.2 运行时编译和动态加载
7.1.3 二进制缓存
7.1.4 重编译
7.2 MXMACA程序的调试
7.2.1 异构计算系统的分析和调试
7.2.2 GPU核函数的功能调试
7.2.3 GPU核函数的性能调试
7.3 常见问题及其解决方案
7.3.1 MXMACA编程API使用错误
7.3.2 并行编程错误
7.3.3 算法错误
7.3.4 查找并避免错误
第8章 MXMACA程序优化
8.1 MXMACA程序优化概述
8.1.1 MXMACA程序优化的目标
8.1.2 MXMACA程序性能评估
8.2 MXMACA程序优化的一般流程
8.2.1 程序设计开发阶段
8.2.2 程序优化阶段
8.2.3 优化策略总结
8.3 MXMACA程序优化的主要内容
8.3.1 内存访问优化
8.3.2 数据传输优化
8.3.3 执行并行度优化
8.3.4 适配GPU的硬件行为
8.3.5 算术运算密度优化
8.3.6 一些常见的编译器优化方法
8.4 MXMACA程序优化总结
8.4.1 最大化利用率
8.4.2 最大化存储吞吐量
8.4.3 最大化指令吞吐量
8.4.4 最小化内存抖动
第9章 MXMACA图编程
9.1 从有向无环图说起
9.2 图编程介绍
9.3 图编程API
9.3.1 MXMACA任务图的结构
9.3.2 任务图的图节点类型
9.3.3 创建MXMACA任务图
9.3.4 显式图编程API
9.3.5 流捕获图编程API
9.3.6 将任务图实例化、加载到GPU并启动执行
9.3.7 MXMACA任务图的生命周期管理
9.3.8 更新实例化图
9.3.9 图编程的调试API
9.4 图编程加速
9.4.1 实践示例
9.4.2 习题和思考
第10章 MXMACA人工智能和计算加速库
10.1 mcBLAS库
10.1.1 数据排布
10.1.2 mcBLAS API介绍
10.2 mcDNN库
10.2.1 数据格式和类型
10.2.2 卷积神经网络
10.2.3 循环神经网络
10.3 mcSPARSE库
10.3.1 稀疏矩阵存储格式
10.3.2 mcSPARSE库的工作流程
10.4 mcSOLVER库
10.4.1 mcSOLVER库的工作流程
10.4.2 相关注意事项
10.5 mcFFT库
10.5.1 快速傅里叶变换
10.5.2 mcFFT库的工作流程
10.5.3 FFT变换类型
10.5.4 数据类型和数据布局
10.5.5 多维变换
10.6 其他加速库
10.6.1 Thrust库
10.6.2 mcRAND
10.7 应用示例
10.7.1 使用mcBLAS库求解矩阵乘法
10.7.2 使用mcDNN库求解深度神经网络卷积计算
第11章 MXMACA多GPU编程
11.1 单节点多卡:多设备服务器系统
11.1.1 多设备管理
11.1.2 多设备系统编程
11.2 多节点多卡:多GPU集群部署
11.2.1 RDMA技术
11.2.2 GPU Direct RDMA技术
11.2.3 多GPU编程的底层通信库
11.3 多GPU编程示例
11.3.1 用于声学数值模拟的多GPU编程
11.3.2 GPU加速异构集群编程
附录A MXMACA编程技术术语
附录B 本书相关缩略语
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜