Joint Optimization of Storage and Loading for High-Performance 3D Point Cloud Data Processing
Abstract
With the rapid development of computer vision and deep learning, significant advancements have been made in 3D vision, partic- ularly in autonomous driving, robotic perception, and augmented reality. 3D point cloud data, as a crucial representation of 3D information, has gained widespread attention. However, the vast scale and complexity of point cloud data present significant chal- lenges for loading and processing and traditional algorithms struggle to handle large-scale datasets.The diversity of storage formats for point cloud datasets (e.g., PLY, XYZ, BIN) adds complexity to data handling and results in inefficiencies in data preparation. Al- though binary formats like BIN and NPY have been used to speed up data access, they still do not fully address the time-consuming data loading and processing phase. To overcome these challenges, we propose the .PcRecord format, a unified data storage solution designed to reduce the storage occupation and accelerate the processing of point cloud data. We also introduce a high-performance data processing pipeline equipped with multiple modules. By leveraging a multi-stage parallel pipeline architecture, our system optimizes the use of computational resources, significantly improving processing speed and efficiency. This paper details the im- plementation of this system and demonstrates its effectiveness in addressing the challenges of handling large-scale point cloud datasets.On average, our system achieves performance improvements of 6.61x (ModelNet40), 2.69x (S3DIS), 2.23x (ShapeNet), 3.09x (Kitti), 8.07x (SUN RGB-D), and 5.67x (ScanNet) with GPU and 6.9x, 1.88x, 1.29x, 2.28x, 25.4x, and 19.3x with Ascend.
Figures & tables
| Dataset | workers | map operator | batch size |
|---|---|---|---|
| ModelNet40 | 8 | normalize, translate | 32 |
| S3DIS | 8 | normalize, jitter, rotate, translate | 4 |
| ShapeNet | 8 | random scale, translate | 10 |
| Kitti | 8 | normalize | 32 |
| Sunrgbd | 8 | Augment RGB color, random scale, rotate, flip along the YZ plane | 4 |
| ScanNet | 8 | Random Cropping, Downsampling | 32 |
| Dataset | ModelNet40 | S3DIS | ShapeNet | Kitti | Sunrgbd | ScanNet | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Metric | Cost Time (s), Average Memory Usage (%), Average CPU Usage (%) | |||||||||||||||||
| MindSpore | 17.24 | 0.45% | 93.37% | 4 | 1.24% | 128.10% | 68.15 | 0.55% | 94.71% | 8.94 | 0.45% | 103.51% | 25.85 | 2.69% | 48.18% | 6.8 | 0.72% | 97.81% |
| PyTorch | 39.83 | 0.37% | 21.55% | 6.26 | 1.13 % | 99.38% | 7.99 | 0.32% | 66.40% | 9.18 | 0.32 % | 54.44% | 18.57 | 2.84% | 61.50% | 7.06 | 0.59% | 90.03% |
| Tensorflow | 76.05 | 1.57% | 98.72% | 16.29 | 1.74% | 106.81% | 59.27 | 1.54% | 103.47% | 19.4 | 0.49% | 99.60% | 29.27 | 3.93% | 91.43% | 16.96 | 1.00% | 70.92% |
| Keras | 85.29 | 0.39% | 49.10% | 18.34 | 1.06% | 54.76% | 63.69 | 0.38% | 51.73% | 35.06 | 0.51% | 52.78% | 41.97 | 2.47% | 34.87% | 36.71 | 0.70% | 45.86% |
| Ours | 2.61 | 0.24 % | 114.26 % | 2.33 | 1.24% | 128.41 % | 3.58 | 0.27 % | 121.47 % | 2.89 | 0.43% | 169.15 % | 2.3 | 0.27 % | 115.90 % | 1.2 | 0.26 % | 108.12 % |
| Dataset | ModelNet40 | S3DIS | ShapeNet | Kitti | Sunrgbd | ScanNet | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Metric | Cost Time (s), Average Memory Usage (%), Average CPU Usage (%) | |||||||||||||||||
| MindSpore | 12.8 | 0.11% | 103.03% | 14.87 | 0.43% | 105.67% | 10.37 | 0.10% | 127.37% | 3.91 | 0.18% | 109.50% | 21.49 | 0.88% | 120.84% | 3.12 | 0.22% | 99.21% |
| PyTorch | 39.62 | 0.12% | 36.77% | 26.65 | 0.45% | 95.26% | 5.1 | 0.09 % | 118.98% | 11.1 | 0.12 % | 36.42% | 17.78 | 0.88% | 98.78% | 2.51 | 0.20% | 99.62% |
| Tensorflow | 77.76 | 0.14% | 107.27% | 34.46 | 0.47% | 117.58% | 35.65 | 0.17% | 115.57% | 24.26 | 0.20% | 104.94% | 24.46 | 0.93% | 120.72% | 11.17 | 0.26% | 109.10% |
| Keras | 77.94 | 0.12% | 106.92% | 36.65 | 0.33% | 111.53% | 35.34 | 0.12% | 113.82% | 23.51 | 0.20% | 105.40% | 25.05 | 0.86% | 118.05% | 12.9 | 0.26% | 108.86% |
| Ours | 1.84 | 0.08 % | 161.00 % | 7.92 | 0.12 % | 283.55 % | 3.95 | 0.09 % | 150.58 % | 1.71 | 0.19% | 299.73 % | 0.7 | 0.08 % | 164.66 % | 0.13 | 0.07 % | 189.77 % |
| Experiment | Categories |
|---|---|
| Hardware Combination | NPU+CPU GPU+CPU |
| Framework Version | TensorFlow 2.13.1,PyTorch 2.4.0,MindSpore 2.3.1,Keras 2.13.1 |
| Dataset | MindSpore | Ours | ||
|---|---|---|---|---|
| single | mul | single | mul | |
| ModelNet40 | 17.24 | 22.07 | 2.61 | 0.58 |
| S3DIS | 4.00 | 5.94 | 2.33 | 2.75 |
| ShapeNet | 68.15 | 13.57 | 3.58 | 1.17 |
| Kitti | 8.94 | 6.73 | 2.89 | 1.10 |
| Sunrgbd | 25.85 | 6.36 | 2.30 | 0.35 |
Appendix figures & tables4 assets
Supplementary material from the paper’s appendix.
Appendix
High-Performance Computing
High-performance computing (HPC) uses parallel systems and optimized software to solve computationally demanding scientific and engineering problems.
See all 143 papers