本书共11章,各章的具体内容如下。
● 第1章 MXMACA编程简介:本章介绍目标读者群体、学习 MXMACA编程的基础、本书的内容组织结构及相关的背景知识。
● 第2章 MXMACA编程环境:本章介绍MXMACA编程环境,MXMACA程序员可以根据自身的条件和喜好,选择自己手动搭建本地开发环境,或直接使用沐曦官网提供的云端集成开发环境。本章最后以打印“Hello World”为例,让C/C++语言初学者可以快速切入GPU编程的赛道,也可让其验证自己的MXMACA编程环境是否能正常工作。
● 第3章 MXMACA编程模型:本章介绍MXMACA编程硬件平台和MXMACA程序的通用结构,从逻辑视角解释MXMACA大规模并行计算的技术原理。此外,本章还结合向量加法示例,对比CPU和GPU编程的差异性。
● 第4章 MXMACA编程API:本章简要介绍MXMACA编程API(Application Program Interface),包括一些基本语法、数据类型和C++语言最小扩展集,以及扩展的Token、函数执行空间限定符、变量存储空间限定符、内置类型、内置变量、向量单元等。
● 第5章 MXMACA执行模型:本章通过研究成千上万的 GPU线程是如何在GPU中调度的,来探讨硬件层面的内核执行问题。本章解释计算资源是如何在多颗粒度线程间分配的,也从硬件视角说明了如何由线程(Thread)组成线程块(Block)、再由线程块组成线程网格(Grid)的二层线程管理模型。另外,本章还结合示例阐述MXMACA的动态并行和嵌套执行规则。
● 第6章 MXMACA内存模型和内存管理:本章通过介绍 MXMACA内存模型和内存管理,帮助MXMACA程序员理解异构系统中的数据存储和搬运机理。此外,本章结合丰富的MXMACA内存管理样例,阐述如何在程序中正确使用MXMACA运行时库提供的内存管理API,以尽可能地提升异构程序的性能。
● 第7章 MXMACA程序的编译、运行和调试:本章介绍 MXMACA程序代码的离线编译、静态运行和动态加载、二进制缓存和重编译等编译运行方式,以及MXMACA程序调试的各种方法、手段和工具。
● 第8章 MXMACA程序优化:本章介绍程序性能优化的理论知识,并利用第7章介绍的MXMACA程序调试工具进行相关的性能优化实践。
● 第9章 MXMACA图编程:本章介绍MXMACA图编程—GPU编程领域里一种全新的程序设计方法,它为MXMACA程序员提供了一种有向无环图可视化程序设计和编程方法。
● 第10章 MXMACA人工智能和计算加速库:本章介绍主要面向 AI和科学计算等应用领域的MXMACA人工智能和计算加速库,以方便程序员使用这些函数库来加速任务进程,而不需要自己来编写相关的MXMACA核函数。
● 第11章 MXMACA多GPU编程:随着问题域规模的扩大,单GPU的内存大小或计算能力可能难以胜任,MXMACA编程允许使用多个GPU甚至是GPU集群来编写和运行MXMACA应用程序。本章介绍如何通过使用多GPU的管理和通信并发地处理多任务,以增加MXMACA应用程序的吞吐量和计算能力。
在使用本书时,读者可以根据自身的情况进行调整。对于初次接触GPU编程的读者,建议完整地按照章节顺序阅读本书。对于有初步的GPU编程经验的读者,建议跳过第1.4节和第2.3节。对于有丰富的GPU编程经验的读者,建议快速浏览第3~7章,重点学习第8~11章。
需要说明的是,本书在正文中讨论程序代码里的变量和常量时,均采用与代码中一致的正体标注,以方便读者阅读和理解。