Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion docs/src/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ Reactant.set_default_backend("cpu")
const dev = reactant_device()
```

```julia [GPU Backend]
```julia [GPU Backend (CUDA / ROCM)]
using Reactant, Lux
Reactant.set_default_backend("gpu")

Expand All @@ -97,6 +97,13 @@ Reactant.set_default_backend("tpu")
const dev = reactant_device()
```

```julia [Tenstorrent Backend (Experimental)]
using Reactant, Lux
Reactant.set_default_backend("tt")

const dev = reactant_device()
```

:::

## Want GPU Support?
Expand All @@ -105,6 +112,11 @@ const dev = reactant_device()

In almost all cases, we recommend using Reactant.jl for GPU support.

!!! warning "AMD GPU Support"

For AMD GPUs, we **strongly recommend using Reactant** instead of AMDGPU.jl directly.
Native AMDGPU.jl support is experimental and has known limitations including deadlocks
in certain situations. Reactant provides better performance and reliability for AMD GPUs.

Install the following package(s):

Expand Down
8 changes: 7 additions & 1 deletion docs/src/introduction/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -186,9 +186,15 @@ Lux.jl supports XLA compilation for CPU, GPU, and TPU using

Using accelerators via Reactant and XLA is the preferred way to use GPUs with Lux.jl.

!!! danger "AMD GPU Users"

For AMD GPUs, we **strongly recommend using Reactant** instead of native AMDGPU.jl
support. Native AMDGPU.jl support is experimental with known issues including deadlocks.
Reactant provides superior performance and reliability for AMD hardware.

GPU Support for Lux.jl requires loading additional packages:

- [`LuxCUDA.jl`](https://github.com/LuxDL/LuxCUDA.jl) for CUDA support.
- [`AMDGPU.jl`](https://github.com/JuliaGPU/AMDGPU.jl) for AMDGPU support.
- [`AMDGPU.jl`](https://github.com/JuliaGPU/AMDGPU.jl) for AMDGPU support (not recommended, use Reactant instead).
- [`Metal.jl`](https://github.com/JuliaGPU/Metal.jl) for Apple Metal support.
- [`oneAPI.jl`](https://github.com/JuliaGPU/oneAPI.jl) for oneAPI support.
6 changes: 3 additions & 3 deletions docs/src/manual/autodiff.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,9 @@ Lux. Additionally, we provide some convenience functions for working with AD.

- For GPU Use cases:

1. Use `Reactant.jl` + `Enzyme.jl` for the best performance. This is the most reliable and fastest option, but presently
only supports NVIDIA GPU's. AMD GPUs are currently not supported.
2. Use `Zygote.jl` for the best performance on non-NVIDIA GPUs. This is the most reliable and fastest
1. Use `Reactant.jl` + `Enzyme.jl` for the best performance. This is the most reliable and fastest option
for both NVIDIA and AMD GPUs.
2. Use `Zygote.jl` for the best performance on non-NVIDIA GPUs if not using Reactant. This is the most reliable and fastest
non-`Reactant.jl` option for GPU for the time-being. We are working on supporting `Enzyme.jl` without
`Reactant.jl` for GPU as well.

Expand Down
5 changes: 3 additions & 2 deletions docs/src/manual/distributed_utils.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,5 +97,6 @@ And that's pretty much it!

1. Currently we don't run tests with CUDA or ROCM aware MPI, use those features at your own
risk. We are working on adding tests for these features.
2. AMDGPU support is mostly experimental and causes deadlocks in certain situations, this is
being investigated. If you have a minimal reproducer for this, please open an issue.
2. Native AMDGPU.jl support is experimental and causes deadlocks in certain situations. **For
AMD GPUs, we strongly recommend using Reactant instead of native AMDGPU.jl for distributed
training.** If you have a minimal reproducer for AMDGPU.jl issues, please open an issue.
6 changes: 6 additions & 0 deletions docs/src/manual/gpu_management.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@ supported_gpu_backends()
automatically select Reactant backend if available. Additionally to force Reactant to
use `gpu`, you can run `Reactant.set_default_backend("gpu")` (this is automatic).

!!! danger "AMD GPU Support"

For AMD GPUs, we **strongly recommend using Reactant** instead of native AMDGPU.jl.
Native AMDGPU.jl support is experimental with known limitations including deadlocks
in distributed training. Use `reactant_device()` with Reactant for better AMD GPU support.

!!! danger "Metal Support"

Support for Metal GPUs should be considered extremely experimental at this point.
Expand Down
Loading