新書推薦:
《
Python贝叶斯深度学习
》
售價:HK$
89.4
《
启微·狂骉年代:西洋赛马在中国
》
售價:HK$
78.4
《
有趣的中国古建筑
》
售價:HK$
67.0
《
十一年夏至
》
售價:HK$
76.2
《
如何打造成功的商业赛事
》
售價:HK$
89.5
《
万千教育学前·透视学前儿童的发展:解析幼儿教师常问的那些问题
》
售價:HK$
58.2
《
慈悲与玫瑰
》
售價:HK$
87.4
《
启蒙的辩证:哲学的片简(法兰克福学派哲学经典,批判理论重要文本)
》
售價:HK$
76.2
|
內容簡介: |
MACA全称是MetaX Advanced Compute Architecture,是由沐曦(MetaX)公司推出的一种采用通用并行计算架构解决复杂计算问题的异构计算平台,它包含了沐曦自研指令集架构(ISA)、GPU并行计算硬件引擎和GPU软件开发平台。本书深入浅出,层层递进,构建了一个系统全面的知识结构,全面介绍了异构并行计算和GPU编程的基础知识与高级应用。本书的内容覆盖基础理论、实际应用、编程模型到内存管理、性能优化等多个层面。本书不仅详尽阐述了MXMACA C/C++编程语言的特性和应用,还通过丰富的示例代码展示了在沐曦高性能GPU平台上开发计算加速应用程序的全过程。本书不仅为读者提供了深入学习GPU编程和异构计算的资料,也为科学计算、大数据分析、人工智能等领域的专业人士提供了宝贵的技术资源。无论是相关专业的老师和学生,还是对并行计算感兴趣的研究人员和工程师,都能从这本书中获得实用的指导。
|
關於作者: |
杨建,浙江大学博士,沐曦联合创始人、CTO兼首席软件架构师,三维图形与高性能计算生态专家,拥有多项发明专利,具有超过20年的GPU软件研发经验。杨建博士曾任职于华为海思和AMD,曾任华为海思GPU首席架构师,是AMD大中华区首位华人科学家。严德政,浙江大学硕士,沐曦公司软件总监和GPU产品驱动架构师,浙江电子工程高级工程师,资深技术专家,拥有深厚的软硬件产品架构设计和开发管理经验,精通C/C++、Python、Java、JavaScript等多种编程语言。詹源,浙江大学硕士,沐曦公司工程师,从事嵌入式、AI系统工程软件开发工作,目前主要聚焦AI计算库的研发,负责大语言模型训练和推理相关的算子优化工作。王沛,南京航空航天大学硕士,沐曦公司软件专家,主要从事编译器方向的相关研究,负责公司的传统编译器和AI编译器的架构和编码工作。
|
目錄:
|
第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 本书相关缩略语
|
|