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

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

#672 in Procedural macros

Download history 8/week @ 2024-02-19 15/week @ 2024-02-26 5/week @ 2024-03-04 7/week @ 2024-03-11 4/week @ 2024-03-18 5/week @ 2024-03-25 40/week @ 2024-04-01

57 downloads per month
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

~27MB
~762K SLoC