• 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

Direct xPU:一种新型节点间通信优化的分布式异构计算架构

李仁刚, 王彦伟, 郝锐, 肖麟阁, 杨乐, 杨广文, 阚宏伟

李仁刚, 王彦伟, 郝锐, 肖麟阁, 杨乐, 杨广文, 阚宏伟. Direct xPU:一种新型节点间通信优化的分布式异构计算架构[J]. 计算机研究与发展, 2024, 61(6): 1388-1400. DOI: 10.7544/issn1000-1239.202440055
引用本文: 李仁刚, 王彦伟, 郝锐, 肖麟阁, 杨乐, 杨广文, 阚宏伟. Direct xPU:一种新型节点间通信优化的分布式异构计算架构[J]. 计算机研究与发展, 2024, 61(6): 1388-1400. DOI: 10.7544/issn1000-1239.202440055
Li Rengang, Wang Yanwei, Hao Rui, Xiao Linge, Yang Le, Yang Guangwen, Kan Hongwei. Direct xPU: A Novel Distributed Heterogeneous Computing Architecture Optimized for Inter-node Communication Optimization[J]. Journal of Computer Research and Development, 2024, 61(6): 1388-1400. DOI: 10.7544/issn1000-1239.202440055
Citation: Li Rengang, Wang Yanwei, Hao Rui, Xiao Linge, Yang Le, Yang Guangwen, Kan Hongwei. Direct xPU: A Novel Distributed Heterogeneous Computing Architecture Optimized for Inter-node Communication Optimization[J]. Journal of Computer Research and Development, 2024, 61(6): 1388-1400. DOI: 10.7544/issn1000-1239.202440055
李仁刚, 王彦伟, 郝锐, 肖麟阁, 杨乐, 杨广文, 阚宏伟. Direct xPU:一种新型节点间通信优化的分布式异构计算架构[J]. 计算机研究与发展, 2024, 61(6): 1388-1400. CSTR: 32373.14.issn1000-1239.202440055
引用本文: 李仁刚, 王彦伟, 郝锐, 肖麟阁, 杨乐, 杨广文, 阚宏伟. Direct xPU:一种新型节点间通信优化的分布式异构计算架构[J]. 计算机研究与发展, 2024, 61(6): 1388-1400. CSTR: 32373.14.issn1000-1239.202440055
Li Rengang, Wang Yanwei, Hao Rui, Xiao Linge, Yang Le, Yang Guangwen, Kan Hongwei. Direct xPU: A Novel Distributed Heterogeneous Computing Architecture Optimized for Inter-node Communication Optimization[J]. Journal of Computer Research and Development, 2024, 61(6): 1388-1400. CSTR: 32373.14.issn1000-1239.202440055
Citation: Li Rengang, Wang Yanwei, Hao Rui, Xiao Linge, Yang Le, Yang Guangwen, Kan Hongwei. Direct xPU: A Novel Distributed Heterogeneous Computing Architecture Optimized for Inter-node Communication Optimization[J]. Journal of Computer Research and Development, 2024, 61(6): 1388-1400. CSTR: 32373.14.issn1000-1239.202440055

Direct xPU:一种新型节点间通信优化的分布式异构计算架构

基金项目: 广东省重点领域研发计划项目 (2021B0101400001)
详细信息
    作者简介:

    李仁刚: 1980年生. 博士,正高级工程师. CCF会员. 主要研究方向为异构计算

    王彦伟: 1985年生. 博士,副研究员. CCF会员. 主要研究方向为异构计算

    郝锐: 1983年生. 硕士,高级工程师. CCF会员. 主要研究方向为异构计算

    肖麟阁: 1994年生. 博士. 主要研究方向为异构计算

    杨乐: 1990年生. 硕士. 主要研究方向为异构计算

    杨广文: 1963年生. 博士,教授,博士生导师. CCF会员. 主要研究方向为高性能计算

    阚宏伟: 1975年生. 硕士,教授-正高级工程师. CCF高级会员. 主要研究方向为异构计算

    通讯作者:

    杨乐: 肖麟阁 (xiaolinge@ieisystem.com)

  • 中图分类号: TP393

Direct xPU: A Novel Distributed Heterogeneous Computing Architecture Optimized for Inter-node Communication Optimization

Funds: This work was supported by the Key-Area Research and Development Program of Guangdong Province (2021B0101400001).
More Information
    Author Bio:

    Li Rengang: born in 1980. PhD, Senior engineer. Member of CCF. His main research interest includes heterogeneous computing

    Wang Yanwei: born in 1985. PhD, associate researcher. Member of CCF. His main research interest includes heterogeneous computing

    Hao Rui: born in 1983. Master, Senior engineer. Member of CCF. His main research interest includes heterogeneous computing

    Xiao Linge: born in 1994. PhD. His main research interest includes heterogeneous computing

    Yang Le: born in 1990. Master. Her main research interest includes heterogeneous computing

    Yang Guangwen: born in 1963. PhD, professor, PhD supervisor. Member of CCF. His main research interest includes high performance computing

    Kan Hongwei: born in 1975. Master, professor-Senior engineer. Senior member of CCF. His main research interest includes heterogeneous computing

  • 摘要:

    人工智能大模型应用的爆发式增长,使得难以依靠单一节点、单一类型的算力实现应用的规模部署,分布式异构计算成为主流选择,而节点间通信成为大模型训练或推理过程中的主要瓶颈之一. 目前,主要由GPU,FPGA等头部芯片厂商所主导的各种计算架构的节点间通信方案还存在一些问题. 一方面,为了追求极致的节点间通信性能,一部分架构选择使用协议简单而可扩展性差的点对点传输方案. 另一方面,传统的异构计算引擎(例如GPU)虽然在内存、计算管线等算力要素方面独立于CPU,但在通信要素方面却缺少专属的网络通信设备,需要完全或部分借助于CPU通过PCIe等物理链路来处理异构计算引擎与共享网络通信设备之间的通信. 所实现的Direct xPU分布式异构计算架构,使得异构计算引擎在算力要素和通信要素两方面均具有独立的、专属的设备,实现了数据的零拷贝,并进一步消除了节点间通信过程中处理跨芯片传输数据所带来的能耗和延迟. 测试结果表明,Direct xPU取得了与追求极致的节点间通信性能的计算架构相当的通信延迟,带宽接近物理通信带宽的上限.

    Abstract:

    The explosive growth of the application of large-scale artificial intelligence models has made it difficult to achieve the scale deployment of applications relying on a single node or a single type of computing architecture. Distributed heterogeneous computing has become the mainstream choice, and inter-node communication has become one of the main bottlenecks in the training or inference process of large models. Currently, there are still some deficiencies in the inter-node communicating solutions dominated by leading chip manufacturers. On the one hand, some architectures choose to use a simple but less scalable point-to-point transmission scheme in order to pursue the ultimate inter-node communication performance. On the other hand, traditional heterogeneous computing engines (such as GPUs) are independent of CPUs in terms of computing resources such as memory and computing cores, but they lack dedicated communicating network devices in terms of communication resources and need to rely entirely or partially on CPUs to handle transmission between heterogeneous computing engines and the shared communicating network device through physical links such as PCIe. The proposed Direct xPU distributed heterogeneous computing architecture in this article enables heterogeneous computing engines to have independent and dedicated devices in both computing and communication resources, achieving zero-copy data and further eliminating the energy consumption and latency associated with cross-chip data transfer during inter-node communication. Evaluations show that Direct xPU achieves communication latency comparable to computing architectures pursuing ultimate inter-node communication performance, with bandwidth close to the physical limit.

  • 场景流(scene flow, SF)是定义在2个连续场景中表面点的3D运动场,是一个感知动态场景的基本工具.随着自动驾驶、人机交互等应用的大规模商业落地,感知系统需要精确感知环境中的动态运动物体[1-2],因此精确估计场景流成为近年来的研究热点.由LiDAR等3D传感器直接获得的点云数据可以得到场景中点的精确位置信息,因此点云数据被广泛应用于场景流估计任务中.点云数据仅包含3D点坐标,因此在稀疏点、边缘点处会出现特征信息不足的现象,在这些点上的匹配会更加困难,这些匹配困难点严重影响场景流估计的整体准确度.

    近几年的方法都是关注2个连续点云间对应的匹配关系来优化场景流的估计精度,FlowNet3D[3]在单尺度上获取匹配关系;HPLFlowNet[4]使用双边卷积层(bilateral convolutional layer, BCL),在多个尺度上联合计算匹配关系[5];PointPWC-Net[6]在多个尺度上建立用于匹配的代价体(cost volume, CV)和重投影(warping)模块.但这些方法仅考虑了点云间的匹配关系,缺少优化匹配困难点的方式. 如图1(a)所示,图片中的点为场景的一部分,其中红色代表该点的端点误差(end point error, EPE)小于0.05 m;绿色代表该点的端点误差大于等于0.05 m且小于0.3 m;蓝色代表该点的端点误差大于等于0.3 m.在图1(a)虚线框中,PointPWC-Net在一个局部邻域内(一个汽车整体)同时有匹配准确的红色点和匹配困难的蓝色点.本文提出的基于邻域一致性的点云场景流传播更新方法(neighborhood consistency propagation update method,NCPUM)方法根据点云相邻点的相关性,即属于源点云的场景流在足够小的邻域内很大程度上存在一致性,将局部邻域中的准确场景流传播到匹配困难点上.可以有效地减少匹配困难点场景流的误差,提升整体准确度.图1(b)为经过NCPUM方法优化后的效果,可以看到在虚线框内的汽车点和匹配困难的蓝色点消失,匹配较差的绿色点明显减少,匹配准确的红色点明显增多.

    图  1  2种方法的可视化对比
    Figure  1.  Visual comparison of the two methods

    具体来说,NCPUM假设利用点云内相邻点的相关性使场景流估计具有邻域一致性,通过置信度图传播更新提升整体场景流估计的准确度.基于该假设,NCPUM设计了置信度预测模块和场景流传播模块,对骨干网络输出的初始场景流预测置信度图,经过场景流传播模块在具有一致性的邻域内将场景流从高置信度点集向低置信度点集传播,改善邻域内匹配困难点的准确度.本文的贡献有2方面:

    1)根据场景流的邻域一致性设计了场景流传播优化方法NCPUM.该方法使用场景流在局部邻域内传播的方式,改善估计效果.NCPUM的评估结果优于之前的工作,证明了该方法的有效性.

    2)NCPUM在Flyingthings3D和KITTI数据集上的测试结果在准确度上达到国际先进水平,并更换不同的骨干网络进行了测试,验证了NCPUM对于不同的骨干网络都能明显提升其估计准确度.

    在Vedula等人[7]工作中,定义和介绍了场景流的概念,之后许多工作[8-12]在多种类型的数据集上进行场景流的估计,随着最近几年基于点云的深度学习方法[13-15]的发展,可以在点云上直接估计场景流.其中一个使用可学习的深度网络来估计点云上的场景流的方法是FlowNet3D[3],它将下采样的特征进行嵌入,得到点云间的运动信息,通过上采样方法回归得到对应点的场景流.FlowNet3D只在单一尺度上进行了特征的嵌入,单一尺度的感受野无法在大尺度和小尺度运动上同时获得精确的估计结果. HPLFlowNet[4]使用双边卷积在多个尺度上联合计算匹配度,但限于内存使用限制无法在上采样过程中细化场景流.而PointPWC-Net[6]遵循了光流估计的“由粗到细”(coarse to fine, CTF)的范式,在多个尺度的局部范围内使用PointConv[13]建立用于匹配的代价体和重投影的模块.FLOT[16]通过最优传输(optimal transport),优化源点云和目标点云的匹配关系.这些关注于匹配关系的方法得到了很好的场景流估计结果.HALFlow[17]使用注意力机制,嵌入更多的位置信息,获得更准确的场景流估计结果.

    文献[34,6,13,1617]都是通过匹配连续点云间的特征回归出对应源点云的场景流,在匹配困难点处没有额外的优化措施.本文方法在源点云中根据相邻点的相关性,在邻域内改善匹配困难点的场景流,获得优于匹配方法的估计准确度.

    之前的场景流估计工作中都会注重在邻域内提取特征,根据提取到的特征来进行连续点云间的匹配[3-4,6,17-19],回归出点云间的场景流.但这只是在提取的特征上包含了邻域信息,在邻域特征信息不足的点上会出现匹配困难的情况.在同样使用邻域信息进行匹配的任务中[20-21],LiteFlowNet3[20]根据局部光流一致性,在代价体上对邻域内的点进行优化,获得了相对于匹配方法更好的光流估计精度.受该想法的启发,我们合理假设在2个连续场景中,一个合适的邻域内的点共享相同的运动模式,因此在邻域内的场景流具有一致性.NCPUM根据初始场景流显式的估计置信度,在邻域内的高置信度点向低置信度点进行传播更新.与现有方法不同的是,NCPUM的更新操作是在场景流上而非在特征上,所依赖的也不是特征上的相关或者相似,而是点云邻域内场景流的一致性.

    NCPUM从场景流邻域一致性假设出发,构建了一种对场景流在邻域内传播更新的优化方法.具体网络框架如图2所示,分别构建置信度预测模块和场景流传播模块实现NCPUM优化方法.首先是估计初始场景流的骨干网络,在得到初始场景流以及对应特征之后,送入置信度预测模块;然后在置信度预测模块中使用编码器-解码器(encoder-decoder)的网络结构,对输入的场景流进行置信度图的预测,置信度图用来表示各个场景流估计是否准确;最后在场景流传播模块中,根据预测得到的置信度图将场景流从高置信度点集向低置信度点集传播,更新低置信度点的场景流,降低匹配困难点对准确度的影响.

    图  2  网络结构图
    Figure  2.  Network structure

    场景流估计任务的最终目标是估计2个连续点云之间的运动矢量,因此定义2个连续的3D点云场景:源点云$P=\left\{{\boldsymbol{x}}_{i}\right|i=\mathrm{1,2},…,{n}_{1}\}$,和目标点云$Q=\left\{{\boldsymbol{y}}_{j}\right| j= \mathrm{1,2},…,{n}_{2}\}$,其中${\boldsymbol{x}}_{i},{\boldsymbol{y}}_{i}\in {\mathbb{R}}^{3}$并且$ i $并不必须与$ j $相等.源点云$ P $中的点运动到目标点云$ Q $中的对应点的运动矢量场为${{F}}=({\boldsymbol{f}}_1 … {\boldsymbol{f}}_{n_1})$,该运动矢量场即为最终估计的场景流.估计的场景流是基于源点云$ P $的,因此场景流与源点云中的点一一对应.

    在估计初始场景流时,使用的是PointPWC-Net作为骨干网络,该方法使用2个连续的点云作为输入,使用特征金字塔的结构,在每个分辨率尺度上都进行一次源点云$ P $到目标点云$ Q $的重投影,之后进行匹配度代价体的计算,代价体定义了逐点的匹配程度,PointPWC-Net对代价体进行回归得到逐点的场景流.

    在PointPWC-Net中,构建了4个尺度的特征金字塔,在得到4个尺度的点特征后,场景流的估计会从较粗的尺度进行,遵循由粗到细的规范.估计了当前尺度的场景流后,会上采样到更精细的尺度,将上采样的场景流对源点云进行重投影,在当前尺度上对重投影后的点云和对目标点云估计一个相对于上一个尺度场景流的残差,以完成对估计场景流的精细化.将整个重投影过程进行公式化定义:

    $${{{P}}}_{\mathrm{w}}=\{{\boldsymbol{p}}_{\mathrm{w},i}={\boldsymbol{p}}_{i}+{\boldsymbol{f}}_{i}|{\boldsymbol{p}}_{i}\in P,{\boldsymbol{f}}_{i}\in {F}^{\mathrm{u}\mathrm{p}}{\}}_{i=1}^{{n}_{1}},$$ (1)

    其中$ P $为源点云,$ {P}_{\mathrm{w}} $为重投影后的点云,$ {F}^{\mathrm{u}\mathrm{p}} $为从上一个尺度上采样的场景流.

    在PointPWC-Net中,对2个点云以及对应的特征进行了代价体的构建. 假设$ {\boldsymbol{g}}_{i}\in {\mathbb{R}}^{C} $是对应目标点云点$ {\boldsymbol{p}}_{i}\in P $的特征,$ {\boldsymbol{h}}_{j}\in {\mathbb{R}}^{C} $是对应目标点云点$ {\boldsymbol{q}}_{i}\in Q $的特征,那么对应2个点之间的匹配度定义为:

    $$Cost({\boldsymbol{p}}_{i},{\boldsymbol{q}}_{j})=M\left(concat\right({\boldsymbol{g}}_{i},{\boldsymbol{h}}_{j},{\boldsymbol{q}}_{j}-{\boldsymbol{p}}_{i}\left)\right),$$ (2)

    使用多层感知机(multilayer perceptron)$ M $将2点之间的潜在关系和点与点之间的距离串联后进行学习.在有了点对点的匹配度之后,将其组成当前尺度的代价体,PointPWC-Net根据源点云点到目标点云邻域点的距离对代价体加权,即对于1个源点云的点$ {\boldsymbol{p}}_{i}\in P $,得到它在目标点云$ Q $上的1个邻域$ {N}_{Q}\left({\boldsymbol{p}}_{i}\right) $,再根据目标点云邻域中的每个点到源点云点的距离得到权重C.

    $$C=\displaystyle \sum _{{\boldsymbol{q}}_{j}\in {N}_{Q}\left({\boldsymbol{p}}_{i}\right)}{W}_{Q}({\boldsymbol{q}}_{j},{\boldsymbol{p}}_{i})Cost({\boldsymbol{q}}_{j},{\boldsymbol{p}}_{i}), $$ (3)
    $$ {W}_{Q}({\boldsymbol{q}}_{j},{\boldsymbol{p}}_{i})=M({\boldsymbol{q}}_{j}-{\boldsymbol{p}}_{i}). $$ (4)

    使用PointPWC-Net估计初始场景流时,沿用了多尺度监督损失,对应估计得到4个尺度的场景流,对场景流真实值采样到同样的尺度,在对应的尺度上做不同权重$ \alpha $的2范数监督.

    $${Loss}_{\mathrm{s}\mathrm{f}}=\displaystyle \sum _{l={l}_{0}}^{L}{\alpha }_{l}\displaystyle \sum _{\boldsymbol{p}\in P}\left|\right|{{\boldsymbol{F}}}^{l}\left({\boldsymbol{p}}\right)-{{\boldsymbol{F}}}_{\boldsymbol{GT}}^{l}\left(\boldsymbol{p}\right)|{|}_{2}.$$ (5)

    在骨干网络输出初始场景流后,会经过置信度预测模块对初始场景流预测置信度图.该置信度定义为初始场景流相对于真实值的误差,即预测的误差值越小,表示该点在骨干网络中估计的初始场景流越准确,置信度值越高.置信度预测模块首先使用“编码器−解码器”的构造,以初始场景流的3D矢量信息作为输入,在编码器过程中进行点的下采样,可以扩大置信度预测模块的感受野,参考更多的相邻场景流推断置信度;然后在解码器的上采样过程中使用跳跃链接,串联编码过程中对应尺度的特征信息,为上采样提供更多精细尺度的特征,获得更精细的上采样结果,并且考虑骨干网络中输出的场景流特征;最后使用sigmoid函数输出1个(0-1)分布的置信度图,并将该置信度图用于之后的场景流传播模块中.

    置信度预测模块使用的是有监督的训练方式,监督信息是初始场景流与场景流真实值的2范数二值化得到的先验分布图,该分布图为初始场景流相对于真实值的先验误差分布.设定阈值$ \theta $,当初始场景流与真实值的2范数小于$ \theta $时,设定为0,否则设定为1.由此得到的分布图为场景流先验的二分类分布图,用来监督置信度预测模块的输出.

    $$ {\boldsymbol{GT}}_{{\rm{conf}}}=\left\{\begin{aligned} &0, |{\boldsymbol{F}}-{{\boldsymbol{GT}}}_{{\rm{sf}}}| <\theta ,\\ &1,|{\boldsymbol{F}}-{{\boldsymbol{GT}}}_{{\rm{sf}}}| \geqslant \theta , \end{aligned}\right.$$ (6)
    $$ \begin{aligned} {Loss}_{\mathrm{c}\mathrm{o}\mathrm{n}\mathrm{f}}=\;&-({{\boldsymbol{GT}}}_{\mathrm{c}\mathrm{o}\mathrm{n}\mathrm{f}}\times \mathrm{ln}\;confmap+\\ &(1-{{\boldsymbol{GT}}}_{\mathrm{c}\mathrm{o}\mathrm{n}\mathrm{f}})\times \mathrm{ln}\left(1-confmap\right)),\end{aligned} $$ (7)

    其中$ confmap $是置信度预测模块得到的置信图.${{\boldsymbol{GT}}}_{\mathrm{c}\mathrm{o}\mathrm{n}\mathrm{f}}$是场景流先验分布图,在式(6)中由初始场景流F和真实值${{\boldsymbol{GT}}}_{\mathrm{sf}}$处理得到.估计置信度图的最后一层使用sigmoid函数将其转换为0~1之间的分布,因此就可以使用二分类交叉熵(binary cross entropy, BCE)进行监督.

    经过场景流置信度图的预测,根据场景流置信度得到源点云中的高置信度点集和低置信度点集,由高置信度点集向低置信度点集进行限制半径的传播;根据邻域一致性的假设,如果高置信度点与低置信度点的传播半径不大于传播半径阈值,可以认为两点的场景流拥有一致性,可以使用高置信度点的场景流更新低置信度点的场景流.

    $$ {\boldsymbol{p}}_{2}=KNN\left({\boldsymbol{p}}_{1}\right),\quad {\boldsymbol{p}}_{1},{\boldsymbol{p}}_{2}\in P,$$ (8)

    $ {\boldsymbol{p}}_{1} $$ {\boldsymbol{p}}_{2} $都属于源点云$ P $,因为邻域一致性依赖于点云内相邻点的相关性,所以距离最近的点最有可能存在场景流的邻域一致性,式$ \left(8\right) $$ KNN $为K最近邻(K-nearest neighbor)方法采样低置信度点$ {\boldsymbol{p}}_{1} $在源点云的最近点.

    $$ f\left({\boldsymbol{p}}_{1}\right)=f\left({\boldsymbol{p}}_{2}\right), \quad {\rm{if}}({\boldsymbol{p}}_{1}-{\boldsymbol{p}}_{2}) < \beta ,$$ (9)

    其中$ {\boldsymbol{p}}_{1} $$ {\boldsymbol{p}}_{2} $分别为低置信度点和高置信度点,$ \beta $为传播半径阈值,当两点的距离不大于传播半径时传播更新低置信度点的场景流. 这里传播半径阈值非常重要,点云中的相邻点只有空间距离在一定阈值内才会具有相关性,在点密度足够的情况下,对于小邻域内的点的场景流具有一致性,这个邻域的半径阈值设置不同的数值会影响到优化结果.

    NCPUM在优化初始场景流时,会将反传的梯度在初始场景流处截断,即训练置信度预测模块时不会影响到骨干网络PointPWC-Net.

    与之前的工作的训练过程[4, 6, 16]类似,NCPUM在合成数据集Flyingthings3D[22]上训练模型,然后在Flyingthings3D和真实场景数据集KITTI[23]两个数据集上进行测试,将测试结果与其他方法的结果在表1中进行对比.之所以使用这样的训练策略是因为很难在真实场景中确定出来一个场景流真实值,这里使用的KITTI数据集只有142个场景,而合成数据集有更大的数据量可供训练,如Flyingthings3D数据集有19640对点云可以进行训练.在训练之前,遵循HPLFlowNet和PointPWC-Net的方式对数据进行了预处理,点云场景中没有被遮挡的点.

    表  1  NCPUM与其他方法的对比
    Table  1.  Comparison of NCPUM and Other Methods
    数据集方法EPE/mAcc3DS/%Acc3DR/%Outlier3D/%
    Flyingthings3DFlowNet3D[3]0.11441.377.060.2
    HPLFlowNet[4]0.08061.485.542.9
    PointPWC-Net[6]0.05973.892.834.2
    FLOT[16]0.05273.292.735.7
    HALFlow[17]0.04978.594.730.8
    NCPUM0.06076.193.930.7
    KITTIFlowNet3D[3]0.17737.466.852.7
    HPLFlowNet[4]0.11747.877.841.0
    PointPWC-Net[6]0.06972.888.826.5
    FLOT[16]0.05675.590.824.2
    HALFlow[17]0.06276.590.324.9
    NCPUM0.07078.191.522.3
    注:黑体数字表示最优结果.
    下载: 导出CSV 
    | 显示表格

    在接下来的内容中,将介绍NCPUM实现的细节,然后将测试结果与之前的方法进行对比,证明了NCPUM的有效性.并且我们认为Flyingthings3D数据集与KITTI数据集差异较大,将NCPUM在KITTI数据集前100对数据上进行微调,在后42对数据上进行了测试,更换不同骨干网络微调的测试结果在表3中展示,证明NCPUM基于邻域一致性假设的传播更新方法更适用于真实场景,并进行了消融实验,对传播半径阈值进行更多的对比实验.

    表  3  在KITTI数据集上微调测试
    Table  3.  Fine Tuning and Testing on KITTI Dataset
    骨干网络方法EPE/mAcc3DS/%Acc3DR/%Outlier3D/%
    FlowNet3D[3]w/o ft0.17327.660.964.9
    w ft0.10233.670.344.9
    NCPUM0.09438.674.137.1
    PointPWC-Net[6]w/o ft0.06972.888.826.5
    w ft0.04582.795.125.3
    NCPUM0.04387.596.924.3
    FLOT[16]w/o ft0.05675.590.824.2
    w ft0.02989.496.818.0
    NCPUM0.02889.997.017.5
    注:黑体数字表示最优结果;w/o表示with/without;ft表示fine-funing.
    下载: 导出CSV 
    | 显示表格

    NCPUM的训练设置与骨干网络PointPWC-Net相同,对输入的点云采样到8192个点,为其构建4层的特征金字塔,每一层的损失权重α设置为α0 = 0.02,α1 = 0.04,α2 = 0.08,α3 = 0.16,训练时的初始学习率设置为0.001,训练800个周期,每80个周期学习率减少一半.在对KITTI进行微调时,参数设置与NCPUM设置一致,只是将训练周期减少为400个,并且学习率每40个周期减少一半.

    置信度预测模块设置了3个尺度,分别为2048,512,256个点,特征通道数都为64.在经过3次下采样的特征提取之后得到了3个尺度的场景流特征,再经过3次上采样将特征传播到原尺度.前2个尺度的上采样都同时考虑了前一尺度的特征和下采样时对应的特征;后1个尺度的上采样考虑原尺度的场景流,在上采样到原尺度之后,与骨干网络输出的场景流特征串联在一起,经过2个1D卷积,再经过sigmoid得到0~1分布的置信度.

    本文沿用了场景流估计任务一直以来的评价标准[3-4, 6,18],假设$ \boldsymbol{F} $代表场景流估值,${\boldsymbol{F}}_{{\boldsymbol{GT}}}$代表场景流真实值,各个评价标准的定义为:

    1)EPE3D. $ \left|\right|{\boldsymbol{F}}-{{\boldsymbol{F}}}_{{\boldsymbol{GT}}}|{|}_{2} $表示点云上的逐点误差平均值.

    2)Acc3DS. $ EPE3D < 0.05\;\mathrm{m} $或者相对误差$ < 5\% $的点占比.

    3)Acc3DR. $ EPE3D < 0.1\;\mathrm{m} $或者相对误差$ < 10\% $的点占比.

    4)utlier3D. $ EPE3D > 0.3\;\mathrm{m} $或者相对误差$ > 10\% $的点占比.

    Flyingthings3D可用于训练的数据集共有19640对点云,可用于测试的数据集有3824对点云.与FlowNet3D、 PointPWC-Net模型方法的设置相同,本文只使用深度小于35 m的点,大部分的前景物体都能包含在这个范围内.对每个点云采样得到8192个点用于训练和测试,训练设置参数在3.1节网络实现细节中进行了介绍.

    表1展示了在Flyingthings3D数据集上NCPUM在2个准确度指标和离群值占比指标上均优于骨干网络PointPWC-Net.尤其是Acc3DS指标,对比PointPWC-Net有2.3%的提升.但在EPE指标上略低于PointPWC-Net.其原因是在场景流传播模块中会使低置信度点的场景流与高置信度点的场景流相等,对于估计偏差大的点,会传播更新一个准确的场景流,对于估计误差小的低置信度点,传播更新操作反而带来了精度上的扰动.但是准确度是统计EPE3D < 0.05 m或者相对误差< 5%的点占比,所以我们的方法能够优化估计偏差大的匹配困难点,提升准确度.本文在表2中整理出更新点的统计信息(图2$\hat{{\boldsymbol{F}}}$F的比较),其中包含更新点占全部点的比例(更新点占比)、更新点中精度提升的占比(改进点占比)、更新点中精度下降的占比(扰动点占比)、精度提升的平均值(改进均值)、精度下降的平均值(扰动均值).可以看到,有一半以上的点其实是产生了扰动,并且产生扰动的均值大于改进的均值,因此在精度上NCPUM确实会产生一定的扰动,但是在准确度指标和离群值占比指标上有大幅提升.

    表  2  Flyingthings3D数据集更新点统计信息
    Table  2.  Statistical Information of Update Points on Flyingthings3D Dataset
    方法更新点占比/%改进点占比/%扰动点占比/%改进均值/m扰动均值/mEPE/mAcc3DS/%Acc3DR/%Outlier3D/%
    PointPWC-Net0.05973.892.834.2
    NCPUM9.7346.9853.020.0030.0040.06076.193.930.7
    注:黑体数字表示最优结果.
    下载: 导出CSV 
    | 显示表格

    KITTI Scene Flow 2015数据集包括200个训练场景和200个测试场景,遵循之前工作的方法,在具有真实值并且可用的142对点云数据集上进行测试,并且与之前的方法保持一致[4,6],删除了点云中高度小于0.3 m的地面点.在KITTI数据集上,先使用在Flyingthings3D数据集上训练的模型直接对KITTI数据集进行测试而不经过任何微调,以评估NCPUM的泛化能力.从表1中可以看到NCPUM在Acc3DS和Acc3DR评价指标上优于PointPWC-Net,在Acc3DS指标上有5.3%的提升,在Acc3DR指标上有2.7%的提升,提升幅度大于Flyingthings3D数据集,表现出优秀的泛化性能.不经过微调而在真实数据集上表现更加优秀的原因在于真实数据集KITTI的点云数据物体之间的距离大于Flyingthings3D数据集中物体之间的距离,NCPUM的邻域一致性假设更适用于这种数据特性,所以NCPUM在真实场景上会有更加优秀的表现.本文统计了表1中FLOT和NCPUM的场景流估计时间,FLOT在一秒钟内可以处理2.15对连续点云,而NCPUM在一秒钟内可以处理5.09对连续点云,NCPUM处理速度约是FLOT的2.37倍.在真实使用场景中,准确场景流在总体场景流中的占比比场景流的绝对平均误差值更有意义,拥有更多的准确场景流代表该方法为真实应用带来更好的稳定性.NCPUM在Acc3DS和Acc3DR准确度指标上都有可观的提升,尤其在真实数据集上的场景流Acc3DS指标超过PointPwc的Acc3DS指标7.28%,超过HALFlow的Acc3DS最佳结果2.09%,对比之前的方法,NCPUM的处理速度和准确度表现出更大的应用潜力.

    因为Flyingthings3D数据集和KITTI数据集存在较大的差异,直接使用在Flyingthings3D数据集上预训练的模型在KITTI数据集上测试并不能完全展示NCPUM在KITTI数据集上的性能.所以本文将KITTI数据集拆分,使用前100对场景微调NCPUM,并在剩余的42对场景上进行测试.分别将FlowNet3D,PointPWC-Net, FLOT 3种骨干网络在KITTI数据集上进行微调,然后进行NCPUM的微调,将微调后的3种骨干网络做对比.在微调之后,3种骨干网络的NCPUM可以获得更好的效果,如表3所示,微调后的NCPUM对比微调后对应的骨干网络,在4个评价标准上都有提升,与泛化能力测试结果不同的是,NCPUM在EPE指标上也有了一定的提升,我们认为,Flyingthings3D是虚拟数据集,场景中物体间的距离较小,对某一物体边缘的低置信度点传播更新,可能采样到距离较近的其他物体上的准确点,而不是同一物体中距离较远的准确点,例如图3所示,绿色点为更新场景流的低置信度点,红色的点是传播场景流的高置信度点,黄色的连线为传播更新关系.在图3(a)和图3(b)中都出现了采样到其他物体的现象;KITTI是真实数据集,物体之间的距离较大,如图3(c)所示,不容易出现采样错误的情况,只有在如图3(d)中的远端离群点上可能出现采样不准确的情况,因此KITTI相较于Flyingthings3D数据集更容易符合邻域一致性的假设.

    图  3  Flyingthings3D与KITTI替换细节对比
    Figure  3.  Comparison of Flyingthings3D and KITTI on replacement details

    因为NCPUM是基于邻域一致性假设进行构建的,因此传播半径阈值设置十分重要,不同的半径阈值设置带来的效果是不一样的,甚至不合适的半径阈值会降低NCPUM优化效果.当半径阈值设置过大时,高置信度点的场景流会传播到不具有一致性的低置信度点上,出现扰动;当半径设置过小时,只会有少部分低置信度点会被更新.数据集的不同也会影响到传播半径的设置,对比虚拟数据集,真实数据集因为物体间的距离更大,更容易设置一个合适的传播半径进行传播,这也是NCPUM泛化到真实数据集表现更好的原因.表4对2个数据集上设置的不同传播半径进行对比,NCPUM在Flyingthings3D数据集上的半径设置为0.4时达到最好效果,而在KITTI数据集上的半径设置为3.0时达到最好效果.这个数据的差异表现出在真实场景上对传播的约束更加小,传播更新可以影响到更多的点,从而带来更好的改进效果.

    表  4  NCPUM在不同半径阈值下的测试
    Table  4.  NCPUM Tested with Different Radius Threshold
    数据集半径阈值EPE/mAcc3DS/%Acc3DR/%Outlier3D/%
    Flyingthings3D1.00.06275.293.531.7
    0.40.06076.193.930.7
    0.20.06076.093.830.7
    KITTI5.00.05485.895.924.1
    3.00.04387.596.924.3
    1.00.04385.095.425.5
    注:黑体数字表示最优结果.
    下载: 导出CSV 
    | 显示表格

    为了证明NCPUM方法的泛化性能,本文尝试在不同的骨干网络上进行优化.我们分别以FlowNet3D,PointPWC-Net,FLOT为骨干网络构建使用置信度预测模块和场景流传播模块,在KITTI数据集上进行微调和使用NCPUM优化方法改进.测试结果如表3所示,在对FlowNet3D, PointPWC-Net,FLOT方法使用NCPUM优化方法后,4个指标上都有明显的提升,展示了NCPUM优化方法对不同骨干网络的泛化性.

    图4中可视化了NCPUM的传播更新过程,绿色点为更新场景流的低置信度点,红色点是传播场景流的高置信度点,黄色的连线为传播更新关系.可以看到KITTI数据集中具有一致性的汽车表面会出现估计不准确的绿色低置信度点,这些点更多是位于距离激光雷达更远的低密度点和邻域信息单一的边缘点上,若只关注连续点云间匹配的方法容易在这些点上出现较大的误差,NCPUM对匹配困难点寻找一个匹配准确点进行更新,和相邻的准确点保持一致,从而提高整体的估计准确度;同时传播过程要限制传播半径阈值,避免引入扰动.

    图  4  替换细节可视
    Figure  4.  Visualization of replacemental details

    本文提出了一种根据邻域一致性的传播更新方法NCPUM来优化估计场景流的精度.该方法通过置信度预测模块对骨干网络估计出的初始场景流预测置信度图来判断场景流准确度;然后通过场景流传播模块在有限制的传播半径内从匹配困难点寻找匹配准确点,将匹配准确点的场景流传播到匹配困难点上,以提高场景流的估计精度.NCPUM在不同的数据集Flyingthings3D和KITTI上都体现出了优于之前工作的性能.并且通过在真实数据集上的微调实验和不同传播半径的实验展现出NCPUM在真实场景数据有更加优秀的表现.

    作者贡献声明:郑晗负责提出模型、编写代码、实施实验过程和论文撰写;王宁负责修订和完善论文;马新柱负责数据分析和数据解释;张宏负责理论和实验设计;王智慧负责理论设计;李豪杰提供论文写作指导.

  • 图  1   NVIDIA GPUDirect的发展

    Figure  1.   Development of NVIDIA GPUDirect

    图  2   Intel IKL示意图

    Figure  2.   Illustration of Intel IKL

    图  3   基于传统GPU和Direct xPU的系统组织架构示意图

    Figure  3.   Illustrations of systematic organization architecture based on the traditional GPU and Direct xPU

    图  4   Direct xPU的硬件架构示意图

    Figure  4.   Illustrations of architecture of Direct xPU hardware

    图  5   RLTP协议的示意图

    Figure  5.   Illustration of RLTP protocol

    图  6   Go-back-N策略和选择性重传策略

    Figure  6.   Go-back-N strategy and the selective repeat transmission strategy

    图  7   Direct xPU的软件架构

    Figure  7.   The software architecture of Direct xPU

    图  8   GPU MMD库的详细信息

    Figure  8.   Details of GPU MMD library

    图  9   GPU二进制程序的生成过程

    Figure  9.   Generation process of GPU binary program

    图  10   配备了16个PCIe插槽的xPU Box

    Figure  10.   xPU Box equipped with 16 PCIe slots

    图  11   不同网卡在3种丢包率下的带宽测试

    Figure  11.   Bandwidth tests with different network cards at three packet loss rate

    图  12   发送方视角下GPU节点间通信的完整过程

    Figure  12.   The complete process of communication between GPU nodes from the perspective of sender

    图  13   GPU节点之间的$t_3-t'_2 $延迟测试设置

    Figure  13.   Latency testing setup between GPU nodes on $t_3-t'_2 $

    图  14   GPU节点间通信在$ t_3-t'_2 $的延迟测试结果

    Figure  14.   Latency testing results between GPU nodes communication on $ t_3-t'_2 $

    图  15   主机节点写入GPU节点的不同数量寄存器的延迟

    Figure  15.   Latency of different number of registers when the host node writes to the GPU node

    图  16   数据量大小分别为1Mb和1Gb时GPU节点间的带宽性能测试结果

    Figure  16.   Bandwidth performance testing result between GPU nodes when the amount of data is 1 Mb and 1 Gb respectively

    图  17   基于Direct xPU分布式计算平台的原型系统的应用

    Figure  17.   Application of a prototype system based on Direct xPU distributed computing platform

    表  1   3种RDMA实现的特性对比

    Table  1   Features Comparison of Three Types of RDMA Implementations

    特性 InfiniBand iWARP RoCE
    性能 最好 稍差 与InfiniBand相当
    成本
    稳定性 较好
    交换机需求 IB交换机 以太网交换机 以太网交换机
    下载: 导出CSV

    表  2   3种RDMA实现在重传方面的特性

    Table  2   Features of Three Types of RDMA Implementations in Terms of Retransmission

    网络类型传输层重传协议复杂度可靠性
    iWARPTCPSR
    RoCEv2UDPGo-back-N
    iRDMAUDPSR中等与iWARP相当
    下载: 导出CSV

    表  3   主要系统组件的规格

    Table  3   Specification of Main Systematic Components

    组件 规格
    CPU Intel Xeon E5-2640 V4
    CPU内存 DDR4,2133 MHz,256 GB
    主机网卡 Intel x520-sr2,10 Gbps
    主机操作系统 CentOS 7.8
    FPGA板卡 Inspur F10A(Intel Arria 10)
    FPGA内存 DDR4,2133 MHz,16 GB
    交换机 锐捷S6220
    FPGA编译工具 Quartus 19.1
    Vortex GPU版本 0.2.3,32 Core
    下载: 导出CSV

    表  4   4种基于FPGA的分布式计算架构的节点间通信延迟对比

    Table  4   Comparison of Inter-Node Communicating Latency of Four FPGA-Based Distributed Computing Architectures

    架构 FPGA时钟频率/MHz 延迟/µs
    CoE 200~250 0.95(4 B包大小)
    CIRCUS 295.8 0.5~1.87(根据包大小和
    设备的间隔距离变化)
    AiS 222.5 5.04(4 B包大小)
    Direct xPU 200 2.69(4 B包大小)
    下载: 导出CSV
  • [1]

    Fröning H, Nüssle M, Litz H, et al. A case for FPGA based accelerated communication[C]//Proc of the 9th Int Conf on Networks. Piscataway, NJ: IEEE, 2010: 28−33

    [2]

    Shainer G, Ayoub A, Lui P, et al. The development of Mellanox/NVIDIA GPUDirect over InfiniBand—a new model for GPU to GPU communications[J]. Computer Science Research and Development, 2011, 26: 267−273 doi: 10.1007/s00450-011-0157-1

    [3]

    Ammendola R, Bernaschi M, Biagioni A, et al. GPU peer-to-peer techniques applied to a cluster interconnect[C]//Proc of 2013 IEEE Int Symp on Parallel & Distributed Processing, Workshops and PhD Forum. Piscataway, NJ: IEEE, 2013: 806−815

    [4]

    Agostini E, Rossetti D, Potluri S. Offloading communication control logic in GPU accelerated applications[C]//Proc of 17th IEEE/ACM Int Symp on Cluster, Cloud and Grid Computing (CCGRID). Piscataway, NJ: IEEE, 2017: 248−257

    [5]

    Agostini E, Rossetti D, Potluri S. GPUDirect Async: Exploring GPU synchronous communication techniques for InfiniBand clusters[J]. Journal of Parallel and Distributed Computing, 2018, 114: 28−45 doi: 10.1016/j.jpdc.2017.12.007

    [6]

    Oden L, Fröning H. GGAS: Global GPU address spaces for efficient communication in heterogeneous clusters[C]//Proc of 2013 IEEE Int Conf on Cluster Computing (CLUSTER). Piscataway, NJ: IEEE, 2013: 1−8

    [7]

    Oden L, Fröning H. InfiniBand Verbs on GPU: A case study of controlling an InfiniBand network device from the GPU[J]. The International Journal of High Performance Computing Applications, 2017, 31(4): 274−284 doi: 10.1177/1094342015588142

    [8]

    Daoud F, Watad A, Silberstein M. GPUrdma: GPU-side library for high performance networking from GPU kernels[C]//Procof the 6th Int Workshop on Runtime and Operating Systems for Supercomputers. New York: ACM, 2016: 1−8

    [9]

    Silberstein M, Kim S, Huh S, et al. GPUnet: Networking abstractions for GPU programs[J]. ACM Transactions on Computer Systems, 2016, 34(3): 1−31

    [10]

    Balle S M, Tetreault M, Dicecco R. Inter-kernel links for direct inter-FPGA communication[DB/OL]. [2022-10-19]. https://cdrdv2-public.intel.com/650535/wp-01305-inter-kernel-links-for-direct-inter-fpga-communication.pdf.

    [11]

    Fujita N, Kobayashi R, Yamaguchi Y, et al. Parallel processing on FPGA combining computation and communication in OpenCL programming[C]/Proc of 2019 IEEE Int Parallel and Distributed Processing Symp Workshops (IPDPSW). Piscataway, NJ: IEEE, 2019: 479−488

    [12]

    Fujita N, Kobayashi R, Yamaguchi Y, et al. Performance evaluation of pipelined communication combined with computation in OpenCL programming on FPGA[C]//Proc of 2020 IEEE Int Parallel and Distributed Processing Symp Workshops (IPDPSW). Piscataway, NJ: IEEE, 2020: 450−459

    [13]

    Kobayashi R, Fujita N, Yamaguchi Y, et al. GPU-FPGA heterogeneous computing with OpenCL-enabled direct memory access[C]//Proc of 2019 IEEE Int Parallel and Distributed Processing Symp Workshops (IPDPSW). Piscataway, NJ: IEEE, 2019: 489−498

    [14]

    Kobayashi R, Fujita N, Yamaguchi Y, et al. OpenCL-enabled GPU-FPGA accelerated computing with inter-FPGA communication[C]//Proc of the Int Conf on High Performance Computing in Asia-Pacific Region Workshops. New York: ACM 2020: 17−20

    [15]

    Burstein I. Nvidia data center processing unit (DPU) architecture[C]//Proc of 2021 IEEE Hot Chips 33 Symp (HCS). Piscataway, NJ: IEEE, 2021: 1−20

    [16]

    Sundar N, Burres B, Li Y, et al. An in-depth look at the Intel IPU E2000[C]//Proc of 2023 IEEE Int Solid-State Circuits Conf (ISSCC). Piscataway, NJ: IEEE, 2023: 162−164

    [17]

    Lant J, Navaridas J, Luján M, et al. Toward FPGA-based HPC: Advancing interconnect technologies[J]. IEEE Micro, 2019, 40(1): 25−34

    [18]

    Mittal R, Shpiner A, Panda A, et al. Revisiting network support for RDMA[C]//Proc of the 2018 Conf of the ACM Special Interest Group on Data Communication. New York: ACM, 2018: 313−326

    [19]

    Wadekar M. Handbook of Fiber Optic Data Communication[M]//Cambridge, MA: Academic Press, 2013: 267−287

    [20]

    Jääskeläinen P, de La Lama C S, Schnetter E, et al. PoCL: A performance-portable OpenCL implementation[J]. International Journal of Parallel Programming, 2015, 43: 752−785 doi: 10.1007/s10766-014-0320-y

    [21]

    Tine B, Yalamarthy K P, Elsabbagh F, et al. Vortex: Extending the RISC-V ISA for GPGPU and 3D-graphics[C]//Proc of the 54th Annual IEEE/ACM Int Symp on Microarchitecture (MICRO-54). New York: ACM, 2021: 754−766

    [22]

    Elsabbagh F, Tine B, Roshan P, et al. Vortex: OpenCL Compatible RISC-V GPGPU[J]. arXiv preprint, arXiv: 2002.12151, 2020

    [23]

    Intel OPAE. Open programmable acceleration engine (OPAE) C API programming guide [DB/OL]. [2021-11-08] https://cdrdv2.intel.com/v1/dl/getContent/686262?explicitVersion=true&wapkw=opae.

    [24] 曾高雄,胡水海,张骏雪,等. 数据中心网络传输协议综述[J]. 计算机研究与发展, 2020, 57(1): 74−84

    Zeng Gaoxiong, Hu Shuihai, Zhang Junxue, et al. Transport protocols for data center networks: A survey[J]. Journal of Computer Research and Development, 2020, 57(1): 74−84 (in Chinese)

  • 期刊类型引用(1)

    1. 陈慧娴,吴一全,张耀. 基于深度学习的三维点云分析方法研究进展. 仪器仪表学报. 2023(11): 130-158 . 百度学术

    其他类型引用(1)

图(17)  /  表(4)
计量
  • 文章访问数:  520
  • HTML全文浏览量:  81
  • PDF下载量:  150
  • 被引次数: 2
出版历程
  • 收稿日期:  2024-01-28
  • 修回日期:  2024-03-26
  • 网络出版日期:  2024-04-14
  • 刊出日期:  2024-05-31

目录

/

返回文章
返回