You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
List of environment variables that control tinygrad behavior.
This is a list of environment variable that control the runtime behavior of tinygrad and its examples.
Most of these are self-explanatory, and are usually used to set an option at runtime.
Example: GPU=1 DEBUG=4 python3 -m pytest
However you can also decorate a function to set a value only inside that function.
# in tensor.py (probably only useful if you are a tinygrad developer)@Context(DEBUG=4)defnumpy(self) -> ...
Or use contextmanager to temporarily set a value inside some scope:
withContext(DEBUG=0):
a=Tensor.ones(10, 10)
a*=2
Global Variables
The columns of this list are are: Variable, Possible Value(s) and Description.
A # means that the variable can take any integer value.
These control the behavior of core tinygrad even when used as a library.
Variable
Possible Value(s)
Description
DEBUG
[1-6]
enable debugging output, with 4 you get operations, timings, speed, generated code and more
GPU
[1]
enable the GPU backend
CUDA
[1]
enable CUDA backend
HSA
[1]
enable HSA backend
METAL
[1]
enable Metal backend (for Mac M1 and after)
METAL_XCODE
[1]
enable Metal using macOS Xcode SDK
CLANG
[1]
enable Clang backend
LLVM
[1]
enable LLVM backend
BEAM
[#]
number of beams in kernel beam search
GRAPH
[1]
create a graph of all operations (requires graphviz)
GRAPHUOPS
[1]
create a graph of uops (requires graphviz and saves at /tmp/uops.{svg,dot})
GRAPHPATH
[/path/to]
where to put the generated graph
DEFAULT_FLOAT
[HALF, ...]
specify the default float dtype (FLOAT32, HALF, BFLOAT16, FLOAT64, ...), default to FLOAT32
IMAGE
[1-2]
enable 2d specific optimizations
FLOAT16
[1]
use float16 for images instead of float32
PTX
[1]
enable the specialized PTX assembler for Nvidia GPUs. If not set, defaults to generic CUDA codegen backend.
File Specific Variables
These are variables that control the behavior of a specific file, these usually don't affect the library itself.
Most of the time these will never be used, but they are here for completeness.