描述
开 本: 16开包 装: 平装是否套装: 否国际标准书号ISBN: 9787115660053
【直击算力核心,打通理论到芯片的链路】本书从线性代数基础出发,系统阐释其与计算机体系结构(CPU、GPGPU、分布式)的深度关联,构建从数学原理到芯片级算法优化的完整知识图谱。
【深入剖析BLAS生态,覆盖主流硬件平台】全面详解高性能计算基石——BLAS库,涵盖OpenBLAS、cuBLAS/CUTLASS、OpenCL/CLBlast、Spark MLlib BLAS等核心实现,助读者掌握跨CPU、GPU及分布式集群的优化实践。
【聚焦异构计算,解锁AI算力瓶颈】紧密结合人工智能时代对算力的迫切需求,深入讲解如何在不同芯片架构(包括国产开源GPGPU项目)上优化线性代数计算,为AI模型训练与推理提供底层加速方案。
【产业界与学术界双重视角,兼具深度与广度】作者团队兼具研发实战与理论背景,内容不仅涵盖经典算法与架构分析,更融入对行业前沿(如后摩尔时代算力挑战)的思考,得到领域内院士及产业专家的联袂推荐。
【实战导向,提供从方法到案例的完整指引】通过矩阵乘法优化等具体案例,逐步展示算法优化方法(如RoofLine模型、访存优化、并行策略),并提供配套彩色插图与思维导图,降低高性能计算入门与实践门槛。
本书适合对线性代数和芯片架构算法优化感兴趣的读者阅读。无论是计算机相关专业的学生、高性能计算爱好者、算法工程师,还是希望进入高性能计算行业的人士,都能从中找到适合自己的学习内容。
第 1章 基础线性代数算法简介 3
1.1 高性能计算 3
1.2 高性能计算数学库 4
1.2.1 高性能计算数学库简介 4
1.2.2 高性能计算数学库分类 4
1.3 基础线性代数算法 7
1.3.1 稠密矩阵和稀疏矩阵 7
1.3.2 针对稠密矩阵的线性代数算法 10
1.3.3 针对稀疏矩阵的线性代数算法 10
1.4 本章小结 11
第 2章 数学基础 12
2.1 线性代数的基本概念 12
2.1.1 向量和向量空间 12
2.1.2 行列式和矩阵 13
2.1.3 线性方程组 14
2.1.4 矩阵的秩 15
2.2 矩阵乘法 15
2.2.1 概述 15
2.2.2 基于内积和外积的矩阵乘法 17
2.2.3 矩阵乘法切分逻辑 18
2.2.4 蛋糕模型 21
2.2.5 Strassen算法 23
2.3 多项式方程组求解 27
2.4 本章小结 29
第二部分 计算机体系结构和算法优化
第3章 计算机体系结构 33
3.1 冯 诺依曼架构 33
3.2 存储系统 35
3.2.1 主存(主存储器) 35
3.2.2 缓存 37
3.2.3 主存和缓存之间的映射关系 38
3.2.4 Bank冲突问题 40
3.3 控制系统 42
3.3.1 指令控制器 42
3.3.2 时序控制器 42
3.3.3 总线控制器 43
3.4 通信系统 43
3.4.1 总线 44
3.4.2 PCIe标准 45
3.4.3 NVLink标准 46
3.5 服务器系统架构 47
3.5.1 SMP架构 47
3.5.2 NUMA架构 48
3.5.3 MPP架构 49
3.6 本章小结 50
第4章 CPU 51
4.1 CPU概述 51
4.2 CPU向量指令系统 52
4.2.1 X86架构 52
4.2.2 ARM架构 53
4.3 CPU算法优化方法 55
4.3.1 CPU的理论极限和算法的计算访存比 55
4.3.2 RoofLine模型 56
4.4 实战:在CPU上优化矩阵乘法 57
4.4.1 优化一:根据NEON指令的粒度,对矩阵进行第 一次分块 59
4.4.2 优化二:扩大计算规模,提高计算访存比 60
4.4.3 优化三:访存优化,提高计算访存比 61
4.5 本章小结 62
第5章 GPGPU 63
5.1 GPGPU概述 63
5.2 GPGPU架构介绍 64
5.2.1 GPGPU架构概述 64
5.2.2 运算器 66
5.2.3 控制器 71
5.2.4 存储器 71
5.2.5 GPGPU与CPU的对比 71
5.3 开源GPGPU项目——承影GPGPU 72
5.4 并行计算算法优化方法 73
5.4.1 GPU的理论极限和算法的计算访存比 73
5.4.2 优化方法论 74
5.4.3 实战:在GPU上优化一个矩阵乘法 74
5.5 本章小结 76
第6章 分布式计算 77
6.1 分布式计算概述 77
6.2 大数据时代分布式计算架构 78
6.2.1 MapReduce架构 78
6.2.2 DAG架构 80
6.3 分布式计算算法优化方法 81
6.3.1 逻辑优化 82
6.3.2 物理优化 84
6.3.3 数据优化 87
6.4 本章小结 90
第三部分 BLAS库与多种硬件平台
第7章 高性能BLAS库 93
7.1 BLAS概述 93
7.1.1 BLAS发展历史 93
7.1.2 BLAS特性 95
7.1.3 BLAS生态系统 95
7.2 BLAS函数的命名规范 96
7.3 各级别BLAS函数 103
7.3.1 Level 1函数 103
7.3.2 Level 2函数 104
7.3.3 Level 3函数 105
7.4 BLAS函数 105
7.4.1 BLAS函数的分类 105
7.4.2 BLAS函数之间的内部推导关系 124
7.5 本章小结 125
第8章 OpenBLAS 126
8.1 OpenBLAS概述 126
8.1.1 OpenBLAS与张先轶 127
8.1.2 OpenBLAS的前世今生 127
8.1.3 OpenBLAS的现状 127
8.2 OpenBLAS实战 128
8.2.1 OpenBLAS的安装方法 128
8.2.2 OpenBLAS的使用方法 129
8.3 OpenBLAS架构设计 132
8.3.1 目录结构 132
8.3.2 软件调用架构 134
8.4 OpenBLAS GEMM算法详解 135
8.5 本章小结 139
第9章 CUDA、cuBLAS和CUTLASS 140
9.1 CUDA概述 140
9.1.1 NVIDIA简介 140
9.1.2 NVIDIA GPU硬件架构 141
9.1.3 CUDA简介 143
9.2 CUDA架构与实战 145
9.2.1 CUDA基本概念 145
9.2.2 CUDA硬件架构 146
9.2.3 CUDA内存模型 146
9.2.4 CUDA执行流程 147
9.2.5 CUDA性能优化 147
9.2.6 CUDA实战 148
9.3 cuBLAS概述 152
9.4 cuBLAS实战 153
9.5 CUTLASS概述 155
9.6 CUTLASS GEMM算法详解 156
9.6.1 使用方法 156
9.6.2 矩阵分块策略 158
9.6.3 整体计算过程 159
9.6.4 主机端前处理 160
9.6.5 设备端前处理 164
9.6.6 设备端核心计算 165
9.6.7 设备端后处理 170
9.7 本章小结 172
第 10章 OpenCL和CLBlast 173
10.1 OpenCL概述 173
10.2 OpenCL架构设计 174
10.3 OpenCL编程模型 176
10.4 OpenCL存储结构 179
10.4.1 存储分区 179
10.4.2 存储对象 181
10.4.3 共享虚拟内存 182
10.5 OpenCL实战 183
10.6 CLBlast概述 187
10.6.1 OpenCL相关的BLAS库 187
10.6.2 CLBlast特性 188
10.7 CLBlast实战 188
10.8 CLBlast GEMM算法详解 191
10.8.1 函数定义 191
10.8.2 非直接GEMM算法执行 过程 193
10.9 本章小结 197
第 11章 Spark和Spark MLlib BLAS 198
11.1 Spark和Spark SQL概述 198
11.1.1 Spark概述 198
11.1.2 Spark SQL概述 199
11.2 Spark MLlib BLAS详解 200
11.2.1 Spark MLlib概述 200
11.2.2 对矩阵和向量的支持 201
11.2.3 BLAS函数的使用 208
11.2.4 分布式矩阵 210
11.2.5 对UDT的支持 215
11.2.6 Spark SQL的使用 216
11.3 Spark MLlib BLAS GEMM算法 详解 218
11.3.1 Spark引用的BLAS库 218
11.3.2 分布式矩阵乘法算法 222
11.4 本章小结 225
第四部分 BLAS库与人工智能
第 12章 BLAS库在人工智能方面的 应用 229
12.1 卷积神经网络的计算流程 229
12.1.1 卷积层 229
12.1.2 全连接层 231
12.1.3 池化层 232
12.1.4 上采样层 233
12.1.5 连接层 234
12.1.6 其他网络层 234
12.2 卷积神经网络的并行加速 234
12.2.1 层内并行 235
12.2.2 层间流水 236
12.3 卷积神经网络加速实战 237
12.3.1 cuDNN库概述 237
12.3.2 cuDNN库安装 237
12.3.3 cuDNN库使用方法 239
12.4 本章小结 245











评论
还没有评论。