0.Abstract
点云的深度学习在三维计算机视觉和机器人领域引起了越来越多的关注。特别是,基于图的点云深度神经网络(DNN)在三维对象分类和场景分割任务中表现出了良好的性能。然而,现有的SIMD体系结构和加速器无法有效地计算基于图的点云DNN中分散和不规则的图结构数据。我们提出了Point-X,这是一种高效节能的加速器架构,可以提取和利用点云数据中的空间局部性进行高效处理。Point-X使用聚类方法从输入点云中提取细粒度和粗粒度的空间局部性。聚类将点云映射到分布式计算块中,以最大化块内计算并行性并最小化块间数据移动。Point-X采用了链式片上网络(NoC),以进一步减少NoC通信量,并实现比传统网状NoC高达3.2倍的加速比。Point-X的多模数据流可以支持基于图的点云DNN中的所有常见操作,即边缘卷积、共享多层感知器和全连接层。点-X在28nm技术中合成,在DGCNN工作负载上的吞吐量为1307.1推断/秒,能效为604.5推断/J。与英伟达GTX-1080Ti GPU相比,Point-X的吞吐量和效率分别提高了4.5倍和342.9倍。
1.介绍
近年来,由于三维深度学习在三维空间中的广泛应用,包括室内导航、对象分类、场景分割、形状合成和建模,因此受到了越来越多的关注。在所有三维表示中,点云已经受到欢迎,因为它显示了真实世界的精确表示,并且可以直接作为大多数三维数据采集设备(如激光雷达和红外传感器)的原始输出进行采集[12、59、1、52]。原始点云经过常见的预处理步骤,包括背景滤波、噪声消除和感兴趣区域(ROI)识别,然后预处理的ROI帧为点云处理做好准备。
在深度神经网络(DNN)和进化神经网络(CNN)在2D图像应用上取得广泛成功[19、40、15、43]之后,研究人员一直致力于将CNN的见解转换为3D空间中的点云。第一种尝试使用中间表示法间接处理点云,即多视图[42、57、34]或体积[27、36、45]。这些方法要么将点云投影到多个不同角度的二维图像中,要么将其转换为三维网格中的体素,然后再应用成熟的二维或三维CNN来完成间接点云处理。然而,由于表示转换过程中的数据截断,这些方法无法捕获精细细节和纹理。PointNet[33]提出了一种基于点的网络来直接处理点云,而无需任何投影或体素化。然而,点网只考虑全局形状结构,而不考虑点之间的关系,因此无法捕捉更精细的细节,限制了其性能[35,48]。
为了克服这些局限性,最近的工作建议通过基于图的方法[39、37、48]提取局部邻域信息,并将其集成到全局形状结构中,以提高点网模型的性能。特别是,DGCNN[48]使用一种称为边缘卷积(EdgeCONV)的基于图的算子来集成局部和全局特征。图1显示了使用DGCNN架构的点云识别管道,并说明了EdgeCONV的原理。EdgeCONV首先通过构造输入点云的K近邻(KNN)图来取消点的空间关系。在KNN图边缘之后,图卷积(GraphCONV)聚合每个顶点的局部邻域特征和全局特征以生成输出特征。有希望的DGCNN结果使EdgeCONV成为广泛采用的算子[60、6、56、47]。
EdgeCONV的变体已经出现,并在最近基于图的点云DNN中广泛使用[14,22,5]。这些变体共享EdgeCONV的计算模式,其中包括1)图构造,以揭示独立数据点之间的空间关系,然后通过构造过的图上的2)卷积提取特征用于识别。因此,对EdgeCONV的探索和发现适用于这些变体。
现有的计算解决方案无法有效地支持EdgeCONV计算。在计算EdgeCONV时,顶点的邻域可以随机分布在系统内存中。传统的单指令多数据结构,即CPU和GPU,必须提取分散的图形顶点进行矢量计算,导致计算利用率和效率低下。DNN/CNN加速器[16、8、28、38]无法执行此类计算,因为它们专门设计用于顺序内存访问和规则结构数据,即2D图像或1D序列。图形处理加速器[13,31]针对不规则数据访问进行了优化,无法充分利用数据重用或提供基于图形的网络所需的计算并行性。图卷积神经网络(GNN/GCN)加速器[54、18、11、7、10、41、24]处理GCN中的规则和不规则计算。与常见的图形结构是静态的且事先已知的GNN不同,EdgeCONV操作在运行时构建的动态图形。大多数以前的GNN作品[54、18、11、7、10]专注于静态图,由于缺乏运行时图构造,因此不完全支持EdgeCONV。最近,[41,24]扩展了对动态图的支持。然而,他们没有考虑点云的社区结构,无法提供最佳效率。
为了设计基于图形的点云处理的实用架构,需要解决三个目标:获取效率:在有限的传输带宽下提供最大数量的相邻点进行计算;计算效率:为不规则点云工作负载提供高计算并行性和利用率;灵活性:支持基于图形的点云网络中的各种计算类型。
我们提出了Point-X,这是一种空间位置感知加速器架构,用于高效的基于图的点云处理。Point-X提取并利用输入点云中的空间局部性,以提高计算并行性并减少通信开销,从而实现更高的提取和计算效率。主要贡献有:
- 提出了一种推测广度优先搜索(SBFS)图遍历方法来提取输入点云中的空间局部性。与传统的BFS图遍历相比,它实现了高达9.2倍的执行速度。基于SBFS遍历的空间位置感知聚类用于将输入点分布到计算块中,以实现高效处理。
- 设计了一种轻量级链式NoC架构,以利用空间局部性来有效减少片间通信量及其延迟。链式NoC设计的延迟比网状NoC短3.2倍,同时产生的面积和能量开销要低得多。
- 设计了灵活的计算块和多模数据流,以支持基于图的点云网络中的所有常见操作,包括EdgeCONV、共享多层感知器(MLP)和全连接(FC)层。
在28nm技术中合成了点-X设计。估计该设计占用6.8 mm2的面积,并在1.0 GHz时钟频率下工作。X点表明,GraphCONV在基线加速器上的平均加速比为7.7倍,EdgeCONV在现有加速器上的能效高达12.1倍。在运行用于三维对象分类的DGCNN时,点X实现了1307.1推理/秒(Inf/秒)的端到端吞吐量和604.5推理/J(Inf/J)的能效[48]。与通用GPU和CPU相比,Point-X的吞吐量分别提高了4.5倍、129.7倍,能效分别提高了342.9倍和3160.9倍。