
Torchsparse是用于点云处理的高性能神经网络库。
对于自动驾驶和其他应用,点云计算已成为越来越重要的工作量。与密集的2D计算不同,点云卷积具有稀疏且不规则的计算模式,因此需要使用专门的高性能内核的专用推理系统支持。尽管现有的Point Cloud深度学习库已经开发了不同的数据流以在点云上进行卷积,但他们在整个模型的执行过程中都假设一个数据流。在这项工作中,我们系统地分析并改善了现有的数据流。我们最终的系统,Torchsparse,达到2.9倍, 3.3倍, 2.2倍和1.7倍,在最先进的Minkowskiengine,SPConv 1.2,Torchsparse(MLSYS)和SPCONV V2上的NVIDIA A100 GPU上测量了端到端的速度。
[2024/11] Torchsparse ++现在通过插件支持MMDetection3D和OpenPCDET!有一个完整的演示。
[2023/11] TORCHSPARSE ++已由Hao Su的实验室(UCSD)的One-2-3-45 ++采用3D对象生成!
[2023/10]我们在第56 IEEE/ACM国际微体系结构研讨会上介绍了Torchsparse ++(Micro 2023)。我们还完全发布了Torchsparse ++的源代码。
[2023/6] Torchsparse ++已由Hao Su's Lab(UCSD)教授(UCSD)的一号2-3-45采用了3D网格重建!
[2023/6] Torchsparse ++已发布并在CVPR 2023关于自动驾驶的研讨会上发布。它在先前的最新系统上实现了1.7-2.9倍的推理速度。
[2023/1] Argoverse 2数据集用Torchsparse实现其基线检测器。
[2022/8] Torchsparse在MLSYS 2022上介绍。在此处可用谈话视频。
[2022/6] Sparseneus已采用了Torchsparse进行神经表面重建。
[2022/1] MLSYS 2022已接受Torchsparse,其中包含自适应矩阵乘法分组和局部感知的内存访问。
[2021/6] Torchsparse V1.4已发布。
我们提供带有不同Pytorch和CUDA版本的预先构建的Torchsparse v2.1.0软件包(推荐),以简化Linux系统的建筑物。
确保至少安装了Pytorch 1.9.0:
python -c " import torch; print(torch.__version__) "
>>> 1.10.0如果您想与GPU一起使用Torchsparse,请确保与Cuda一起安装Pytorch:
python -c " import torch; print(torch.version.cuda) "
>>> 11.3然后,可以通过运行安装脚本找到并安装右Torchsparse轮:
python -c " $( curl -fsSL https://raw.githubusercontent.com/mit-han-lab/torchsparse/master/install.py ) "如果PYPI服务器无法正常工作,就不用担心,您仍然可以手动下载车轮。车轮在此网站中列出。可以利用我们的安装脚本自动确定用于索引车轮的版本号。例如,如果您使用Pytorch 1.11.0,CUDA 11.5,则版本号最终将为2.1.0+TORCH111CU115。然后,您可以根据Python版本选择合适的轮子。
您也可以从来源安装我们的库:
python setup.py install在存储库中,或使用
pip install git+https://github.com/mit-han-lab/torchsparse.git
无需克隆存储库。

在三代GPU体系结构(Pascal,Turing和Ampere)和所有精度(FP16,TF32,FP32,FP32)中,Torchsparse在3D对象检测和LIDAR分割基准中的现有点云推理引擎都显着胜过现有的点云推理引擎。它比最先进的SPCONV 2.3.5快1.7倍,高达2.2倍
云GPU上的Torchsparse-Mlsys。它还将SPCONV 2.3.5的延迟提高到On On On On。

与Minkowskiengine,Torchsparse-Mlsys和SpConv 2.3.5相比,Torchsparse达到了优越的混合精液训练速度。具体而言,在Tesla A100上,RTX 2080 TI的1.16倍比最先进的SPCONV 2.3.5快1.27倍。在A100和2080 Ti上的七个基准测试中,它还显着优于Minkowskiengine的4.6-4.8倍。用批量尺寸= 2测量。
您可能会从此链接中找到我们的基准。要访问预处理数据集,请联系作者。由于许可要求,我们无法公开发布Semantickitti,Nuscenes和Waymo的原始数据。
Torchsparse由以下出色团队开发:
如果使用Torchsparse,请使用以下Bibtex条目引用:
Torchsparse ++(Torchsparse v2.1)在Micro 2023中呈现:
@inproceedings { tangandyang2023torchsparse ,
title = { TorchSparse++: Efficient Training and Inference Framework for Sparse Convolution on GPUs } ,
author = { Tang, Haotian and Yang, Shang and Liu, Zhijian and Hong, Ke and Yu, Zhongming and Li, Xiuyu and Dai, Guohao and Wang, Yu and Han, Song } ,
booktitle = { IEEE/ACM International Symposium on Microarchitecture (MICRO) } ,
year = { 2023 }
}CVPR研讨会介绍了Torchsparse ++(Torchsparse v2.1)的初步版本:2023:
@inproceedings { tangandyang2023torchsparse++ ,
title = { {TorchSparse++: Efficient Point Cloud Engine} } ,
author = { Tang, Haotian and Yang, Shang and Liu, Zhijian and Hong, Ke and Yu, Zhongming and Li, Xiuyu and Dai, Guohao and Wang, Yu and Han, Song } ,
booktitle = { Computer Vision and Pattern Recognition Workshops (CVPRW) } ,
year = { 2023 }
}Torchsparse在MLSYS 2022上呈现:
@inproceedings { tang2022torchsparse ,
title = { {TorchSparse: Efficient Point Cloud Inference Engine} } ,
author = { Tang, Haotian and Liu, Zhijian and Li, Xiuyu and Lin, Yujun and Han, Song } ,
booktitle = { Conference on Machine Learning and Systems (MLSys) } ,
year = { 2022 }
}Torchsparse的初始版本是ECCV 2020的SPVNA纸的一部分:
@inproceedings { tang2020searching ,
title = { {Searching Efficient 3D Architectures with Sparse Point-Voxel Convolution} } ,
author = { Tang, Haotian and Liu, Zhijian and Zhao, Shengyu and Lin, Yujun and Lin, Ji and Wang, Hanrui and Han, Song } ,
booktitle = { European Conference on Computer Vision (ECCV) } ,
year = { 2020 }
}Pcengine纸被MLSYS 2023接受:
@inproceedings { hong2023pcengine ,
title = { {Exploiting Hardware Utilization and Adaptive Dataflow for Efficient Sparse Convolution in 3D Point Clouds} } ,
author = { Hong, Ke and Yu, Zhongming and Dai, Guohao and Yang, Xinhao and Lian, Yaoxiu and Liu, Zehao and Xu, Ningyi and Wang, Yu } ,
booktitle = { Sixth Conference on Machine Learning and Systems (MLSys) } ,
year = { 2023 }
}我们感谢Tusimple的Yan Yan进行了有益的讨论。还请查看DGSPARSE库,该库设计用于图形和点云上快速有效的稀疏计算。 PCENGINE(MLSYS 2023)团队的工作也与我们高度相关。
Torchsparse的灵感来自许多现有的开源库,包括(但不限于)Minkowskiengine,Second和Sparseconvnet。
我们还要感谢ExtribateD提供了一种优雅的方式来管理内核/模型配置。