商品详情
书名:高性能计算算法引擎:线性代数与异构计算的融合
定价:99.8
ISBN:9787115660053
作者:赵先明 邹晓虎 刘钧文 夏津 窦兴林
版次:第1版
出版时间:2025-12
内容提要:
本书主要探讨线性代数与高性能计算之间的紧密联系,并着重介绍在芯片架构算法优化中如何应用BLAS库。本书分为四部分,共12章。*部分从线性代数的基础知识开始介绍,逐步深入介绍矩阵运算、向量空间、线性变换以及特征值和特征向量等核心概念;*部分主要介绍计算机体系结构及其衍生出来的多种处理芯片(CPU、GPGPU等)和分布式计算;第三部分主要介绍高性能计算数学库BLAS的基本概念和基础的实现思路,以及高性能计算数学库的实现框架,如OpenBLAS、CUDA(及其BLAS库,包括cuBLAS、CUTLASS)、OpenCL、CLBlast、Spark和Spark MLlib BLAS;第四部分主要介绍BLAS库在人工智能方面的应用。 本书适合对线性代数和芯片架构算法优化感兴趣的读者阅读。无论是计算机相关专业的学生、高性能计算爱好者、算法工程师,还是希望进入高性能计算行业的人士,*能从中找到适合自己的学习内容。
作者简介:
赵先明,本硕博毕业于哈尔滨工业大学。曾任中兴通讯股份有限公司 CTO、董事长和总裁。作为中兴通讯移动通信领域的主要技术负责人之一,参与了 2G 到 5G 相关技术的研发和产业化全过程。共获*奖项8项,省部级奖项 12 项。 邹晓虎,哈尔滨工业大学管理学博士、材料学博士后,哈尔滨工业大学兼职教授;具有深厚的热能工程、无机非金属材料学专业技术知识,在*刊物公开发表文章 15 篇,拥有发明专利 24 项;在政、产、学、研、金贸等诸多领域任职多年。 刘钧文,北京红山微电子技术有限公司基础线性代数算法库负责人,京东城市时空数据引擎(JUST)*之一,算法工程师。中国计算机学会(CCF)类数据库专业委员会通讯委员。著有《Calcite 数据管理实战》《GeoTools 地理信息系统开发》《GeoMesa 时空数据管理》。 夏津,毕业于哈尔滨工业大学,主要从事高性能计算和 A 芯片领域的研究,从事相关工作5年。具备A模型部署的实战经验,曾为多个开源 A| 推理框架贡献代码。 窦兴林,毕业于西安电子科技大学,长期从事半导体芯片的设计与封装工作。曾在广东晶科电子股份有限公司、大唐电信科技股份有限公司、中移物联网有限公司等业内*企业任职,积累了丰富的芯片行业经验。
目录:
第 一部分 线性代数前置知识
第 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
定价:99.8
ISBN:9787115660053
作者:赵先明 邹晓虎 刘钧文 夏津 窦兴林
版次:第1版
出版时间:2025-12
内容提要:
本书主要探讨线性代数与高性能计算之间的紧密联系,并着重介绍在芯片架构算法优化中如何应用BLAS库。本书分为四部分,共12章。*部分从线性代数的基础知识开始介绍,逐步深入介绍矩阵运算、向量空间、线性变换以及特征值和特征向量等核心概念;*部分主要介绍计算机体系结构及其衍生出来的多种处理芯片(CPU、GPGPU等)和分布式计算;第三部分主要介绍高性能计算数学库BLAS的基本概念和基础的实现思路,以及高性能计算数学库的实现框架,如OpenBLAS、CUDA(及其BLAS库,包括cuBLAS、CUTLASS)、OpenCL、CLBlast、Spark和Spark MLlib BLAS;第四部分主要介绍BLAS库在人工智能方面的应用。 本书适合对线性代数和芯片架构算法优化感兴趣的读者阅读。无论是计算机相关专业的学生、高性能计算爱好者、算法工程师,还是希望进入高性能计算行业的人士,*能从中找到适合自己的学习内容。
作者简介:
赵先明,本硕博毕业于哈尔滨工业大学。曾任中兴通讯股份有限公司 CTO、董事长和总裁。作为中兴通讯移动通信领域的主要技术负责人之一,参与了 2G 到 5G 相关技术的研发和产业化全过程。共获*奖项8项,省部级奖项 12 项。 邹晓虎,哈尔滨工业大学管理学博士、材料学博士后,哈尔滨工业大学兼职教授;具有深厚的热能工程、无机非金属材料学专业技术知识,在*刊物公开发表文章 15 篇,拥有发明专利 24 项;在政、产、学、研、金贸等诸多领域任职多年。 刘钧文,北京红山微电子技术有限公司基础线性代数算法库负责人,京东城市时空数据引擎(JUST)*之一,算法工程师。中国计算机学会(CCF)类数据库专业委员会通讯委员。著有《Calcite 数据管理实战》《GeoTools 地理信息系统开发》《GeoMesa 时空数据管理》。 夏津,毕业于哈尔滨工业大学,主要从事高性能计算和 A 芯片领域的研究,从事相关工作5年。具备A模型部署的实战经验,曾为多个开源 A| 推理框架贡献代码。 窦兴林,毕业于西安电子科技大学,长期从事半导体芯片的设计与封装工作。曾在广东晶科电子股份有限公司、大唐电信科技股份有限公司、中移物联网有限公司等业内*企业任职,积累了丰富的芯片行业经验。
目录:
第 一部分 线性代数前置知识
第 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
- 人民邮电出版社有限公司 (微信公众号认证)
- 人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...