Radeon Open Compute’s ZLUDA Implementation
There has been a bit of news lately about how AMD developed a way to implement CUDA on Radeon GPUs, though some of the headlines are a bit more exciting than the actual capabilities of ZLUDA. Andrzej Janik worked at Intel for several years, working on a way to implement CUDA platform on Intel silicon. He and his team were successful and ZLUDA was born, although not adopted by Intel. When he left Intel in 2022 he was contracted by AMD to implement ZLUDA for use on AMD GPUs with HIP/ROCm. This project was to be kept quiet, so no code was posted to Github until AMD also chose not to adopt ZLUDA.
Part of the agreement with AMD was that if they did not adopt ZLUDA, Andrzej would be allowed to release it as open source code, which is where all the headlines of the past couple of days came from. Phoronix have been taking a deep look at ZLUDA and have found there are some current limitations such as the fact it runs on the older ROCm 5.x API and not the newest version. That said, when running benchmarks that are CUDA aware, AMD RDNA2 GPUs do certainly see a boost in performance, sometimes an impressive one.
There is no question this is an impressive example of coding skills, enabling both Intel and AMD GPUs to run CUDA is no mean feat. The problem is that both Intel and AMD have their own solutions they would like to see compete with CUDA. NVIDIA also has a huge advantage, as their hardware is specifically developed to optimize CUDA instructions, and they are the owners of it as well. What will be interesting is to see what the public does with ZLUDA now that it is open source.