mrkeyoor.com_
Fri 16 Oct 18:51 UTC
Dev Toolsevaluationupdated 14 Oct 2026

ZLUDA review

ZLUDA is a compatibility layer that lets unmodified CUDA applications run on supported AMD GPUs. It aims to let you use software built for NVIDIA hardware without rewriting the application, though compatibility depends on the workload.

+17 / 1dstars / 7d
Verdict

Our ZLUDA run installed 204 packages in 15 seconds but failed its build at a Git LFS stub after 67 seconds, so we never reached usable CUDA execution. Try it for an existing CUDA binary on supported Radeon hardware only if you can validate the whole workload. Windows ML users also need to accept the documented nightly HIP SDK route. If you own the source, an explicit HIP port may be easier to maintain than chasing binary compatibility.

We ran it

Lab card: what happened when we ran ZLUDAScreenshot of ZLUDA (vosen.github.io/ZLUDA)
Install✓ · 15s204 packages
Build✗ · 67s
Tests✗ · 51sran, no count parsed
Repo166326 files~16,291,781 lines of source · 1980.5 MB · 4 CI workflows

Answers from our run

Does ZLUDA build from source?

Dependencies installed in 15 seconds (204 packages), and the build failed. We cloned commit 86ec0a9 into a clean Debian container with 3 CPUs and no project-specific setup.

Do ZLUDA's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use ZLUDA?

Owners of Intel GPUs, older Radeon architectures, or server-class AMD GPUs: the hardware FAQ excludes them from current support.

What are the alternatives to ZLUDA?

HIP, AdaptiveCpp. Our ZLUDA run installed 204 packages in 15 seconds but failed its build at a Git LFS stub after 67 seconds, so we never reached usable CUDA execution.

Setup2/5204 packages installed; an LFS stub blocked build and tests
Docs3/5Useful runtime guides; source instructions omit Git LFS
Community4/5October compiler work and current workload reports
Maturity2/5Application compatibility remains conditional; our build stopped

Discussed on

  1. hnZluda: CUDA on Intel GPUs261 points
  2. hnZluda: Run CUDA code on Intel GPUs, unmodified237 points
  3. hnZluda 6 release (run unmodified CUDA applications on non-Nvidia GPUs)163 points
  4. hnZLUDA's Third Life7 points
  5. hnZLUDA update Q3 2025 – ZLUDA 5 is here6 points

Who it’s for

Developers trying an existing CUDA application on a supported Radeon who can check complete workloads and collect traces.
Teams that cannot change an application's source but can control its library-loading environment.
Compiler contributors comfortable with a large Rust and LLVM checkout, submodules, and Git LFS assets.

Who it’s NOT for

Owners of Intel GPUs, older Radeon architectures, or server-class AMD GPUs: the hardware FAQ excludes them from current support.
macOS users: the quick start explicitly lists that platform as unsupported.
Windows ML teams limited to AMD's official stable HIP SDK: the guide says PyTorch and TensorFlow need the nightly SDK route.
Operators assuming successful library initialization proves model compatibility: issue 684 reports an initialized ONNX Runtime session failing at ReduceMean with cudaErrorSymbolNotFound.

Setup reality

Our sandbox installed 204 packages in 15 seconds at commit 86ec0a9. The build failed after 67 seconds and tests failed after 51 seconds, both with exit 101. Each stopped in llvm_zluda because src/device-libs/ockl.bc was a Git LFS stub; the log explicitly requested git lfs pull. The checkout occupied 1,980.5 MB.

Source work needs submodules and actual LFS content, plus the documented CMake, Python, Rust, and C++ tools. Linux needs HIP. Running applications needs supported AMD hardware and local runtime libraries, without a hosted service credential. Our logs contain no retry after fetching LFS objects.

Windows needs a recent AMD driver and an appropriate HIP SDK; its ML route uses nightly SDK tarballs and HIP_PATH. Linux requires library-path configuration. macOS is unsupported. Our unprivileged Debian run used 3 CPUs, 12 GB of RAM, and lab-rust:1, so it provides no successful GPU execution or performance result.

Unmodified CUDA applications still need individual compatibility checks

ZLUDA lets an application written for NVIDIA CUDA attempt GPU work on supported AMD hardware without changing its source. That could rescue software whose developer only ships a CUDA path. The quick start, however, warns that the project is under heavy development and may not work with your application. I'd treat a specific workload as the unit of adoption. A library loading successfully doesn't establish that every operation behind it works.

The hardware FAQ limits current support to Radeon RX 5000 series and newer desktop and integrated GPUs. Older consumer architectures and server-class GPUs are excluded. Intel support existed previously but isn't current, and macOS is unsupported. Read that list before interpreting the README's broader non-NVIDIA description. ZLUDA is a plausible experiment for an existing supported Radeon, with much less reason to choose it before buying hardware.

What happened when we ran it

Our ZLUDA run installed 204 packages in 15 seconds, then failed its build after 67 seconds and its test command after 51 seconds. We cloned commit 86ec0a9 on October 14, 2026. Our measurement setup was a fresh, unprivileged Debian container using image lab-rust:1, with 3 CPUs and 12 GB of RAM and no secrets. The successful install step did not produce a usable application because compilation stopped afterward.

The build exited with code 101 while running the custom build command for llvm_zluda. Its log identifies src/device-libs/ockl.bc as a Git LFS stub rather than the actual file and tells the user to run git lfs pull. In plain terms, the checkout contained a pointer where the build needed the file's contents. The log supports that diagnosis directly. It doesn't show a driver problem or a GPU compatibility failure.

The test command also exited with code 101, after 51 seconds, at the same custom build step and the same missing file. This is a blocked test run, without evidence of failed assertions or any passing cases. Fetching the LFS objects is the stated next step. Our supplied results contain no retry afterward, so we cannot say the remaining build would succeed or that application workloads would run correctly.

A 1,980.5 MB checkout was still missing required file contents

We measured 166,326 files, approximately 16,291,781 source lines, and 1,980.5 MB in the checkout. Even that volume didn't ensure all required assets were present: the LFS stub stopped compilation. Source contributors should distinguish a completed Git clone from a build-ready working tree. If your automation archives or mirrors repositories, confirm that its handling of LFS objects preserves the actual content needed by this project.

Our scan recorded 4 CI workflow files, no Dockerfile, and no tests directory. Those directory signals don't establish test coverage. The build guide lists CMake, Python, Rust, and a C++ compiler, plus HIP on Linux. It tells you to clone recursively for submodules and use cargo xtask --release. It doesn't mention Git LFS. The error message gives a useful correction to the checkout instructions, rather than evidence that Rust package installation itself was broken.

Windows machine learning needs the nightly HIP SDK route

The Windows HIP guide says AMD's official SDK lacks the machine-learning support needed for PyTorch and TensorFlow in this workflow. It directs those users to nightly SDK tarballs, with manual extraction and HIP_PATH configuration. Nightly means accepting a moving component without stability guarantees. Choose the archive for your GPU architecture, then verify the libraries the application actually loads. A familiar Windows installer isn't the documented route for these workloads.

The 15-second package install in our sandbox measures none of that runtime setup. Normal Windows usage calls for a recent AMD driver and the appropriate HIP SDK. Linux usage redirects the application toward ZLUDA's libraries through LD_LIBRARY_PATH. Neither path calls for a hosted inference account or API credential. Your operating dependencies are local hardware and libraries, and the application can still pick up a different library already loaded into its process.

ONNX Runtime can initialize before a model operation fails

Issue 684 reports an ONNX Runtime session that initialized on a Radeon RX 6700 XT, then failed during an audio-separation model's ReduceMean operation with cudaErrorSymbolNotFound. The reporter used a preview release on Windows and had not attached a trace. That limits diagnosis, but the report directly concerns CUDA execution through ZLUDA. It is a reason to exercise the full model graph before declaring an application compatible.

Our 67-second build failure occurred earlier and establishes a different limitation. We never reached an application whose output or speed we could check. For adoption, compare representative outputs with a known-working run, including less frequent operations. If an application fails, ZLUDA provides tracing tools for collecting CUDA calls and compiler errors. Keep the exact application, SDK, driver, and ZLUDA versions with those traces so a later update doesn't erase what you learned.

October development continued after the June v6 release

The last push was October 12, 2026. Stable release v6 dates to June 29, while October pull-request activity addresses compiler behavior, including floating-point conversion modes. GitHub showed 15,049 stars and 164 open issues and PRs on October 14. The older stable tag therefore doesn't establish abandonment. Maintenance is current, though the docs' warning about application compatibility still deserves more weight than the star count.

If you control the source, consider HIP for an explicit AMD port or AdaptiveCpp for a broader C++ portability effort. Both change the engineering job compared with running an existing CUDA binary. ZLUDA earns a trial when that binary is the constraint and supported Radeon hardware is already available. Start by resolving the exact ockl.bc LFS failure our run found, then require your own workload to finish before making ZLUDA part of a service promise.

Alternatives

ProjectWhat it isPick it when
HIPAMD GPU runtime API and kernel language for porting CUDA-style C++ applications.pick this instead when you control the source and can maintain an explicit AMD port instead of depending on binary compatibility.
AdaptiveCppA C++ compiler platform for heterogeneous programming across CPU and GPU vendors.pick this instead when you can change and recompile the application for a broader portability strategy.

What people are saying

  1. [github-trending] vosen/ZLUDA

Sources

  1. ZLUDA repository and README
  2. ZLUDA building from source
  3. ZLUDA hardware and software FAQ
  4. ZLUDA Windows HIP SDK guide
  5. Issue 684: ONNX Runtime ReduceMean failure
  6. ZLUDA v6 release notes
  7. HIP project
  8. AdaptiveCpp project

More dev tools reviews

compose-samples · librepods · sqlmap · coucou · world-execute-me-dsh-pv · mcp-extensions · the whole board →