软硬件融合——超大规模云计算架构创新之路
  • 推荐0
  • 收藏0
  • 浏览432

软硬件融合——超大规模云计算架构创新之路

黄朝波 , 薛淑英 (作者) 

  • 丛  书:高效实战精品
  • 书  号:978-7-121-40922-6
  • 出版日期:2021-04-23
  • 页  数:356
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:董英
纸质版 ¥89.00
物联网、大数据以及人工智能等新兴技术,推动着云计算持续快速发展,底层硬件越来越无法满足上层软件的发展和迭代。本书通过探寻软硬件的技术本质,寻找能够结合软件灵活性和硬件高效性的解决方法。帮助有软件背景的读者更深刻地认识硬件,加深对软硬件之间联系的理解,并且更好地驾驭硬件;同时也帮助有硬件背景的读者,有一个更全面的视角,更加宏观地看待问题,理解需求、产品、系统、架构等多方面问题的权衡。
本书共9章内容:第1章介绍了云计算面临的底层技术挑战,接着第2、3章介绍了软硬件相关的概念和计算机基础知识,并引出了软硬件融合的概念。第4~7章分别介绍了软硬件融合的四类技术:软硬件接口、算法加速和任务卸载、虚拟化的硬件加速、异构计算。第8章介绍应用这些技术的综合案例。第9章则是具体实现方面的思考。
本书立意新颖,结合业界最新案例,内容从浅入深,并且展望未来。帮助广大互联网及IT行业的软硬件工程师,更好地理解软件、硬件以及软硬件之间的内在联系,也可以作为计算机相关专业本科高年级以及研究生的技术拓展读物。
第一本软硬件融合著作,让读者更深刻地认识硬件,更理解软硬件之间的联系,提高工作效率
推荐序1
从20 世纪70 年代开始使用大规模集成电路计算机以来,计算机系统的规模化发展速度呈指
数级增长,并且极大地改变了我们的生活。在这种加速发展的背后,有两个定律发挥着巨大的作
用:一个是英特尔联合创始人戈登·摩尔在1965 年提出的摩尔定律,该定律指出集成电路的集成
度每隔18~24 个月就会翻一番;另一个是有“小型机之父”之称的戈登·贝尔在1972 年提出的
贝尔定律,该定律预测每10 年就会产生新一代计算设备,并且设备数量会增加10 倍。我从20 世
纪90 年代初进入计算机领域后,亲身体验到了计算机从286 到586 的快速更新换代,但并没有真
正发现这种指数式发展的威力。在我进入计算机领域之后的20 年里,手机移动互联网和智能物联
网依次登场,将世界带入了万物互联的时代,预计到2025 年将有500 亿个设备连入互联网。
计算设备的多样化和算力成本的迅速下降让硬件和软件的关系发生了深刻的变化。当计算
硬件单一、计算力昂贵的时候,软件必须以硬件为中心进行设计和折中。当计算硬件有多种选
择、算力成本足够低的时候,就可以按照软件的需求来设计甚至定制硬件。这样,我们就进入
了一个软硬件融合的时代,在整个计算机系统中,软硬件的分层可以根据需求灵活变化,业务
处理流程中的计算、存储、传输也涉及软件和加速硬件的多重交互。未来10 年,摩尔定律还将
继续发挥效用,先进的3D 晶体管设计和3D 封装技术使一个集成电路内部可以包含多种计算架
构,以更低的成本提供更强大的算力。2020 年,英特尔已经可以在10nm 的工艺节点上稳定地
使用SuperFin 晶体管技术和Foveros 3D 封装技术,并且有清晰的技术路线图继续向7nm、5nm
推进。此外,组合多种集成电路架构设计(CPU、GPU、FPGA、ASIC 和神经拟态计算等)的
异构计算快速发展,但它在提供多种选项的同时显著增加了计算机系统架构设计的复杂度和软
件优化的难度。
黄朝波老师编著的这本书非常及时地给读者揭示了软硬件融合的趋势,并且从多个角度讲解
了实现软硬件融合的技术。黄朝波老师的学习和工作经历很好地覆盖了集成电路设计、软件开发
和云计算系统架构等,这使得本书的内容很全面,并且提供了硬件基础知识,适合读者迅速扩大
知识面。
预计2020 年之后的下一个10 年,万物都将是计算机。如今,得益于5G 移动通信技术和人工
智能技术的广泛应用,智能互联计算已经成为主流。随着近年来智能手机、智能城市、智能制造
和自动驾驶等领域相关技术的不断进步,以视觉、声音、激光雷达、毫米波雷达为代表的多种传
感器正在加速整个世界的数字化进程,需要处理的数据量正在极速增长。同时,进入互联网和计
算中心的数据从量变到质变,大量描述自然界的非人工数据需要用人工智能算法来处理,并且通
常有实时性要求。数据的量变和质变带来了对智能边缘计算的强烈需求,也催生了云—边—端融
合的新计算架构。如果能把握好这个趋势,就能顺势而上,充分享受智能互联计算的红利;否则,
就有可能被淘汰。
这是一个技术发展日新月异的时代:一方面,软件定义一切;另一方面,硬件加速一切。同
时,网络无处不在。本书是站在2020 年这个时间节点上的总结与展望,我期待黄朝波老师的下一
本著作继续带着我们驾驭软硬件融合的技术大潮。
——英特尔中国研究院院长 宋继强
2020 年12 月20 日写于北京

推荐序2
软件还是硬件,这是一个问题。软件的灵活性和硬件的高性能都是我们希望得到的,但是,
考虑到实现代价,我们必须在软件实现和硬件实现之间进行折中选择。
传统上,软件和硬件有一个相对明晰的区分:但凡通用处理器能够高效处理的功能,都用软
件实现(并在通用处理器硬件上执行);但凡通用处理器不能高效处理的功能,都用专用硬件实现,
如各种基于ASIC 或FPGA 的硬件加速器。
但是,随着需求的多样化和系统的复杂化,尤其是云计算环境的出现,我们需要将不同功能
的软件和不同种类的硬件集成起来,使它们协同工作。在这种情况下,采用软件还是硬件,同时
采用哪种软件或硬件来进行实现,就变得异常复杂。而分层抽象则是一种解决复杂问题行之有效
的方法。
黄朝波老师长期从事云计算架构相关工作,并且颇有心得,他从实际云计算工作需求出发,
尝试采用软硬件多级分层抽象和接口标准化的方法来解决软硬件协同工作的问题,这个问题体现
在如下两个方面。
(1)多级分层模型。随着系统变得越来越复杂,我们已经不能简单地采用软件和硬件两个层
次来对复杂系统进行分层,而应该对传统的软件层和硬件层进行进一步分层。目前,软件多级分
层的思想已经被广泛接受,而硬件多级分层的驱动力来自日益多样性的硬件(如不同类型的处理
器和面向不同目的的加速器)。为了能够从全系统的角度更好地进行硬件资源的分配与调度,我们
应该进一步对不同的硬件进行分层抽象。?
(2)接口标准化。软件接口标准化可以带来互操作性方面的好处,而某类硬件接口的标准化
(如硬件总线协议)也可以带来互操作性方面的极大便利。如何基于多样性硬件的分层抽象来定义
层间的标准化接口以支持高效的互操作性,是一个值得深入并持续探讨的问题。硬件接口标准化
目前已经有了一些趋势,如RISC-V。RISC-V 尝试定义一套标准化的ISA,以使不同硬件厂商的
处理器硬件和不同软件厂商的操作系统、编译器及应用软件都能实现互操作,从而摆脱二进制翻
译和虚拟机等复杂且不高效的互操作机制。
随着技术的进步,传统意义上的硬件加速器可能会逐渐成为标准化的功能,从而进入通用处
理领域(被通用处理器吸收,如向量和多媒体功能),采用软件实现。同时,随着需求的变化,传
统意义上可以由软件实现的功能也会有更高的性能要求,从而需要用专用硬件实现。软硬件的多
级分层抽象和接口标准化的另一个好处在于,我们可以在不影响其他层次的前提下,根据技术的
进步或需求的变化,自由地替换某一层次的具体实现方式。
本书系统地探讨了以上问题,并将相关思想实际应用于包含复杂软硬件的云计算系统,提出
了多级分层抽象的软硬件融合系统模型,对云计算的架构设计有着实际的指导意义。
——NVIDIA Principal Architect 蒋江

前言
互联网行业发展迅速,2010 年以来,随着物联网、云计算、大数据、人工智能等互联网技术
的快速发展,相关的产品和服务层出不穷,快速迭代。虽然软件技术日新月异,快速演进,但是
相应的硬件体系结构却没有本质的改变,比如,目前支撑云端系统运行的依然是以CPU 为核心的
通用服务器。
软硬件之间本质上的需求矛盾是CPU的性能越来越无法满足软件的发展需要,主要原因如下。
? CPU 的微架构已经非常成熟,不考虑工艺进步和多核技术,仅提升单核CPU 的性能在多
年前就已经非常困难。
? 在互联网行业初期,工艺进步是提升CPU 和芯片性能的主要手段,但随着半导体工艺突
破 10nm 以来,依靠工艺进步来提升CPU 和芯片性能的空间急剧缩小,摩尔定律逐渐走向
终结。
? 登纳德缩放比例定律表明,随着工艺进步,单位面积所能容纳的晶体管越多,单位面积的
功耗也会越大,功耗会限制晶体管数量的进一步增加。
? 受限于连接CPU 核的总线效率、芯片面积及功耗等,CPU 核集成数量的提升空间逐渐
缩小。
作为计算机体系结构领域的领军人物,David Patterson 与John Hennessy 在获得2017 年图灵奖
的演说中提到未来十年将是计算机体系结构的黄金十年,两人给出的解决方案是DSA(Domain
Specific Architecture,特定领域架构)。DSA 是一种以硬件为中心的解决方案,可针对特定应用场
景定制芯片,支持软件可编程,并且通常都是图灵完备的。从图灵完备的意义来看,DSA 与ASIC
(Application Specific Integrated Circuit,专用集成电路)不同,后者通常用于单一功能,软件代码
很少发生变化。DSA 也是一种加速器,具有很好的加速性能,与通用CPU 执行应用程序相比,
DSA 只能加速某些特定的应用程序。例如,用于深度学习的神经网络处理器及用于软件定义网络
(SDN)的处理器等。
在云计算场景下,软硬件融合问题变得更加复杂。云计算不仅需要虚拟化技术来共享物理
服务器,还需要管理物理服务器切分出来的虚拟服务器,以此服务成千上万的用户。云计算需
要提供基于虚拟网络技术的VPC 服务来进行租户隔离,为巨量的数据提供高可用的存储服务
等,还需要为各种用户性能敏感的业务(如大数据分析、视频图像处理、机器学习/深度学习
等)进行加速。云计算软硬件融合最大的挑战在于,需要把多种多样的功能融合到一整套软硬
件平台方案中。虽然DSA 提供了比传统ASIC 更多的灵活性,但它在云计算领域依然存在以
下问题。
? 与传统ASIC 一样,DSA 通常也要封装成一个具体的IC 芯片,从一个应用场景的系统算法
到IC 芯片量产需要2~3 年时间,而互联网的业务发展速度非常快,DSA 是否能够满足未
来2~3 年的软件需求?硬件的使用周期一般是3~5 年,在此期间,DSA 是否能支撑软件
的持续迭代?
? 从系统的角度来看,DSA 用于解决特定问题A,如果有A、B、C 等多个问题同时需要解
决,那么多个DSA 如何共存?成本如何?或者重新设计一种DSA 芯片解决所有问题?重
新设计的DSA 芯片的通用性和灵活性又如何?
? 云计算场景的DSA 方案通常选择基于经典的CPU+xPU 异构计算架构,而不选择图灵完备
的集成架构。CPU+xPU 异构计算架构把特定场景算法的加速放在xPU,通过CPU 的协调
处理来完成整体任务。CPU+xPU 异构计算架构可以让CPU 侧的软件大幅度降低CPU 资源
消耗,从而提升CPU 性能,但仍然需要CPU 的参与。
在云计算的场景下,我们希望为用户提供一个标准的业务环境,后台管理的工作任务数据面
和控制面都能够完整卸载。为了实现这些目标,我们就需要为云计算场景提供一个“宏架构”,统
筹各种系统的硬件加速和任务卸载,并且能够为用户提供功能强大且简单的运行环境,让用户专
注于自身业务的创新。
就互联网云计算而言,芯片公司距离市场和业务场景较远,虽然其对芯片级微观系统的理解
非常深入,但对宏观的互联网系统缺乏深层次的敏感度,对热点方向布局不重视,这就导致很多
高精尖技术难以落地。而传统的互联网公司虽然距离用户较近,有系统视角,但缺乏芯片及相关
硬件技术储备,对芯片的理解比较肤浅,局限于硬件的浅层优化,犹如隔靴搔痒。
基于上述问题,互联网公司纷纷通过自研或与芯片公司合作的方式,更深层次地融合软件和
硬件,研发符合互联网场景的新型芯片及硬件产品,以此支撑结构更加复杂、规模更加庞大、管
理更加自动化的智能化互联网基础设施和应用系统。这种趋势当前还处于“八仙过海,各显神通”
的阶段,有必要通过体系结构层面深度地理解、分析和思考,将这些新型技术和平台进行系统性
的梳理、整合、重构,逐步演进成能够满足未来发展需求的新型云计算体系结构。
互联网新技术的快速发展带来翻天覆地的变化,要解决新的上层业务场景需求问题,离不开
体系结构的创新发展。通常2~3 年会出现一个新的技术热点,系统迭代速度越来越快,体系结构
在系统快速迭代的节奏下,如何才能够拥有较长的生命周期,并且在整个生命周期都能很好地支
撑业务发展,是需要深入思考的问题。
本书主要介绍如何通过软硬件融合的创新来构建能够应对未来业务挑战的云计算体系结构,
核心理念是把软件的灵活性和硬件的高效性深度融合在一起。本书各章介绍的内容如下。
第1 章为云计算底层软硬件。
第2 章为软硬件融合综述。
第3 章为计算机体系结构基础。本章内容与后续章节的核心内容是密切相关的,是核心内容
的前导知识。
第4 章为软硬件接口。软硬件融合首先面对的就是软硬件接口,需要重点掌握如何实现高效
的软硬件数据交互。
第5 章为算法加速和任务卸载。算法加速即某个算法的硬件实现;任务卸载以算法加速为内
核,更加系统化、平台化,通常需要有快速构建特定任务卸载的基本软硬件框架。
第6 章为虚拟化硬件加速。虚拟化硬件加速的核心是高性能虚拟化硬件处理,以及如何兼顾
软件的灵活性和硬件的高效性。
第7 章为异构加速。异构计算架构适合云计算场景业务加速,有较多的成熟方案。
第8 章为云计算体系结构趋势。
第9 章为融合的系统。本章内容是对云计算数据中心体系结构的总结。
感谢我的家人,在本书的编写过程中,我占用了许多用于陪伴家人的时间,是她们的支持让
我有动力和毅力来完成本书的编写工作;感谢我所在公司的上级领导及同事,是公司提供了如此
好的平台,让我有机会去实现创新的想法,上级领导和同事们也为我提供了很多帮助和支持;感
谢我的大学老师和同学,毕业多年,老师依然关心我们这些学生的工作和生活,同学们的帮助也
促进我一直成长。
受限于个人知识背景和技术水平,也因为这个快速发展的行业和时代,本书难免存在不足。
集体的智慧是无穷的,希望大家提出意见和建议,我会不定期地修订、完善、更新本书,为大家
呈现一本拥有更高价值的图书。
黄朝波

目录

引言 .......................................................................................................................................................... 1
第1 章 云计算底层软硬件 ................................................................................................................... 8
1.1 云计算概述 ............................................................................................................................... 8
1.1.1 云计算的概念 ................................................................................................................ 8
1.1.2 IaaS、PaaS 和SaaS ....................................................................................................... 9
1.2 IaaS 层核心服务..................................................................................................................... 10
1.2.1 计算类服务 .................................................................................................................. 11
1.2.2 存储类服务 .................................................................................................................. 13
1.2.3 网络类服务 .................................................................................................................. 16
1.2.4 IaaS 层服务总结 .......................................................................................................... 18
1.3 云计算的特点 ......................................................................................................................... 19
1.3.1 更大的规模 .................................................................................................................. 19
1.3.2 更“大”的数据 .......................................................................................................... 20
1.3.3 更多的租户 .................................................................................................................. 21
1.3.4 更复杂的网络 .............................................................................................................. 22
1.3.5 安全问题无处不在 ...................................................................................................... 24
1.3.6 面向特定应用场景的云计算服务 .............................................................................. 26
1.3.7 服务接口的兼容性和通用性 ...................................................................................... 27
1.4 底层软硬件挑战 ..................................................................................................................... 28
1.4.1 业务异构加速 .............................................................................................................. 28
1.4.2 工作任务卸载 .............................................................................................................. 29
1.4.3 软硬件接口的标准化和灵活性 .................................................................................. 30
1.4.4 硬件处理的虚拟化和个性化 ...................................................................................... 31
1.4.5 业务和管理物理分离 .................................................................................................. 32
1.4.6 硬件的功能扩展 .......................................................................................................... 33
1.4.7 让硬件快速迭代 .......................................................................................................... 33
1.4.8 硬件高可用 .................................................................................................................. 34
1.5 总结 ....................................................................................................................................... 34
第2 章 软硬件融合综述 ..................................................................................................................... 36
2.1 软硬件基本概念 ..................................................................................................................... 36
2.1.1 软件和硬件 .................................................................................................................. 36
2.1.2 FPGA、ASIC 和SoC .................................................................................................. 37
2.1.3 硬件加速原理 .............................................................................................................. 40
2.2 软硬件划分 ............................................................................................................................. 41
2.2.1 三个维度 ...................................................................................................................... 41
2.2.2 综合分析 ...................................................................................................................... 44
2.2.3 平台选择 ...................................................................................................................... 45
2.3 软硬件协作 ............................................................................................................................. 46
2.3.1 多平台混合架构 .......................................................................................................... 46
2.3.2 软硬件平台的协作 ...................................................................................................... 49
2.3.3 软硬件平台的交互 ...................................................................................................... 51
2.4 软硬件融合 ............................................................................................................................. 52
2.4.1 软硬件融合的概念 ...................................................................................................... 52
2.4.2 软硬件融合的特点 ...................................................................................................... 54
2.4.3 软硬件融合技术 .......................................................................................................... 55
第3 章 计算机体系结构基础 ............................................................................................................. 57
3.1 计算机原理 ............................................................................................................................. 57
3.1.1 处理器架构:从冯·诺依曼架构到RISC-V ............................................................ 57
3.1.2 内存地址:从寻址模式到MMU ............................................................................... 61
3.1.3 I/O:从CPU 中断到DMA ........................................................................................ 65
3.1.4 多核互连:从传统总线到网状总线 .......................................................................... 66
3.1.5 服务器板级架构 .......................................................................................................... 69
3.2 存储 ....................................................................................................................................... 71
3.2.1 缓存和存储分层结构 .................................................................................................. 71
3.2.2 本地存储:磁盘分区和逻辑/物理卷 ......................................................................... 74
3.2.3 分布式存储:GFS 和存储的“温度” ...................................................................... 76
3.3 网络 ....................................................................................................................................... 79
3.3.1 基础物理网络:分层和拓扑 ...................................................................................... 79
3.3.2 虚拟网络:VLAN 和VxLAN .................................................................................... 83
3.3.3 软件定义网络:从OpenFlow 到P4 .......................................................................... 87
3.4 虚拟化 ................................................................................................................................... 93
3.4.1 虚拟化的层次、定义和分类 ...................................................................................... 93
3.4.2 CPU 虚拟化:从软件模拟到完全硬件 ..................................................................... 96
3.4.3 内存虚拟化:影子页表和EPT .................................................................................. 99
3.4.4 I/O 设备虚拟化:从软件模拟到SR-IOV ............................................................... 100
3.4.5 容器虚拟化:Docker 和Kubernetes 介绍 ............................................................... 103
第4 章 软硬件接口 ........................................................................................................................... 105
4.1 软硬件接口概述 ................................................................................................................... 105
4.1.1 软硬件接口定义 ........................................................................................................ 106
4.1.2 生产者-消费者模型 .................................................................................................. 109
4.1.3 用户态的PMD:DPDK 和SPDK ........................................................................... 113
4.2 总线互连............................................................................................................................... 116
4.2.1 AMBA 总线 ............................................................................................................... 116
4.2.2 片上网络NoC 总线 .................................................................................................. 120
4.2.3 片间高速总线PCIe 及SR-IOV ................................................................................ 123
4.2.4 对称的缓存一致性总线CCIX ................................................................................. 128
4.2.5 非对称的缓存一致性总线CXL ............................................................................... 132
4.2.6 总线互连总结 ............................................................................................................ 136
4.3 通用接口Virtio .................................................................................................................... 139
4.3.1 Virtio 寄存器 ............................................................................................................. 139
4.3.2 Virtqueue 交互队列 ................................................................................................... 141
4.3.3 Virtio 交互 ................................................................................................................. 143
4.3.4 总结 ............................................................................................................................ 144
4.4 高速网络接口RDMA .......................................................................................................... 146
4.4.1 基本概念 .................................................................................................................... 146
4.4.2 RoCE 分层 ................................................................................................................. 147
4.4.3 RDMA 接口 ............................................................................................................... 148
4.4.4 RDMA 总结 ............................................................................................................... 149
4.5 高速存储接口NVMe ........................................................................................................... 150
4.5.1 NVMe 概述................................................................................................................ 150
4.5.2 NVMe 寄存器 ............................................................................................................ 151
4.5.3 NVMe 队列................................................................................................................ 153
4.5.4 NVMe 命令结构 ........................................................................................................ 155
4.5.5 网络存储接口NVMeoF ........................................................................................... 160
4.5.6 NVMe 及NVMeoF 总结 .......................................................................................... 162
4.6 软硬件接口总结 ................................................................................................................... 163
4.6.1 接口分层 .................................................................................................................... 163
4.6.2 接口共享 .................................................................................................................... 163
第5 章 算法加速和任务卸载 ........................................................................................................... 165
5.1 基本概念............................................................................................................................... 165
5.1.1 硬件加速 .................................................................................................................... 166
5.1.2 硬件处理模块 ............................................................................................................ 167
5.1.3 算法加速和任务卸载的概念 .................................................................................... 169
5.2 算法加速............................................................................................................................... 171
5.2.1 加密算法加速 ............................................................................................................ 171
5.2.2 压缩算法加速 ............................................................................................................ 176
5.2.3 数据冗余算法加速 .................................................................................................... 181
5.2.4 正则表达式算法加速 ................................................................................................ 183
5.2.5 加速器性能设计原则 ................................................................................................ 185
5.3 任务卸载............................................................................................................................... 186
5.3.1 任务卸载模型 ............................................................................................................ 186
5.3.2 IPsec 卸载 .................................................................................................................. 188
5.3.3 虚拟网络卸载 ............................................................................................................ 190
5.3.4 远程存储卸载 ............................................................................................................ 192
5.3.5 虚拟化卸载 ................................................................................................................ 194
5.4 算法加速和任务卸载总结 ................................................................................................... 197
5.4.1 算法加速是基础 ........................................................................................................ 197
5.4.2 任务卸载是多系统协作 ............................................................................................ 199
第6 章 虚拟化硬件加速 ................................................................................................................... 203
6.1 基本概念............................................................................................................................... 203
6.1.1 软硬件中的抽象 ........................................................................................................ 204
6.1.2 虚拟化抽象 ................................................................................................................ 205
6.1.3 虚拟化模型 ................................................................................................................ 207
6.1.4 虚拟化加速的必要性 ................................................................................................ 210
6.2 虚拟化的硬件处理 ............................................................................................................... 211
6.2.1 流水线处理 ................................................................................................................ 211
6.2.2 虚拟化映射 ................................................................................................................ 215
6.2.3 缓存机制 .................................................................................................................... 219
6.2.4 通用虚拟化流水线 .................................................................................................... 221
6.3 网络虚拟化处理 ................................................................................................................... 222
6.3.1 包处理用于网络虚拟化 ............................................................................................ 222
6.3.2 定制的网络包处理 .................................................................................................... 223
6.3.3 ASIC 软件可编程包处理 .......................................................................................... 224
6.3.4 FPGA 硬件可编程包处理 ......................................................................................... 227
6.3.5 案例:Mellanox FlexFlow ........................................................................................ 229
6.3.6 网络包处理总结 ........................................................................................................ 230
6.4 存储虚拟化处理 ................................................................................................................... 231
6.4.1 分布式存储Ceph ...................................................................................................... 231
6.4.2 以事务为单位的存储处理 ........................................................................................ 236
6.4.3 远程存储虚拟化加速 ................................................................................................ 238
6.4.4 本地存储虚拟化加速 ................................................................................................ 241
6.5 虚拟化硬件加速总结 ........................................................................................................... 243
6.5.1 灵活的高性能流水线 ................................................................................................ 243
6.5.2 高性能缓存机制 ........................................................................................................ 244
6.5.3 可软件编程、通用、数据流驱动的数据处理引擎 ................................................ 244
6.5.4 虚拟化硬件加速的意义 ............................................................................................ 246
6.5.5 其他虚拟化加速场景 ................................................................................................ 246
第7 章 异构加速 ............................................................................................................................... 247
7.1 异构计算概述 ....................................................................................................................... 247
7.1.1 基本概念(并行计算、异构计算) ........................................................................ 247
7.1.2 典型案例 .................................................................................................................... 249
7.1.3 性能约束和优化 ........................................................................................................ 250
7.1.4 易用性思考 ................................................................................................................ 251
7.2 GPU 和CUDA ..................................................................................................................... 252
7.2.1 GPU 和CUDA 概念 ................................................................................................. 252
7.2.2 GPU 硬件架构 ........................................................................................................... 253
7.2.3 CUDA 编程模型 ....................................................................................................... 259
7.3 OpenCL 和FPGA 异构计算 ................................................................................................ 264
7.3.1 OpenCL ...................................................................................................................... 264
7.3.2 Xilinx SDAccel .......................................................................................................... 270
7.3.3 英特尔加速栈 ............................................................................................................ 273
7.4 DSA ..................................................................................................................................... 275
7.4.1 DSA 发展背景 ........................................................................................................... 275
7.4.2 DSA 典型领域:DNN .............................................................................................. 278
7.4.3 ASIC 实现:谷歌TPU ............................................................................................. 281
7.4.4 FPGA 实现:微软Catapult ...................................................................................... 284
7.4.5 Chiplet 实现:OCP ODSA ....................................................................................... 287
7.5 异构加速计算总结 ............................................................................................................... 289
7.5.1 平台选择(GPU、FPGA、ASIC/DSA) ................................................................ 290
7.5.2 异构计算加速优化 .................................................................................................... 291
第8 章 云计算体系结构趋势 ........................................................................................................... 293
8.1 概述 ..................................................................................................................................... 293
8.2 业务和管理分离 ................................................................................................................... 294
8.2.1 虚拟化视角:I/O 及管理的卸载 .............................................................................. 294
8.2.2 体系结构视角:以数据为中心 ................................................................................ 297
8.2.3 Nitro 系统 .................................................................................................................. 300
8.2.4 Mellanox Bluefield DPU ............................................................................................ 302
8.2.5 总结 ............................................................................................................................ 303
8.3 业务的异构加速 ................................................................................................................... 304
8.3.1 业务加速概述 ............................................................................................................ 304
8.3.2 DSA 加速:谷歌TPU 服务 ..................................................................................... 305
8.3.3 FPGA 加速:FaaS .................................................................................................... 306
8.3.4 异构计算架构演进 .................................................................................................... 308
8.4 存储的加速和定制 ............................................................................................................... 309
8.4.1 存储概述 .................................................................................................................... 309
8.4.2 热存储服务器:Xilinx NVMeoF 参考设计 ............................................................ 311
8.4.3 机架级冷存储:微软Pelican ................................................................................... 312
8.5 网络可编程和性能优化 ....................................................................................................... 314
8.5.1 数据中心网络综述 .................................................................................................... 314
8.5.2 数据面编程交换芯片 ................................................................................................ 317
8.5.3 高性能网络优化 ........................................................................................................ 318
8.6 硬件定制............................................................................................................................... 324
8.6.1 硬件定制概述 ............................................................................................................ 324
8.6.2 亚马逊的硬件定制 .................................................................................................... 325
8.6.3 OCP 开放计算项目 ................................................................................................... 327
第9 章 融合的系统 ........................................................................................................................... 329
9.1 软硬件融合系统栈 ............................................................................................................... 329
9.1.1 系统边界:多数据中心 ............................................................................................ 329
9.1.2 数据中心的系统堆栈 ................................................................................................ 330
9.2 分层的系统实现 ................................................................................................................... 332
9.2.1 迭代的系统 ................................................................................................................ 332
9.2.2 分域的硬件平台 ........................................................................................................ 333
9.2.3 不同层次的实现 ........................................................................................................ 334
9.2.4 软硬件协同设计 ........................................................................................................ 335
9.3 深层次开放合作 ................................................................................................................... 336
9.3.1 软硬件的距离越来越大 ............................................................................................ 336
9.3.2 互联网公司自研芯片的优劣势 ................................................................................ 336
9.3.3 深层次的开放合作 .................................................................................................... 337
参考文献 .............................................................................................................................................. 338

读者评论

相关博文

同系列书