AMD Announces "Orochi" For HIP/CUDA Run-Time Handling
While HIP has eased the process for developers to port their traditional NVIDIA CUDA code over to AMD's ROCm stack for GPU execution on Radeon / Instinct hardware, that has resulted in a separate HIP backend from CUDA.
AMD Orochi. This should be great for helping more robust CUDA/HIP support within packaged applications, assuming Orochi's adoption takes off.
AMD Orochi aims to allow NVIDIA CUDA and AMD HIP support to exist within a single code-base and binaries. Orochi provides a library that loads the HIP and CUDA driver APIs dynamically at run-time. Therefore a single application binary can work on both AMD GPUs and NVIDIA GPUs.
Orochi is a library that loads HIP and CUDA® driver APIs dynamically at runtime. By switching the CUDA/HIP calls in your app to Orochi calls, you can compile a single executable that will run on both AMD and NVIDIA GPUs. This streamlines the deployment of your GPU accelerated applications and makes it easy to provide cross-platform support with a single API, thus eliminating the overhead of maintaining separate backends for each platform. We chose the name Orochi as it’s named after the legendary eight-headed Japanese dragon, which goes well with the purpose of our library – to allow a single library with multiple backends at runtime.
AMD announced Orochi today on GPUOpen.com. The code is available via GitHub under an MIT license.