基于RDMA的云服务能力实践与探索

这篇具有很好参考价值的文章主要介绍了基于RDMA的云服务能力实践与探索。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

01   背景   

      随着基于大数据大模型构建的数据系统越来越有商业价值,机器学习的玩家也越来越多,数据量越来越大。为解决海量数据在服务器之间的同步效率问题,RDMA(Remote Direct Memory Access) 技术逐渐走进了网络技术人员的视野。RDMA为什么能够成为机器学习中网络加速的一个炙手可热的技术呢?本文将给你一一解答,同时带来详细的干货分享。

02   传统TCP通信的痛点   

      TCP (Transmission Control Protocol )是网络协议族中的一个主要协议,为用户提供可靠、有序、错误检测的字节流传输服务。其来源于20世纪60年代美国国防部主导开发的一个网络项目ARPANET(Advanced Research Project Agency Net),当时运行的物理链路带宽只有几Mbps(Megabits per second),如今物理带宽已达到几十或几百Gbps(Gigabytes per second )。其已不能很好的适用于当前的高速网络环境。

      数据中心服务器广泛采用Linux操作系统,其收发报文流程如下图所示。

基于RDMA的云服务能力实践与探索,RDMA,智能网卡

图1 Linux内核收发报文流程

      报文接收过程主要耗时在于中断带来的任务栈切换,两次的内存复制,标准冗长的内核协议栈程序等操作。目前这一架构已经无法满足高性能计算、深度神经网络等业务场景下的时延和网络带宽要求。网络带宽和时延不提高,会导致CPU (Central Processing Unit)、GPU(Graphics Processing Unit)因为等待数据而空闲,算力的升级扩容并不能带来业务加速增效。

     RDMA技术致力于提供一个无损,超低时延,超高吞吐量的网络,进而提高CPU/GPU效能,能很好的解决深度神经网络学习和AI(Artificial Intelligence)训练中的带宽和时延问题。因而,RDMA网络是目前大模型训练平台的首选技术。

03   RDMA技术介绍   

3.1 RDMA技术介绍

      RDMA扩展网卡的能力,不需要CPU参与,就可以实现在两台通信的主机间完成内存数据复制操作。RDMA提供了三种技术规范实现方式,分别是IB (Infiniband), iWARP (Internet Wide Area RDMA Protocol) 和RoCE (RDMA over Converged Ethernet)。三种实现都支持IBTA (InfiniBand Trade Association) 制定的RDMA Verbs原语和数据类型,提供统一的业务编程接口供用户使用,达到业务无缝切换。

      IB需要专用的IB网卡和IB交换机。性能优,但网卡和交换机的价格昂贵,兼容性差。IWARP 技术栈需要通用以太网交换机和支持iWARP功能的以太网卡。报文依赖TCP连接,TCP连接需要占用内核资源,市场认可度低于RoCE。RoCE技术栈只需要通用以太网网卡和交换机,利用PFC(Priority-based Flow Control )和ECN (Explicit Congestion Notification) 拥塞控制算法实现无损传输。其综合性能较好,兼容性较优,价格也很普惠。RoCE市场认可度很高,用户可以根据自己的使用场景和实际需求选择对应的产品。

3.2 RoCE技术说明 

     RoCE最新版本为RoCEv2,IETF标准规定采用UDP (User Datagram Protocol) 4791端口来标识RoCEv2数据包。RoCEv1只支持二层MAC(Media Access Control)互访,RoCEv2支持三层IP访问,实现了报文的可路由功能,打破了业务的二层局域网部署限制。RoCEv2也被称作RRoCE ( Routable RoCE),其重新设计了拥塞控制算法。

      以太网络转发可以根据UDP的源端口做负载均衡,提高吞吐量。RoCEv2用UDP和IP 头部信息实现了原IB的网络层功能。RoCEv2 同时支持IPv4和IPv6。

基于RDMA的云服务能力实践与探索,RDMA,智能网卡

图2 RoCEv2 报文说明

3.3 RoCE性能

  • TCP vs RoCE

      由于业务需要使用RDMA加速的RPC (Remote Procedure Call )功能,选择Apache 社区bRPC( better Remote Procedure Call )进行时延和带宽测试评价,TCP和RoCEv2场景下的数据如图3所示。结果显示RDMA在带宽和时延方面要明显高于TCP网络,带宽几乎可以达原来的两倍。

基于RDMA的云服务能力实践与探索,RDMA,智能网卡

图3 TCP vs RoCE 带宽时延对比

  • RoCE vs IB

      由于最近大模型应用CHAT GPT比较流行,越来越多的厂商开始进行大模型训练的研究,推升了RoCE网络的需求,我们探索用RoCE网络代替IB,为GPU训练的提供合理的加速增效解决方案。为此对RoCE和IB的性能进行了测试验证对比。RoCE(单卡最大100Gbits/s) 单队列可达92.8Gbits/s ,16队列可达196Gbits/s (两个100G卡组合成Bond接口)。IB带宽(单卡最大200Gbits/s) 单队列可以达到 185Gbits/s, 16个队列测试可达196Gbits/s。时延接近,最短时延在2us左右。RoCE方案更加具有性价比和大规模部署应用前景。

基于RDMA的云服务能力实践与探索,RDMA,智能网卡

图4 RoCE vs IB 带宽对比

04

   OPPO云RDMA能力建设   

4.1 RDMA资源调度平台

      云原生时代,从一开始就规划了RDMA的弹性伸缩能力,用户可以根据业务需要申请RDMA卡,用于业务加速。系统主要组件图如图5所示。

基于RDMA的云服务能力实践与探索,RDMA,智能网卡

图5 资源调度架构图

      下面从基础设虚拟化层、无损网络拥塞控制算法、资源管理与调度、智能业务运营系统四个维度说明RDMA云化所做的工作。

  • 基础设施虚拟化层

      将一个物理网卡虚拟成若干个相互独立的子卡,用户可以根据需要申请一个或者多个RDMA卡。同时网络虚拟化组件可将节点上可用RDMA子卡数目上报给系统的调度器。调度器根据任务请求进行分配和调度。容器业务可以使用RDMA业务。

  • 无损网络拥塞控制算法

      在服务器和交换机对RDMA流量进行标记,即PFC和ECN的方式来进行拥塞控制,服务器上通过DSCP(Differentiated Services Code Point )位标识RDMA业务流,交换机根据DSCP进行流分类、拥塞管理和死锁检测。基础网络架构采用CLOS架构建设,非阻塞多交换网,网络保证足够高的加速比。     

  • 资源管理与调度

      数字化管理RoCE和IB等可用的网卡类型及可用资源,系统根据用户的业务申请及资源请求,灵活调度计算实例到对应计算节点上。

  • 智能业务运营系统

      对RDMA的网卡和交换机进行监控,实时了解系统资源使用率和健康情况,及时介入业务扩容和故障处理等紧急情况。

   4.2 ORPC业务   

4.2.1 ORPC设计

      虽然供应商提供了通用的开发接口,但这些接口针对特定的RDMA业务场景,如HPC,GPU训练等高性能计算领域,无法满足普通RPC业务的需求。RDMA技术涉及到底层专用硬件、通信协议、特有的Verbs接口及晦涩难懂的C语言等问题。业务用户自主开发基于RDMA的应用是有一定困难的。ORPC可以说做到了让用户业务无感知的平滑迁移到RoCE网络上来,用户只需要专注于业务研发,无需关注内核驱动适配,性能调优,软件版本兼容性等问题,实现真正的高效业务迁移。

      OPPO云平台开发集成了ORPC( Oppo Remote Procedure Call)应用,天然支持RoCE,帮助用户无缝切换到RDMA编程。ORPC同时提供TCP和RDMA通信能力,兼容TCP和RDMA模式,用户根据需要选择接入业务方式,如图6所示。其业务兼容性高,ORPC 同时开启TCP/RDMA,客户端根据自身情况,选择TCP/RDMA接入。ORPC能够灵活适配业务使用的特定版本的Protocolbuffer,gflags等中间件依赖库。

基于RDMA的云服务能力实践与探索,RDMA,智能网卡

图6  ORPC通信场景

      ORPC采用直接调用Verbs接口的方式进行业务开发,之所以没有使用社区的UCX(Unified Communication X)框架是因为多一次C库调用会产生对第三方产品的依赖,实际测试性能和稳定性没达到预期。第三方的RDMA_CM库在虚拟容器网络中的兼容性差,运行不够稳定,会发生系统崩溃。

      ORPC优先支持C++语言,后期计划推Golang版本的ORPC。

4.2.2 ORPC实践

实测ORPC在单流和多流场景下带宽提升都很明显。100G网卡可以测试到80-90G的样子。我们的推理、训练采用RoCE进行加速验证发现,RoCE可以显著提高升推理的性能,收益提升明显。对于其他被时延和带宽困扰的业务,可以尝试RoCE加速,相信会带来一定的收益。

基于RDMA的云服务能力实践与探索,RDMA,智能网卡

图7  ORPC 带宽对比图

  • 业务改造

      服务端默认同时工作在RDMA模式和TCP会话模式,用户可以通过参数设置工作方式,如果是RDMA方式,需要指定RDMA设备,如果不指定或者端口索引指定错误,会导致程序异常。ORPC建立会话接口只需要提供必要连接参数即可,应用程序逻辑无需更改。

1)服务端必选参数说明:

-rdma_device     说明使用的RDMA设备

-rdma_gid_index  RDMA设备的索引

-use_rdma     true 为rdma,默认tcp

-port 指定监听端口

2)客户端参数:

-rdma_device     说明使用的RDMA设备

-rdma_gid_index  RDMA设备的索引

-use_rdma     true 为rdma,默认tcp

  • 自动生成的roce yaml文件

apiVersion: v1kind: Podmetadata:  name: if-roce-test231  namespace: nethouse-testspec:  nodeName: 1x.x.x.231  containers:    - name: if-roce-test231      image: hub.x.y.z/inference/inference:rdma-1.0.0      resources:        limits:          devices.csp.io/rdma: "1"        requests:          devices.csp.io/rdma: "1"      volumeMounts:        - mountPath: /gx-infer          name: gx-infer  volumes:   - name: gx-infer     hostPath:       path : /home/service/var/data       type: Directory... ...
  • 容器运行命令

#docker run --net container:7a9bc59dd57afe8e91504ecefcdf720097fb919fc76a9aab7ba13ac265b93799 --privileged --device=/dev/infiniband/rdma_cm --device=/dev/infiniband/uverbs1 --name orpc ... hub.x.y.z/orpc-rdma/orpc-rdma-depy:v1.0

05    RDMA应用前景与展望      

      以RoCE为代表的RDMA技术正展示着令人兴奋的应用潜力。ORPC只是其中一个应用,实践收益得到了深度学习推理等应用的首肯。相信在不久的未来,RoCE承载的大模型训练平台会越来越成熟。同时NVMe over RoCE 也会逐步落地。

原文链接:  

基于RDMA的云服务能力实践与探索​​​​​​​​​​​​​​文章来源地址https://www.toymoban.com/news/detail-845605.html

到了这里,关于基于RDMA的云服务能力实践与探索的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RDMA vs InfiniBand 网卡接口如何区分?

     (该架构图来源于参考文献)  高性能计算网络,RoCE vs. InfiniBand该怎么选? 新 RoCEv2 标准可实现 RDMA 路由在第三层以太网网络中的传输。RoCEv2 规范将用以太网链路层上的 IP 报头和 UDP 报头替代 InfiniBand 网络层。这样,就可以在基于 IP 的传统路由器之间路由 RoCE。  RoCE v1协议:

    2024年01月25日
    浏览(31)
  • 某制造企业基于 KubeSphere 的云原生实践

    随着业务升级改造与软件产品专案的增多,常规的物理机和虚拟机方式逐渐暴露出一些问题: 大量服务部署在虚拟机上,资源预估和硬件浪费较大; 大量服务部署在虚拟机上,部署时间和难度较大,自动化程度较低; 开发人员和运维人员,由于开发和部署服务环境不同,服

    2024年02月15日
    浏览(30)
  • 极光笔记|极光消息推送服务的云原生实践

    极光始终秉承“以开发者为中心”的战略导向 ,极光推送(JPush)是国内领先的消息推送服务。极光推送(JPush)本质上是一种软件付费应用程序,结合当前主流云厂商基础施设,逐渐演进成了云上SaaS服务。作为SaaS服务,必然要考虑云原生架构。因此,在极光推送(JPush)日

    2024年03月25日
    浏览(35)
  • 某物联网数智化园区行业基于 KubeSphere 的云原生实践

    作为物联网 + 数智化园区一体化解决方案提供商,我们致力于为大中型园区、停车场提供软硬件平台,帮助园区运营者实现数字化、智能化运营。 在使用 K8s 之前我们使用传统的方式部署上线,使用 spug(一款轻量级无 Agent 的自动化运维平台) 自动化在单节点完成代码部署上

    2024年02月09日
    浏览(35)
  • 博通BCM575系列 RDMA 网卡驱动 bnxt_re 分析(一)

    整个BCM系列驱动分成以太网部分(bnxt_en.ko)和RDMA部分(bnxt_re.ko), 两个模块之间通过内核的auxiliary_bus进行管理.我们主要分析下bnxt_re驱动. 这个驱动的核心是 qplib_fp.c, 这个文件主要包含了驱动的数据路径, 包括Post Send, Post Recv, Poll CQ流程的实现. ib_verbs.c主要是实现了上层的Verbs接口

    2024年02月08日
    浏览(24)
  • 基于AWS云服务构建智能家居系统的最佳实践

    在当今智能家居时代,构建一个安全、高性能、可扩展和灵活的智能家居系统已经成为许多公司的目标。亚马逊网络服务(AWS)提供了一系列云服务,可以帮助企业轻松构建和管理智能家居系统。本文将探讨如何利用AWS云服务构建一个智能家居系统,并分享相关的最佳实践。 系统架

    2024年03月26日
    浏览(77)
  • Spark内容分享(二十七):阿里云基于 Spark 的云原生数据湖分析实践

    目录 Spark 与云原生的结合 1. 传统 Spark 集群的痛点 2. Spark 与云原生结合的优势 Spark on K8s 原理介绍 1. Spark 的集群部署模式 2. Spark on K8s 的部署架构 3. Spark on K8s 部署架构——对比 4. Spark on K8s 社区进展 5. Spark 3.3 新特性介绍 Spark on K8s 在阿里云 EMR 上的实践 1. EMR Spark on ACK 2. 充分

    2024年01月15日
    浏览(83)
  • 人工智能与人类智能的解决问题能力在人工智能应用领域的实践

    人工智能(Artificial Intelligence, AI)是一门研究如何让计算机模拟人类智能行为的科学。人类智能包括学习、理解语言、认知、决策等多种能力。人工智能的目标是让计算机具备类似于人类智能的能力,以解决复杂的问题。 在过去的几十年里,人工智能技术已经取得了显著的进展

    2024年02月20日
    浏览(41)
  • 为大模型工程提效,基于阿里云 ACK 的云原生 AI 工程化实践

    作者:张凯 以 GPT(Generative Pre-trained Transformer)和 Diffusion model 为代表的大语言模型(Large language model,LLM)和生成式人工智能(Generative artificial intelligence,GAI)在过往两年,将人们对 AI 的梦想与期待推向了一个新高峰。这一次,AI 带来的“智能”效果和“涌现”能力,吸引

    2024年01月22日
    浏览(38)
  • FPGA实现 RDMA NIC 10G UDP协议栈网卡,纯verilog代码编写,提供工程源码和技术支持

    FPGA实现 NIC 10G 网卡,纯verilog代码编写,提供3套工程源码和技术支持 网络接口控制器(NIC)是计算机与网络进行交互的网关。NIC构成了软件协议栈和网络之间的桥梁,该桥梁的功能定义了网络接口。网络接口的功能以及这些功能的实现都在迅速发展。这些变化是由提高线速和

    2024年02月10日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包