【日常小问】解决Taichi报错:Struct function get_ch_S0_to_S15 not found.

34 阅读1分钟

一、问题出现

在使用Taichi进行GPU加速的时候,出现了以下报错:Struct function get_ch_S0_to_S15 not found.

微信图片_20251205214710_1045_1.png

二、问题原因

这个问题的出现是因为同一个进程中重复初始化了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)