AMD ROCm Solution Enables Native Execution of NVIDIA CUDA Binaries on Radeon GPUs

AMD has introduced a solution using ROCm technology to enable the running of NVIDIA CUDA binaries on AMD graphics hardware without any modifications. This project, known as ZLUDA, was discreetly backed by AMD over two years. Initially aimed at making CUDA compatible with Intel graphics, ZLUDA was reconfigured by developer Andrzej Janik, who was hired by AMD in 2022, to also support AMD's Radeon GPUs through the HIP/ROCm framework. The project, which took two years to develop, allows for CUDA compatibility on AMD devices without the need to alter the original source code.

Despite choosing not to commercialize ZLUDA, AMD made the project open-source after the funding period ended. Performance tests by Phoronix have shown that AMD's ZLUDA implementation performs well in various tests. ZLUDA enables CUDA applications to run directly on AMD graphics hardware without any code changes. Using the ZLUDA library, developers can effectively bypass CUDA, allowing for smooth operation on Radeon GPUs. Although AMD has ceased its support, the project remains active as open-source, with continued contributions from the developer community.

Performance benchmarks reveal that ZLUDA significantly enhances performance in certain applications, such as Blender 4.0 rendering, where it allows AMD GPUs to surpass the performance of native ROCm/HIP solutions by 10-20%. Despite some limitations, like partial support for OptiX and PTX assembly languages, the results are generally positive. In tests like Geekbench, when compared to standard OpenCL runtimes, using ZLUDA with CUDA-optimized binaries shows up to a 75% performance increase.

The ongoing compatibility of the project with AMD ROCm 5.7 poses questions about AMD's future involvement, especially with newer versions of ROCm on the horizon. Nevertheless, the project's open-source status encourages community efforts to further improve its compatibility and functionality.


Sources: PhoronixZLUDA

Printed from: