2025-07-16 17:22:59 -07:00
2025-01-28 01:55:36 +01:00
2025-07-16 17:22:59 -07:00
2025-07-16 11:02:17 -07:00
2025-06-23 18:04:08 -07:00
2025-01-28 01:55:36 +01:00
2024-08-07 13:29:03 +02:00
2020-02-09 20:32:21 +01:00
2020-11-24 23:23:53 +01:00
2020-11-24 23:23:53 +01:00

Discord

ZLUDA

ZLUDA is a drop-in replacement for CUDA on non-NVIDIA GPUs. ZLUDA allows running unmodified CUDA applications using non-NVIDIA GPUs with near-native performance.

ZLUDA supports AMD Radeon RX 5000 series and newer GPUs (both desktop and integrated).

GeekBench 5.5.1 chart

ZLUDA is a work in progress. Follow development here and say hi on Discord. For more details, see the announcement: https://vosen.github.io/ZLUDA/blog/zludas-third-life/

Usage

Warning: This version ZLUDA is under heavy development (more here) and right now only supports Geekbench. ZLUDA probably will not work with your application just yet.

Windows

You should have a recent AMD GPU driver ("AMD Software: Adrenalin Edition") installed.
To run your application, you should etiher:

  • (Recommended approach) Copy ZLUDA-provided nvcuda.dll and nvml.dll from target\release (if built from sources) or zluda (if downloaded a zip package) into a path which your application uses to load CUDA. Paths vary application to application, but usually it's the directory where the .exe file is located
  • Use ZLUDA launcher like below. ZLUDA launcher is known to be buggy and incomplete:
    <ZLUDA_DIRECTORY>\zluda_with.exe -- <APPLICATION> <APPLICATIONS_ARGUMENTS>
    

Linux

Run your application like this:

LD_LIBRARY_PATH=<ZLUDA_DIRECTORY> <APPLICATION> <APPLICATIONS_ARGUMENTS>

where <ZLUDA_DIRECTORY> is the directory which contains ZLUDA-provided libcuda.so: target/release if you built from sources or zluda if you downloaded a prebuilt package.

MacOS

Not supported

Building

Dependencies

  • Git
  • CMake
  • Python 3
  • Rust compiler (recent version)
  • C++ compiler
  • (Optional, but recommended) Ninja build system

Build steps

  • Git clone the repo (make sure to use --recursive option to fetch submodules):
    git clone --recursive https://github.com/vosen/ZLUDA.git
  • Enter freshly cloned ZLUDA directory and build with cargo (this takes a while):
    cargo xtask --release

Contributing

ZLUDA project has a commercial backing and does not accept donations. ZLUDA project accepts pull requests and other non-monetary contributions.

If you want to contribute a code fix or documentation update, feel free to open a Pull Request.

Getting started

There's no architecture document (yet). The two most important crates in ZLUDA are ptx (PTX compiler) and zluda (AMD GPU runtime). A good starting point to tinkering with the project is to run one of the ptx unit tests under a debugger and understand what it is doing. cargo test -p ptx -- ::add_amdgpu is a simple test that adds two numbers.

Github issues tagged with "help wanted" are tasks that are self-contained. Their level of difficulty varies, and they are not always good beginner tasks, but they are defined unambiguously.

If you have questions, feel free to ask on #devtalk channel on Discord.

License

This software is dual-licensed under either the Apache 2.0 license or the MIT license. See LICENSE-APACHE or LICENSE-MIT for details

Description
CUDA on non-NVIDIA GPUs
Readme
Languages
Rust 95.8%
LLVM 3.3%
C 0.5%
C++ 0.3%