#universal #heterogeneous #compiler #header #cpu-gpu #cuda #compile

ucc

Universal compiler invocator for heterogeneous CPU/GPU computation applications

3 unstable releases

0.2.1 Aug 20, 2023
0.2.0 Apr 30, 2023
0.1.0 Jul 30, 2022

#1704 in Procedural macros


Used in 4 crates (3 directly)

AGPL-3.0-only

20KB
357 lines

The universal compiler invocation library for Rust-CXX-CUDA interoperation and dependency management.

This crate serves as a universal bridge between Rust code and heterogeneous C++/CUDA/.. codes. It does the following work:

  • Manages and exports/imports the C++ headers between crates, through export_csrc. This feature makes use of the Cargo dependency management framework to conveniently manage C++/CUDA code dependencies.

  • Compile C++(OpenMP)/CUDA sources with out-of-the-box compilation settings and common platform detections.

  • Generates bindings of C++/CUDA host functions making use of ulib::UVec, through bindgen.

Dependencies

~23MB
~648K SLoC