Thanks to visit codestin.com
Credit goes to github.com

Skip to content
/ jitify Public

A single-header C++ library for simplifying the use of HIP Runtime Compilation (HIPRTC).

License

ROCm/jitify

Repository files navigation

jitify

Caution

This release is an early-access software technology preview. Running production workloads is not recommended.


A single-header C++ library for simplifying the use of HIP Runtime Compilation (HIPRTC). This is a port of the original CUDA version at https://github.com/NVIDIA/jitify/tree/jitify2 to HIP in order to enable support for AMD GPUs.

Requirements

  • ROCm and HIP 6.2.0 or higher
  • CMake 3.9 or higher (for building the tests)
  • AMD MI100/MI200/MI300 GPUs
  • Linux distribution (tested with Ubuntu 20.04+)

Current Limitations

  • No support for Windows.
  • JIT compilation of HIP sources for NVIDIA architectures is presently not supported.
  • LTO is not supported.
  • Linking JIT-compiled code to code in the current executable is not supported.
  • Removing unused globals is presently not supported.
  • Some features are only partially supported due to several issues we have found with HIPRTC. Please see here for more details.

Status of unit tests

The following tests are only supported partially or have been disabled or they have been modified:

Test Status Comment Related to Ticket
Minify modified Header includes in jit-source were disabled, as they yield errors during JIT-compilation SWDEV-419480
AssertHeader disabled Failing assert crashes the host process with HIP, so the test would fail with HIP. This is a different behaviour between CUDA and HIP. n/a
ConstantMemory modified Currently, we do not have a way to extract mangled symbol names from some intermediate code representation (like ptx on NVIDIA side). Symbols therefore are kept tracked of by adding their name expressions manually in the test. n/a
LinkCurrentExecutable disabled Hiprtc presently does not allow to link input type HIPRTC_JIT_INPUT_OBJECT. SWDEV-419737
RemovedUnusedGlobals disabled Checks CUDA-/NVRTC-specific features: Currently, we do not have a way to extract unused global variables from some intermediate code representation (like ptx on NVIDIA side).
ArchFlags modified We cannot get arch name on the device with HIP_ARCH.
CuRandKernel disabled Currently hiprtc returns redefinition errors when including thrust/hipcub/hiprand_kernel headers SWDEV-419480
Thrust disabled Currently hiprtc returns redefinition errors when including thrust/hipcub/hiprand_kernel headers SWDEV-419480
CompileLTO_IR disabled This test is not supported as LTO is not available in HIPRTC. n/a
LinkLTO disabled This test is not supported as LTO is not available in HIPRTC. n/a

About

A single-header C++ library for simplifying the use of HIP Runtime Compilation (HIPRTC).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5