8000 GitHub - Alan-Kuan/GAPS: GAPS: GPU Aware Pub/Sub Communication via Shared CUDA Memory
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Alan-Kuan/GAPS

Repository files navigation

GAPS: GPU-Aware Pub/Sub Communication

Implementations

There are two implementations of GAPS in different branches:

  • main: GAPS-z, built on top of Zenoh-cpp (with Zenoh-pico as backend)
  • iceoryx: GAPS-i, built on top of Iceoryx.

Environment

Docker environment is priovded for development or testing. To set it up, make sure the following requirements are met:

  • Docker is installed
  • Docker Compose is installed
  • NVIDIA Container Toolkit is installed
    • Follow the installation and configuration steps here
  • CUDA 12.6 is supported by your host's NVIDIA driver
  • CUDA Driver APIs like cuMemCreate and cuMemExportToShareableHandle are supported by your NVIDIA GPU

There are two environments under env/:

  • x86: for x86 machines with an NVIDIA GPU
  • jetson: for NVIDIA Jetson embedded system like Jetson AGX Orin

Change directory to either one, and then run the following commands:

docker compose up -d
ssh ubuntu@localhost -p 22222

To destroy the environment, run the following command under the same directory:

docker compose down

Build

To configure build instructions with CMake and build the project with Ninja, run the following commands in the parent directory of GAPS/:

cmake GAPS -B build -G Ninja
ninja -C build

The compiled executables will be generated under ./build/src.

CMake Build Options:

  • PROFILING=[on|(off)]: whether to profile publisher's put and subscriber's callback
  • BUILD_DEBUG=[on|(off)]: whether to build with debugging codes
  • BUILD_TORCH_SUPPORT=[on|(off)]: whether to build PyTorch support (i.e., to build PyGAPS)
  • BUILD_EXAMPLES=[(on)|off]: whether to build example codes

Note

The one wrapped with parentheses is the default value

Pre-Commit

Pre-commit is used to setup clang-format pre-commit hooks.

  1. Install pre-commit in your Python virtual environment.
  2. Run pre-commit install to install the hooks.
  3. Each time before committing, committed files will be formatted with clang-format.

Acknowledgements

Thanks for the following works to make this project possible.

About

GAPS: GPU Aware Pub/Sub Communication via Shared CUDA Memory

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  
0