Sign inSign up

acaicia/minkowski4cpp

By acaicia

Updated 7 months ago

A C++ port of NVIDIA's MinkowskiEngine on Ubuntu with full CUDA 12.4.0, Torch 2.5.1 support

Image
Languages & frameworks
Machine learning & AI
Data science
0

10K+

acaicia/minkowski4cpp repository overview

CUDA-accelerated sparse tensor engine for native C++.

This image provides a fully configured GPU build environment for Minkowski4CPP, a pure C++ port of NVIDIA’s MinkowskiEngine designed for high-performance sparse convolutional neural networks operating on 3D and 4D voxel data.

It removes the Python runtime dependency while preserving CUDA acceleration, LibTorch integration, and full sparse tensor functionality. The result is a production-ready C++ sparse CNN backend suitable for real-time systems, research pipelines, and deployable GPU workloads.

What This Image Includes

  • CUDA Toolkit (preconfigured)
  • LibTorch (C++ PyTorch distribution)
  • Prebuilt libminkowski_cpp.a
  • CMake + Ninja toolchain
  • cuBLAS, cuSPARSE, cuDART linkage
  • OpenMP support
  • GPU runtime support via NVIDIA Container Toolkit

The static Minkowski library is already compiled and installed inside the image, so downstream projects do not need to rebuild it.

Architecture Overview

Minkowski4CPP provides:

  • SparseTensor abstraction
  • CoordinateManager and kernel generators
  • Sparse convolution, pooling, interpolation, pruning
  • GPU kernels via CUDA
  • LibTorch tensor backend
  • Zero Python dependencies (compiled with MINK_NO_PYBIND)

When building your application inside this container, you link directly against:

libminkowski_cpp.a ${TORCH_LIBRARIES} CUDA::cudart CUDA::cublas CUDA::cusparse

As configured in the CMake setup

Running the Container

  • Ensure NVIDIA Container Toolkit is installed.

Interactive usage:

docker run --gpus all --rm -it
-v $(pwd):/workspace
acaicia/minkowski4cpp
bash

This mounts your project directory into /workspace.

Building Your Own Project Inside the Container

Example CMake usage:

find_package(Torch REQUIRED)

option(MINK_USE_INSTALLED ON)

find_library(MINK_INSTALLED_LIB minkowski_cpp HINTS /usr/local/lib REQUIRED )

add_library(minkowski_cpp STATIC IMPORTED) set_target_properties(minkowski_cpp PROPERTIES IMPORTED_LOCATION ${MINK_INSTALLED_LIB} )

target_link_libraries(your_target PRIVATE minkowski_cpp ${TORCH_LIBRARIES} CUDA::cudart CUDA::cublas CUDA::cusparse )

Then:

mkdir build && cd build cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/opt/libtorch ninja

If you use the Minkowski Engine, please cite:

4D Spatio-Temporal ConvNets: Minkowski Convolutional Neural Networks, CVPR'19, [pdf]

@inproceedings{choy20194d, title={4D Spatio-Temporal ConvNets: Minkowski Convolutional Neural Networks}, author={Choy, Christopher and Gwak, JunYoung and Savarese, Silvio}, booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition}, pages={3075--3084}, year={2019} }

Tag summary

Content type

Image

Digest

sha256:0de2852b5

Size

6.3 GB

Last updated

7 months ago

docker pull acaicia/minkowski4cpp