Files
tinygrad/docs/runtime.md
uuuvn 6dadb60c93 LLVM JIT (+autogen llvm instead of llvmlite) (#8486)
* LLVM JIT

* Autogen LLVM

* Update autogen

* Move things around

* even more non-determinism

* windows

* more autogen weirdness

* more windows stuff

* blind windows development try 2

* more blind windows development

* even more blind windows development

* maybe i should just set up a windows vm...

* why can't everyone just use sysv abi?

* cleanup debugging stuff

* unused import

* icache flushing isn't required on x86

* merge jit_nt and jit_unix

* more

* Temporary hack to not segfault

* better error

* bad conflict resolution

* Attempt to simplify support/llvm.py

* More refactoring

---------

Co-authored-by: George Hotz <72895+geohot@users.noreply.github.com>
2025-02-02 19:52:42 +08:00

1.7 KiB

Runtimes

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 (LLVM IR) Runs on CPU using the LLVM compiler infrastructure llvm libraries installed and findable