新建field变量报错

使用Taichi时新建标量以及利用kernel加速都可以正常运行,但是新建field出现错误,新建代码如下

import taichi as ti
ti.init(arch=ti.cpu)
f_1d = ti.field(ti.i32, shape=9)

然后程序报错

[E 11/17/22 20:12:27.477 20581490] [llvm_context.cpp:add_struct_module@528] Assertion failure: std::this_thread::get_id() == main_thread_id_

运行后端是macos catalina 10.15.7,python版本是3.7.7

请问大家有没有遇到这个问题?该如何解决?

这代码没有问题呀。你要不要重新安装一下taichi?

试过了,还是相同的报错。现在taichi的版本是1.2.2

啊,是的,我这也能复现,这是个 bug。不过我用现在的 master 分支 build 的 taichi 是可正常跑的。
你试试把你现在用的taichi 卸载了安装这个:

pip install -i https://pypi.taichi.graphics/simple/ taichi-nightly

我还没装这个,只是pip install taichi,就发现前面的代码可以正常运行了,但是如果用下面的代码就会继续报这个错误同时pycharm控制台的程序会退出

ti.init(arch=ti.cpu)
f_1d = ti.field(ti.i32, shape=9)
for i in range(9):
    f_1d[i] = i
f_1d_2 = ti.field(ti.i32, shape=9) #不加这一句上面的可以正常运行

Taichi语言比较喜欢你能够先把用到的数据结构(field等)定义好,然后再对这些数据结构进行初始化等操作。

如果你不想这样,可以使用FieldBuilder,临时创建field,可参考:Fields (advanced) | Taichi Docs

您好,我发现问题在于,如果我同时定义两个及以上的filed结构,如:

f_1d = ti.field(ti.i32, shape=9)
f_1d_2 = ti.field(ti.i32, shape=9)

进程会直接结束,退出代码为-1073741819,但是只定义一个就能正常运行。我在macOS和win10两个系统运行都是同样的结果。