CUDA is an acronym that stands for “Compute Unified Device Architecture“. It is a platform parallel computing developed by NVidia for its graphics processing units (GPUs). It provides a programming model and set of extensions for the C programming language, allowing developers to write code that can run on NVidia GPUs in order to accomplish high-performance tasks. high computational intensity.
Thanks to CUDA, developers can take advantage of the computing power of modern GPUs in order to perform operations efficiently. The approach that looks distinctly at parallelization proves to be very useful in the case of machine learningscientific simulation, graphics rendering, and other demanding workloads.
The solution proposed by NVidia also relies on a development environment which includes a compiler, GPU-optimized libraries, and tools to optimize code performance. For these reasons, CUDA has become a real point of reference in the industry and in the scientific community itself for parallel computing and accelerate a wide range of applications.
In December 2023, Intel CEO Pat Gelsinger he shot down NVidia by claiming that CUDA is not synonymous with artificial intelligence and reiterating the progress made by his company in the AI sector.
AMD and Intel tried to build a bridge to NVidia CUDA with ZLUDA, which is now open source
ZLUDA is an open source project created to allow CUDA support on graphics cards AMD Radeon. In reality, the idea was initially born at Intel: the idea was to enable the CUDA support on the graphics of the Santa Clara company, but the project was interrupted for unknown reasons.
Subsequently, Andrzej Janikthe developer of ZLUDA (who worked for Intel), was hired by AMD in 2022. His task was to adapt ZLUDA for use on GPU AMD with the HIP/ROCm platform.
HIP (Heterogeneous-Compute Interface for Portability) is a programming platform that allows developers to write portable code for parallel processing on graphics processing units (GPUs) and other computing accelerators.
ROCm (Radeon Open Compute) is an open software platform from AMD designed to support heterogeneous computing across various acceleration architectures, including AMD graphics processors and other processing units. ROCm provides support for several Programming APIincluding HIP, OpenCL and ROCm Language Extensions (RocL).
The objectives of ZLUDA, a solution interoperable with NVidia CUDA
The goal of ZLUDA is to provide a CUDA implementation that can be used directly on ROCm without the need to make changes to the source code. This means many software CUDA can be run on HIP/ROCm without any changes.
Janik has dedicated the last two years to bringing ZLUDA to the GPU Radeon, obtaining positive results. Of course, some limitations remain and not all the features originally implemented by NVidia can be used on the AMD side. But the approach works, and considering that the system is the work of a single developer, the implementation is surprisingly effective.
AMD also chose not to continue to subsidize the ZLUDA project this year but the contractual clauses allowed Janik to publish and distribute it as an open source product. Effectively marking a new beginning for the entire community.
Dual-licensed (Apache 2.0 and MIT), the ZLUDA source code makes use of the Rust programming language. During development, ZLUDA was primarily tested on hardware RDNA2 (Radeon RX 6000 series), but tests on RDNA3 hardware (Radeon RX 7000) still revealed positive results, despite it not being the main target.
The future of ZLUDA is uncertain but the open source community could play an essential role
AMD’s decision to discontinue work on ZLUDA, funded by Lisa Su’s company, may be understandable from a business perspective, considering the general improvement in native software support for ROCm/HIP over the years. However, considering the ubiquity of NVIDIA CUDA, there is a lot of software that could benefit from ZLUDA’s approach, giving Radeon GPU users the advantage of porting applications designed for the NVidia architecture directly to these cards.
ZLUDA shares some of the same issues as ROCm. Despite this, however, ZLUDA represents an amazing solution for those who want run CUDA software on AMD Radeon hardware. The openness of the source code offers ample opportunity for growth through community contributions.
The hope of Janik and many developers is that the project can receive the necessary support to continue to evolve by offering an attractive alternative for supporting NVidia CUDA “binaries” on AMD GPUs.