Sign inSign up

acaicia/riemannengine

By acaicia

•Updated 10 days ago

CUDA-accelerated sparse tensor engine for C++ with adaptive resolution voxels and 3D Gaussian splats

Image
Languages & frameworks
Machine learning & AI
Data science
1

376

acaicia/riemannengine repository overview

⁠RiemannEngine

GPU-accelerated sparse tensor computing for native C++.

RiemannEngine is a native C++ library for high-performance sparse tensor operations, adaptive voxelization, Gaussian splatting, and GPU-accelerated machine learning.

The official Docker images provide a preconfigured development environment with CUDA, LibTorch, and a precompiled RiemannEngine library. Build and run applications without manually installing or configuring the CUDA toolchain.

Full Documentation⁠ | GitHub Repository⁠ | Docker Hub⁠

⁠Features

  • Native C++: High-performance sparse tensor operations without a Python runtime dependency.
  • CUDA Acceleration: GPU-accelerated sparse computations and neural network operations.
  • Adaptive Voxelization: Mixed-resolution sparse voxel grids that concentrate computation where detail matters.
  • Gaussian Support: Gaussian-based spatial representations and splatting.
  • Sparse Neural Networks: Sparse convolution, pooling, interpolation, pruning, and related operations.
  • SE(3) Transformations: Rigid-body coordinate transformations and frame composition.
  • LibTorch Integration: Native integration with PyTorch's C++ tensor and autograd backend.
  • Prebuilt Development Environment: CUDA, LibTorch, CMake, Ninja, GCC, and RiemannEngine ready to use.

⁠Available Docker Images

TagCUDALibTorchUbuntu
latest, cu13413.4.32.15.024.04
cu13213.2.12.15.024.04
cu12412.4.02.5.122.04

Version-specific tags such as 1.0.0-cu134 are also available.

Images include the complete development toolchain and are approximately 21 GB.

⁠GPU Compatibility

Published images are compiled for SM 8.6, with compatibility for supported RTX 30/40-series GPUs and related architectures.

Other GPU architectures may require rebuilding the image with the appropriate CUDA architecture flags.

Host requirements:

  • Docker Engine or Docker Desktop
  • NVIDIA GPU and compatible driver
  • NVIDIA Container Toolkit (Linux) or WSL 2 backend (Windows)
  • NVIDIA driver 580+ for CUDA 13 images, or 550+ for CUDA 12.4

See the GPU compatibility and installation guide⁠ for details.

⁠Quick Start

⁠1. Pull the Image
docker pull acaicia/riemannengine:latest
⁠2. Verify GPU Access
docker run --rm --gpus all acaicia/riemannengine:latest nvidia-smi
⁠3. Start a Development Container

Linux / WSL:

docker run --gpus all --rm -it \
  -v "$(pwd):/workspace" \
  acaicia/riemannengine:latest

Windows PowerShell:

docker run --gpus all --rm -it -v "${PWD}:/workspace" acaicia/riemannengine:latest

Your local project is mounted at /workspace, and the container includes everything needed to compile and execute RiemannEngine applications.

⁠Building C++ Applications

RiemannEngine provides a CMake package for integration into existing projects.

Example CMakeLists.txt:

cmake_minimum_required(VERSION 3.18)
project(my_riemann_app LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(Torch REQUIRED)
find_package(RiemannEngine 1.0 CONFIG REQUIRED)

add_executable(my_riemann_app main.cpp)
target_link_libraries(my_riemann_app PRIVATE RiemannEngine::RiemannEngine)

Build inside the container:

cmake -S . -B build -G Ninja \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_PREFIX_PATH=/opt/libtorch

cmake --build build
./build/my_riemann_app

The installed CMake target automatically links the RiemannEngine library and its configured dependencies.

⁠Container Layout

LocationDescription
/usr/local/include/riemann/C++ headers
/usr/local/lib/libriemann_cpp.aPrecompiled static library
/usr/local/lib/cmake/RiemannEngine/CMake integration
/opt/libtorch/LibTorch installation
/usr/local/cuda/CUDA toolkit
/workspace/Default project directory

CUDA and LibTorch library paths are preconfigured.

⁠Building for Other GPUs

To compile RiemannEngine for additional GPU architectures, clone the repository and build a custom Docker image.

git clone https://github.com/QuiteLiterallyConnor/RiemannEngine.git
cd RiemannEngine
docker build -f docker/Dockerfile \
  -t riemannengine:custom \
  --build-arg CUDA_VERSION=134 \
  --build-arg CUDA_ARCHITECTURES="86;89;120" \
  --build-arg JOBS=8 .

Adjust CUDA_ARCHITECTURES for your hardware.

⁠Common Issues

IssueSolution
GPU unavailableEnable GPU access with --gpus all
CUDA driver mismatchUpdate NVIDIA driver or use an older CUDA tag
No kernel image availableRebuild for your GPU architecture
Torch not foundSet -DCMAKE_PREFIX_PATH=/opt/libtorch
Slow Windows buildsStore projects inside the WSL filesystem
Permission errors on LinuxRun the container with your host UID/GID

⁠Documentation and Resources

The complete documentation includes installation instructions, API references, examples, adaptive voxelization, Gaussian operations, custom CUDA builds, deployment, and troubleshooting.

RiemannEngine: Native C++ sparse computing, adaptive geometry, and GPU acceleration in one development environment.

Tag summary

Content type

Image

Digest

sha256:df467b9e8…

Size

7 GB

Last updated

10 days ago

docker pull acaicia/riemannengine