
Support both HIP and CUDA® with ease
The Orochi library loads HIP and CUDA® APIs dynamically, allowing you to switch between them at runtime. Orochi is named after a legendary Japanese dragon with eight heads and eight tails on a single body. In keeping with its namesake, Orochi enables a single library to use multiple backends at runtime.
Download the latest version - v0.00
This release adds the following features:
- Initial release
Features
- No need to compile two separate implementations for HIP and CUDA.
- Compile and maintain a single binary that can run on both AMD and NVIDIA® GPUs.
- Dynamically load the corresponding HIP/CUDA shared libraries depending on your platform.
- Combines the functionality offered by both HIPEW and CUEW into a single library.
- No need to link to CUDA (for the driver APIs) nor HIP (for both driver and runtime APIs) at build-time.
- No need to install HIP SDK on your machine, or CUDA SDK in case you're not using the runtime APIs.

Requirements
To run an application compiled with Orochi, you need to install a driver of your choice with the corresponding .dll/.so files based on the GPU(s) available. Orochi will automatically link with the corresponding shared library at runtime.
Version history
- Initial release
Our other SDKs

HIP RT is a ray tracing library for HIP, making it easy to write ray tracing applications in HIP.

AMD Radeon™ ProRender is our fast, easy, and incredible physically-based rendering engine built on industry standards that enables accelerated rendering on virtually any GPU, any CPU, and any OS in over a dozen leading digital content creation and CAD applications.

Radeon™ Machine Learning (Radeon™ ML or RML) is an AMD SDK for high-performance deep learning inference on GPUs.

Harness the power of machine learning to enhance images with denoising, enabling your application to produce high quality images in a fraction of the time traditional denoising filters take.

The Advanced Media Framework SDK provides developers with optimal access to AMD GPUs for multimedia processing.

The D3D12 Memory Allocator (D3D12MA) is a C++ library that provides a simple and easy-to-integrate API to help you allocate memory for DirectX®12 buffers and textures.

The AMD Display Library (ADL) SDK is designed to access display driver functionality for AMD Radeon™ and AMD FirePro™ graphics cards.

The AMD GPU Services (AGS) library provides software developers with the ability to query AMD GPU software and hardware state information that is not normally available through standard operating systems or graphics APIs.

VMA is our single-header, MIT-licensed, C++ library for easily and efficiently managing memory allocation for your Vulkan® games and applications.

AMD TrueAudio Next is a software development kit for GPU accelerated and multi-core high-performance audio signal processing.

AMD Radeon™ ProRender is a powerful physically-based path traced rendering engine that enables creative professionals to produce stunningly photorealistic images.

The lightweight accelerated ray intersection library for DirectX®12 and Vulkan®.
NVIDIA and CUDA are registered trademarks of NVIDIA Corporation.