EnzymeAD / EnzymeAD/Reactant.jl

Preparing Reactant GPU backend on online CPU‑only machine for offline GPU deployment

Open
#2,829 7 comments 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
370
Forks
74
Avg merge
18h 34m
Merged PRs (30d)
32

Description

## Summary

My setup:

- Machine A: internet, no GPU (build/prepare)
- Machine B: GPU, no internet (runtime)

I can:

- use Pkg on A to install CUDA.jl, Reactant, Enzyme, etc.
- copy the depot/envs from A to B
- run CUDA.jl + Enzyme directly on B (CuArray works)
- run Reactant on CPU on B

But I **cannot** reliably get Reactant's GPU backend working on B. Calls
like `Reactant.set_default_backend("gpu")` fail with errors such as
"no GPU client found / no functional client". It seems some PJRT/CUDA
pieces are only downloaded/initialized when running Reactant on a machine
that already has a GPU.

## Feature request

It would be very helpful if Reactant provided either:

- a helper like

```julia
Reactant.prepare_gpu_backend(target="cuda", cuda_version="12.4")
```

that I can run on A (even without a GPU) to download/materialize
everything the CUDA/PJRT backend needs, or

- a documented sequence of steps/env vars that let me:

1. fully prepare the GPU backend on A
2. copy depot/envs to B
3. use Reactant's GPU backend on B completely offline

Even a clearly documented "you must run X once on a machine with a GPU,
then copy depot" workflow would already help a lot for offline / air‑gapped
environments.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.