Accelerate your code with Fabric¶
Set accelerator and devices¶
Fabric enables you to take full advantage of the hardware on your system. It supports
CPU
GPU (NVIDIA, AMD, Apple Silicon)
TPU
By default, Fabric recognizes the accelerator(s) on your system
# Default settings
fabric = Fabric(accelerator="auto", devices="auto")
# Same as
fabric = Fabric()
This is the most flexible option and makes your code run on most systems. You can also explicitly set which accelerator to use:
# CPU (slow)
fabric = Fabric(accelerator="cpu")
# GPU
fabric = Fabric(accelerator="gpu", devices=1)
# GPU (multiple)
fabric = Fabric(accelerator="gpu", devices=8)
# GPU: Apple M1/M2 only
fabric = Fabric(accelerator="mps", devices=8)
# GPU: NVIDIA CUDA only
fabric = Fabric(accelerator="cuda", devices=8)
# TPU
fabric = Fabric(accelerator="tpu", devices=8)
For running on multiple devices in parallel, also known as “distributed”, read our guide for Launching Multiple Processes.
Access the Device¶
You can access the device anytime through fabric.device
.
This lets you replace boilerplate code like this:
- if torch.cuda.is_available():
- device = torch.device("cuda")
- else:
- device = torch.device("cpu")
+ device = fabric.device