一、问题出现
在使用Taichi进行GPU加速的时候,出现了以下报错:Struct function get_ch_S0_to_S15 not found.
二、问题原因
这个问题的出现是因为同一个进程中重复初始化了Taichi的环境,说白了就是写了多次ti.init()。
三、问题解决
确保Taichi环境正确初始化:
首先尝试访问 ti.cfg.arch 属性;
如果出现 AttributeError 或 RuntimeError 异常(意味着Taichi还没有初始化或者配置不正确),则会执行 ti.init() 函数;
在初始化时,设置使用GPU架构并开启内核分析器(kernel_profiler)。
try:
_ = ti.cfg.arch
except (AttributeError, RuntimeError):
ti.init(arch=ti.gpu, kernel_profiler=True)