https://github.com/vosen/ZLUDA
CUDA on non-NVIDIA GPUs
https://github.com/vosen/ZLUDA
cuda rust
Last synced: about 2 months ago
JSON representation
CUDA on non-NVIDIA GPUs
- Host: GitHub
- URL: https://github.com/vosen/ZLUDA
- Owner: vosen
- License: apache-2.0
- Created: 2020-01-05T18:26:03.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-16T01:15:49.000Z (8 months ago)
- Last Synced: 2024-10-29T15:36:06.956Z (7 months ago)
- Topics: cuda, rust
- Language: Rust
- Homepage: https://vosen.github.io/ZLUDA/
- Size: 3.64 MB
- Stars: 9,578
- Watchers: 132
- Forks: 625
- Open Issues: 96
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE-APACHE
Awesome Lists containing this project
- Awesome-Daily - ZLUDA - native performance on AMD GPUs. (:steam_locomotive: Runtime Environment / Web Development)
- awesome-high-performance-computing - Zluda - Run unmodified CUDA applications with near-native performance on Intel AMD GPUs. (Software / Trends)
- awesome-useful-projects - <img src="https://icon.horse/icon/github.com" height="20px" align="center"/>/vosen/ZLUDA - CUDA on ??? GPUs (Other / Other)
- awesome-useful-projects - <img src="https://icon.horse/icon/github.com" height="20px" align="center"/>/vosen/ZLUDA - CUDA on ??? GPUs (Jump To / Other)
- StarryDivineSky - vosen/ZLUDA
- awesome-starred - vosen/ZLUDA - CUDA on Intel GPUs (rust)
- my-awesome - vosen/ZLUDA - 04 star:11.2k fork:0.7k CUDA on non-NVIDIA GPUs (Rust)
- awesome-cuda-and-hpc - ZLUDA
- awesome-cuda-and-hpc - ZLUDA
- awesome-rust-list - ZLUDA
- awesome-rust-list - ZLUDA
- AiTreasureBox - vosen/ZLUDA - 05-13_11314_1](https://img.shields.io/github/stars/vosen/ZLUDA.svg)|CUDA on AMD GPUs| (Repos)
README
[](https://discord.gg/sg6BNzXuc7)
# ZLUDA
ZLUDA is a drop-in replacement for CUDA on non-NVIDIA GPU. ZLUDA allows to run 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).

ZLUDA is work in progress. Follow development here and say hi on [Discord](https://discord.gg/sg6BNzXuc7). 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](https://vosen.github.io/ZLUDA/blog/zludas-third-life/)) and right now only supports Geekbench. ZLUDA probably will not work with your application just yet.### Windows
You should have 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_with.exe --
```### Linux
Run your application like this:
```
LD_LIBRARY_PATH=
```where `` is the directory which contains ZLUDA-provided `libcuda.so`: `target/release` if you built from sources or `zluda` if you downloaded prebuilt package.
### MacOS
Not supported
## Building
### Dependencies
* Git
* CMake
* Python 3
* Rust compiler (recent version)
* C++ compiler
* (Optional, but recommended) [Ninja build system](https://ninja-build.org/)### 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). Two most important crates in ZLUDA are `ptx` (PTX compiler) and `zluda` (AMD GPU runtime). A good starting point to tinkering 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_hip` is a simple test that adds two numbers.
Github issues tagged with ["help wanted"](https://github.com/vosen/ZLUDA/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) are tasks that are self-containted. Their level of difficulty varies, they are not always good beginner tasks, but they defined unambiguously.
If you have questions feel free to ask on [#devtalk channel on Discord](https://discord.com/channels/1273316903783497778/1303329281409159270).
## License
This software is dual-licensed under either the Apache 2.0 license or the MIT license. See [LICENSE-APACHE](LICENSE-APACHE) or [LICENSE-MIT](LICENSE-MIT) for details