全局设置¶
后端¶
- 指定要使用的后端,请使用:
ti.init(arch=ti.cuda)。 - 指定 CUDA 预分配内存的大小:
ti.init(device_memory_GB=0.5)。 - 禁止 CUDA 使用统一内存 (Unified Memory):
ti.init(use_unified_memory=False)。 - 指定 CUDA 所使用的 GPU:
export CUDA_VISIBLE_DEVICES=[gpuid]。 - 要在启动时禁用某个后端,比如 CUDA:
export TI_ENABLE_CUDA=0。
编译¶
- 禁用高级优化以节省编译时间和可能的错误:
ti.init(advanced_optimization=False)。 - 禁用 fast math 以防止可能出现的未定义数学行为:
ti.init(fast_math=False)。 - 如要打印预处理后的 Python 代码:
ti.init(print_preprocessed=True)。 - 如要显示优雅的 Taichi 作用域栈回溯:
ti.init(excepthook=True)。 - 如要打印生成的中间表示码 (IR):
ti.init(print_ir=True)。
运行¶
- 重新启动 Taichi 运行时系统(销毁所有张量和内核):
ti.reset()。 - 如要以调试模式启动程序:
ti.init(debug=True)或ti debug your_script.py. - 禁止在启动时导入 torch:
export TI_ENABLE_TORCH=0。
日志记录¶
- 通过输出 TRACE 级日志以显示更详尽的信息:
ti.init(log_level=ti.TRACE)或ti.set_logging_level(ti.TRACE)。 - 消除冗余输出:
ti.init(verbose=False)。
开发¶
- 如要在 Taichi 崩溃时触发 GDB:
ti.init(gdb_trigger=True)。 - 开发模式 中,缓存编译过的运行时位码 (compiled runtime bitcode) 以节省启动时间:
export TI_CACHE_RUNTIME_BITCODE=1。 - 如要指定运行测试的线程数:
export TI_TEST_THREADS=4或ti test -t4。
由环境变量指定 ti.init 中的参数¶
ti.init 中的参数也可以从环境变量中指定。例如:
ti.init(arch=ti.cuda)相当于export TI_ARCH=cuda.ti.init(log_level=ti.TRACE)相当于export TI_LOG_LEVEL=trace.ti.init(debug=True)相当于export TI_DEBUG=1.ti.init(use_unified_memory=False)相当于export TI_USE_UNIFIED_MEMORY=0.
如果 ti.init 中的参数也同时在对应的环境变量中被指定,那么环境变量中的参数将 覆盖 ti.init 中的参数,例如:
- 如果同时指定了
ti.init(arch=ti.cuda)和export TI_ARCH=opengl, 那么 Taichi 将会选择ti.opengl作为后端。 - 如果同时指定了
ti.init(debug=True)和export TI_DEBUG=0,那么 Taichi 将会禁用 debug 模式。
注解
如果重复调用了 ti.init ,那么第一次调用时的配置将被完全丢弃,例如:
ti.init(debug=True)
print(ti.cfg.debug) # True
ti.init()
print(ti.cfg.debug) # False