CUDA on ??? GPUs
Find a file
Violet f5712d9d5a
Some checks failed
ZLUDA / Build (Linux) (push) Has been cancelled
ZLUDA / Build (Windows) (push) Has been cancelled
ZLUDA / Build AMD GPU unit tests (push) Has been cancelled
ZLUDA / Run AMD GPU unit tests (push) Has been cancelled
Add parser support for hyphenated IDs in arguments (#425)
The syntax description for [`cp.async`](https://docs.nvidia.com/cuda/parallel-thread-execution/#data-movement-and-conversion-instructions-cp-async) has several elements not supported by the current parser. One such element is that the `cp-size` and `src-size` operands have hyphens in their IDs. This PR adds support for these IDs, and translates them as `cp_size` and `src_size`
2025-07-18 13:45:09 -07:00
.cargo Improve build system (#329) 2025-01-28 01:55:36 +01:00
.devcontainer Create infrastructure for performance libraries (#363) 2025-05-01 22:37:18 +02:00
.github/workflows Enable sccache in Rust builds, publish prerelease builds (#408) 2025-07-09 09:20:03 -07:00
comgr Remove duplicate call to linker (#410) 2025-07-10 12:44:22 -07:00
cuda_base Implement cuLibraryLoadData (#388) 2025-06-18 16:05:53 -07:00
cuda_types Implement cuLibraryLoadData (#388) 2025-06-18 16:05:53 -07:00
dark_api Make sure it is possible to log 32bit PhysX (#374) 2025-07-08 10:19:49 -07:00
detours-sys Redo logging to better log dark API and performance libraries (#372) 2025-06-09 15:29:14 -07:00
ext Work around broken AMD Adrenalin 25.5.1 driver (#366) 2025-05-13 02:20:23 +02:00
format Make sure it is possible to log 32bit PhysX (#374) 2025-07-08 10:19:49 -07:00
llvm_zluda Run unit tests on every commit (#401) 2025-07-03 16:07:00 -07:00
ptx Add support for shfl.sync.MODE.b32 (#409) 2025-07-16 17:23:11 -07:00
ptx_parser Improve error recovery (#418) 2025-07-17 10:02:03 -07:00
ptx_parser_macros Add parser support for hyphenated IDs in arguments (#425) 2025-07-18 13:45:09 -07:00
ptx_parser_macros_impl Add parser support for hyphenated IDs in arguments (#425) 2025-07-18 13:45:09 -07:00
xtask Bump dependencies (#392) 2025-06-23 18:04:08 -07:00
zluda Make sure it is possible to log 32bit PhysX (#374) 2025-07-08 10:19:49 -07:00
zluda_bindgen Redo logging to better log dark API and performance libraries (#372) 2025-06-09 15:29:14 -07:00
zluda_blas Create infrastructure for performance libraries (#363) 2025-05-01 22:37:18 +02:00
zluda_blaslt Redo logging to better log dark API and performance libraries (#372) 2025-06-09 15:29:14 -07:00
zluda_dnn Create infrastructure for performance libraries (#363) 2025-05-01 22:37:18 +02:00
zluda_dump Make sure it is possible to log 32bit PhysX (#374) 2025-07-08 10:19:49 -07:00
zluda_dump_blas Redo logging to better log dark API and performance libraries (#372) 2025-06-09 15:29:14 -07:00
zluda_dump_blaslt Redo logging to better log dark API and performance libraries (#372) 2025-06-09 15:29:14 -07:00
zluda_dump_common Make sure it is possible to log 32bit PhysX (#374) 2025-07-08 10:19:49 -07:00
zluda_dump_dnn Redo logging to better log dark API and performance libraries (#372) 2025-06-09 15:29:14 -07:00
zluda_dump_fft Redo logging to better log dark API and performance libraries (#372) 2025-06-09 15:29:14 -07:00
zluda_dump_sparse Redo logging to better log dark API and performance libraries (#372) 2025-06-09 15:29:14 -07:00
zluda_fft Create infrastructure for performance libraries (#363) 2025-05-01 22:37:18 +02:00
zluda_inject Make sure it is possible to log 32bit PhysX (#374) 2025-07-08 10:19:49 -07:00
zluda_ml Improve build system (#329) 2025-01-28 01:55:36 +01:00
zluda_redirect Make sure it is possible to log 32bit PhysX (#374) 2025-07-08 10:19:49 -07:00
zluda_sparse Redo logging to better log dark API and performance libraries (#372) 2025-06-09 15:29:14 -07:00
.gitattributes Fix linguist instructions 2024-08-07 13:29:03 +02:00
.gitignore Add support for shfl.sync.MODE.b32 (#409) 2025-07-16 17:23:11 -07:00
.gitmodules Fix host code and update to CUDA 12.4 (#299) 2024-12-02 00:29:57 +01:00
Cargo.lock Implement more CUDA driver API to enable simple cuda-samples (#405) 2025-07-08 10:18:30 -07:00
Cargo.toml Redo logging to better log dark API and performance libraries (#372) 2025-06-09 15:29:14 -07:00
geekbench.svg Update README for version 4 (#315) 2024-12-31 17:33:59 +01:00
LICENSE-APACHE Update wording, add license 2020-11-24 23:23:53 +01:00
LICENSE-MIT Update wording, add license 2020-11-24 23:23:53 +01:00
README.md Fix typo in README.md (either) (#419) 2025-07-17 09:32:41 -07: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 either:

  • (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