Getting Started

This guide will help you build and run your first Mini-ImagePipe project.

Table of contents

  1. Prerequisites
  2. Build
    1. Using CMake Presets (Recommended)
    2. Manual Build
    3. Build Options
  3. Run
    1. Run Demo
    2. Run Tests
  4. Troubleshooting
    1. CUDA not found
    2. Out of memory during build
    3. Unsupported GPU architecture
  5. What’s Next?

Prerequisites

Before building Mini-ImagePipe, ensure you have:

  • CMake >= 3.18
  • CUDA Toolkit >= 11.0 with nvcc in your PATH
  • C++17 compatible compiler (GCC, Clang, or MSVC)
  • NVIDIA GPU with compute capability >= 7.0 (Volta or newer)

Build

We provide three CMake presets for different build configurations:

# Debug build (includes debug symbols, assertions)
cmake --preset default
cmake --build --preset default

# Release build (optimized for performance)
cmake --preset release
cmake --build --preset release

# Native GPU only (faster compile, targets only your GPU)
cmake --preset minimal
cmake --build --preset minimal

Manual Build

If you prefer manual configuration:

mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . -j$(nproc)

Build Options

Option Description Default
CMAKE_BUILD_TYPE Build type (Debug/Release) Release
CMAKE_CUDA_ARCHITECTURES Target GPU architectures All supported

Run

Run Demo

./build/demo_pipeline

The demo pipeline demonstrates:

  • Loading an image
  • Applying resize → grayscale → Gaussian blur → Sobel edge detection
  • Saving the output

Run Tests

# Using ctest
ctest --preset release

# Or run directly
./build/mini_image_pipe_tests

Our test suite includes:

  • Property-based tests (100 randomized iterations per operator)
  • Memory manager stress tests
  • Pipeline integration tests
  • Scheduler correctness tests

Troubleshooting

CUDA not found

If CMake cannot find CUDA:

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

Out of memory during build

For systems with limited RAM, reduce parallel jobs:

cmake --build --preset release -- -j2

Unsupported GPU architecture

If your GPU is older than Volta (sm_70), you may need to modify CMakeLists.txt:

set(CMAKE_CUDA_ARCHITECTURES 60)  # For Pascal GPUs

What’s Next?