Global settings
Backendsâ
- To specify which kind of architecture (Arch) to use:
ti.init(arch=ti.cuda)
. - To specify the pre-allocated memory size for CUDA:
ti.init(device_memory_GB=0.5)
. - To specify which GPU to use for CUDA:
export CUDA_VISIBLE_DEVICES=[gpuid]
. - To disable a backend (
CUDA
,METAL
,OPENGL
) on start up, e.g. CUDA:export TI_ENABLE_CUDA=0
.
Compilationâ
- Disable advanced optimization to save compile time & possible
errors:
ti.init(advanced_optimization=False)
. - Disable fast math to prevent possible undefined math behavior:
ti.init(fast_math=False)
. - To print intermediate IR generated:
ti.init(print_ir=True)
.
Runtimeâ
- Restart the entire Taichi system (destroy all fields and kernels):
ti.reset()
. - To start program in debug mode:
ti.init(debug=True)
orti debug your_script.py
. - To disable importing torch on start up:
export TI_ENABLE_TORCH=0
. - To disable importing paddle on start up:
export TI_ENABLE_PADDLE=0
.
Loggingâ
- Show more detailed log to level TRACE:
ti.init(log_level=ti.TRACE)
orti.set_logging_level(ti.TRACE)
. - Eliminate verbose outputs:
ti.init(verbose=False)
.
Developâ
- To trigger GDB when Taichi crashes:
ti.init(gdb_trigger=True)
. - Cache compiled runtime bitcode in dev mode to save start up
time:
export TI_CACHE_RUNTIME_BITCODE=1
. - To specify how many threads to run test:
export TI_TEST_THREADS=4
orpython tests/run_tests.py -t4
.
Specifying ti.init
arguments from environment variablesâ
Arguments for ti.init
may also be specified from environment
variables. For example:
ti.init(arch=ti.cuda)
is equivalent toexport TI_ARCH=cuda
.ti.init(log_level=ti.TRACE)
is equivalent toexport TI_LOG_LEVEL=trace
.ti.init(debug=True)
is equivalent toexport TI_DEBUG=1
.
If both ti.init
argument and the corresponding environment variable
are specified, then the one in the environment variable will
override the one in the argument, e.g.:
- if
ti.init(arch=ti.cuda)
andexport TI_ARCH=opengl
are specified at the same time, then Taichi will chooseti.opengl
as backend. - if
ti.init(debug=True)
andexport TI_DEBUG=0
are specified at the same time, then Taichi will disable debug mode.
note
If ti.init
is called twice, then the configuation in first invocation
will be completely discarded, e.g.:
ti.init(debug=True)
print(ti.cfg.debug) # True
ti.init()
print(ti.cfg.debug) # False