作为连接底层硬件和上层工作负载的桥梁,操作系统是发挥硬件潜能、保障业务质量的技术底座。自从 OpenCloudOS Intel SIG 成立后,社区和英特尔就将第四代至强可扩展处理器(Sapphire Rapids,简称为 SPR )与 OpenCloudOS 的适配作为 Intel SIG 的首要工作。
通过双方的深度合作,反复打磨,OpenCloudOS 成功实现了对 Intel SPR 产品关键特性的全量支持,帮助用户在 OpenCloudOS 系统中更好的使用 SPR 系列处理器。
一、SPR 系列处理器特性概述
在企业和机构寻求扩大规模、降低成本和提供新服务的过程中,通过使用易于扩展的计算平台来满足现在和未来的各种部署成为了强烈的需求。
针对这一需求,英特尔研发了第四代至强可扩展处理器 SPR 产品,采用全新架构,单核性能比上一代产品更高,每路可以配备多达 60 个内核,支持单路、双路、四路或八路配置。
为了与内核数增加这种情况相匹配,SPR 产品在内存和输入/输出 (I/O) 子系统方面也做了相应改进。 DDR5 内存提供的带宽和速度与 DDR4 相比提高多达 1.5 倍,速率达到 4800 MT/s。
SPR 系列处理器具有每路 80 条 PCIe Gen5 通道的特点,与之前的平台相比,I/O 得到显著提升。同时,SPR 系列处理器还可提供 CXL 1.1 连接,支持高网络带宽并使附加加速器能够高效运行, 可以根据工作负载要求的变化灵活扩展和调整。
此外,SPR 系列处理器还具有以下突出特点:
• 进一步提升网络、存储和计算性能,并通过将繁重的任务卸载到英特尔基础设施处理单元,来提高 CPU 利用率;
• 通过 Intel UPI 2.0 提高多路带宽,带宽高达 16 GT/s;
• 使用 Intel Speed Select 技术,调整 CPU配置,满足特定工作负载的需求;
• 增加三级缓存 (LLC)共享容量,所有内核共享多达100 MB LLC;
• 通过硬件增强型安全功能加强您对安全态势的掌控;
• 使用 Intel Virtual RAID on CPU,从而无需再用单独的 RAID 卡。
二、SPR产品内置加速器解析
CPU 算力的提升并不是无限的。在增加 CPU 核数、提高带宽的同时,使用内置加速器是进一步提升性能的有效方法。SPR 系列处理器内置了多种加速器,旨在为人工智能 (AI)、数据分析、存储、科学计算等方面快速增长的工作负载提供性能加速。
通过加速器承载如数据传输、分析、加解密、压缩等关键任务,SPR 系列处理器可以提升特定工作负载的性能,同时释放 CPU 资源用于处理其他业务。加速器内置到 CPU 中,避免了向外部传输数据的瓶颈和时延,也从整体上降低了系统成本和复杂度。
SPR 系列处理器内置加速器包括:
1、矩阵运算加速器(Advanced Matrix Extensions,简称 AMX)
AMX 是 SPR 产品实现深度学习训练和推理升级的利器,不仅进一步拓展了内置 AI 加速技术,还带来显著的性能增益,凭借更优的矢量指令和矩阵乘法运算,AMX 可以显著提高推荐系统、自然语言处理、图像识别、媒体处理分发以及媒体分析等深度学习工作负载的性能,非常适合此类工作负载。
2、动态负载均衡器(Dynamic Load Balancer,简称 DLB)
DLB 是一个由队列和仲裁者组成的硬件队列管理系统,可以自动平衡不同 CPU 间的工作负载,确保 CPU不会因过载而导致系统性能降低。随着系统负载的变化,Intel DLB 将网络数据动态地分配到多个 CPU 内核上,基于硬件高效地实现负载均衡。
3、数据流加速器(Data Stream Accelerator,简称 DSA)
DSA 介于 DRAM、高速缓存和处理器内核之间,它在 CPU 上运行,并跨 I/O 扩展到附加内存和存储,以及网络资源。作为英特尔的新一代直接内存访问 (DMA)引擎,它可以加速易失性内存和持久内存之间的数据传输,支持虚拟化内存和 I/O 。
4、内存分析加速器( In-Memory Analytics Accelerator,简称 IAA)
IAA 专为提升数据库和数据分析性能而设计。它提供吞吐量压缩和解压缩以及原始分析函数。Intel IAA 可以加速内存数据的压缩/解压缩,从而缩小内存占用空间、实现快速数据交换、提升内存数据处理速度。数据传输时间更短、CPU 工作量更小,可以有效提高 RocksDB、 Redis、 Cassandra 和 MySQL 等内存数据库、开源数据库及数据存储每秒处理的事务量。
5、数据保护与压缩技术(QuickAssist Technology,简称 QAT)
QAT 之前作为外部加速器提供,现在成为 SPR 系列处理器的内置加速器,使得时延较上一代产品更低。QAT 的一个经典应用是加速虚拟机迁移。虚拟机在分布式多云架构间移可能会因为虚拟机内存大、数据变化快而导致迁移速度缓慢,影响用户实际云业务的灵活性与敏捷性。QAT 能实现更快的虚拟机热迁移速度,并降低 CPU 利用率。当数据在服务器之间传递之前进行压缩时,可以节省大量的时间和网络带宽。
三、OpenCloudOS 与 SPR 产品适配实践
操作系统对 SPR 产品的良好支持,是提升工作负载性能、充分发挥加速器能力的关键。聚合了众多操作系统、云平台、软硬件厂商的 OpenCloudOS 操作系统社区,与 SPR 产品的适配,保证了系统在 SPR 平台上稳定高效运行,实现关键特性的性能在虚拟机及物理机上均达到了预期。
SPR 产品的全新特性是在 Linux upstream 的版本更新中逐步合入到 Linux 主线的,Linux upstream 自身与 SPR 相关代码体量已经相当庞大。OpenCloudOS 的内核版本是基于 v5.4-LTS,考虑 v5.4 到 Linux upstream 版本之间的代码差异,特别是 v5.4 内核中一些较老版本的模块代码很难通过常规的移植方式适应 SPR 的特性需求。OpenCloudOS 与 SPR 的适配工作量巨大,对 OpenCloudOS 内核开发提出了极高的技术挑战。
面对挑战,OpenCloudOS 社区和英特尔紧密合作,制定了关键模块升级、常规特性移植的适配策略。通过对 Linux upstream 和 Intel SPR 参考代码的全面分析,筛选出合适的 Patch 进行升级和移植工作,总共回合了超过 2300 笔 Patch。
例如,针对关键的 IOMMU 模块合入了 750+笔 Patch,KVM 模块则合入了 100+ 笔 Patch,将 v5.4 内核中的 IOMMU 和 KVM 模块升级到了接近于 Upstream v5.18 版本,保证了SPR 对子机的加速器透传。OpenCloudOS 在业界率先完整实现了 SPR 支持的虚拟化关键技术 SIOV(Scalable I/O Virtualization)和 Guest SVM(Shared Virtual Memory)。
为了降低应用开发复杂度,提升用户体验,OpenCloudOS 为 SPR 上的这些加速器,特别提供了一站式部署,直接提供了 rpm 包,用户可以执行 dnf install kernel-intel 来安装使用,也为后续的移植提供了方便。
BERT 是一项广泛应用于自然语言处理 (NLP) 业务的机器学习技术,在搜索、机器翻译、人机交互等服务中得到了全面应用。英特尔与腾讯合作,应用英特尔 AMX 对 BERT 推理性能进行了优化,在实际场景中,与上一代平台相比,BERT 模型吞吐率达到了 2 至 3 倍的显著提升,进一步发挥 BERT 模型在 NLP 任务中的性能优势,提升了推理效率。
针对 AMX 加速器,适配小组对 X86 的浮点运算指令集进行了升级,将其同步到了 v5.18 版本。在 FPU 部分合入 220+ 笔 Patch 的基础上,加入了 AMX 主机和虚拟化的支持。
DLB 技术使用在无锁定速率限制中,实现了 Linux 内核模式和用户模式下的精确速率限制,可以灵活应用于不同场景。在腾讯云的网络限流方案探索中,基于英特尔 DLB 实现了对全局令牌桶的无锁管理,限流误差率从之前有锁方案的 20% 精确到了 1%。
通过内置加速器和软件优化,SPR 产品在真实场景下的目标工作负载上实现了出色的性能功耗比,可以提高 CPU 利用率,降低功耗,最终帮助企业灵活地跨多个云和边缘环境部署多种服务,加速业务转型,实现可持续发展目标。
四、小结
以 OpenCloudOS 8 为例,英特尔提供 out of tree 的 DLB driver 安装源码(DLB 的 driver 并不在 Linux kernel 的源码中),可以直接在 OpenCloudOS 8 的编译环境中编译安装成功,DLB driver 也可以正确挂载到 OpenCloudOS 8 发行版的内核中。无需进一步的适配,便可以使用 DLB 的强大功能。
同时,基于英特尔 DLB 功能加速云原生网络的传输能力,以及减少网络延迟时间方案的代码,也可以直接在 OpenCloudOS 8 的编译环境中编译并安装,而且获得的传输速度以及网络延迟时间收益都与 CentOS 系统中运行的结果一致,而方案运行的稳定性在 OpenCloudOS 发行版上会更胜一筹。
在 OpenCloudOS 社区和英特尔的共同努力适配下,用户能在企业级稳定的操作系统上,充分发挥 SPR 产品的性能,同时实现高效与稳定。
在 OpenCloudOS 强大的兼容性下,用户能够在几乎零适配的情况下使用英特尔 SPR 产品,实现在 OpenCloudOS 上正常的使用和运行。所有基于 Linux X86 解决方案的企业,都可以在 OpenCloudOS 和 英特尔 SPR 的方案中,减少开发难度,缩短部署时间,实现更好的兼容性。