tinygrad supports various runtimes, enabling your code to scale across a wide range of devices. The default runtime can be automatically selected based on the available hardware, or you can force a specific runtime to be default using environment variables (e.g., CLANG=1
).
Runtime | Description | Requirements |
---|---|---|
NV | Provides acceleration for NVIDIA GPUs | Ampere/Ada series GPUs |
AMD | Provides acceleration for AMD GPUs | RDNA2/RDNA3 series GPUs |
QCOM | Provides acceleration for QCOM GPUs | 6xx series GPUs |
METAL | Utilizes Metal for acceleration on Apple devices | M1+ Macs; Metal 3.0+ for bfloat support |
CUDA | Utilizes CUDA for acceleration on NVIDIA GPUs | NVIDIA GPU with CUDA support |
GPU (OpenCL) | Accelerates computations using OpenCL on GPUs | OpenCL 2.0 compatible device |
CLANG (C Code) | Runs on CPU using the clang compiler | clang compiler in system PATH |
LLVM | Runs on CPU using the LLVM compiler infrastructure | llvmlite package installed |