Error when using difftaichi

Hi, I got a error when I tried to use autodiff of taichi, does anyone can give me a hint what is this error related? Thanks…


[E 03/02/22 15:34:46.996 34195] [ir.h:as@226] Assertion failure: is<T>()



***********************************
* Taichi Compiler Stack Traceback *
***********************************
/home/jianhui/anaconda3/lib/python3.8/site-packages/taichi/_lib/core/taichi_core.so: taichi::Logger::error(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)
/home/jianhui/anaconda3/lib/python3.8/site-packages/taichi/_lib/core/taichi_core.so: taichi::lang::GlobalPtrStmt* taichi::lang::IRNode::as<taichi::lang::GlobalPtrStmt>()
/home/jianhui/anaconda3/lib/python3.8/site-packages/taichi/_lib/core/taichi_core.so: taichi::lang::MakeAdjoint::visit(taichi::lang::GlobalStoreStmt*)
/home/jianhui/anaconda3/lib/python3.8/site-packages/taichi/_lib/core/taichi_core.so: taichi::lang::MakeAdjoint::visit(taichi::lang::Block*)
/home/jianhui/anaconda3/lib/python3.8/site-packages/taichi/_lib/core/taichi_core.so: taichi::lang::irpass::auto_diff(taichi::lang::IRNode*, taichi::lang::CompileConfig const&, bool)
/home/jianhui/anaconda3/lib/python3.8/site-packages/taichi/_lib/core/taichi_core.so: taichi::lang::irpass::compile_to_offloads(taichi::lang::IRNode*, taichi::lang::CompileConfig const&, taichi::lang::Kernel*, bool, bool, bool, bool, bool)
/home/jianhui/anaconda3/lib/python3.8/site-packages/taichi/_lib/core/taichi_core.so: taichi::lang::irpass::compile_to_executable(taichi::lang::IRNode*, taichi::lang::CompileConfig const&, taichi::lang::Kernel*, bool, bool, bool, bool, bool, bool, bool, bool)
/home/jianhui/anaconda3/lib/python3.8/site-packages/taichi/_lib/core/taichi_core.so: taichi::lang::Kernel::lower(bool)
/home/jianhui/anaconda3/lib/python3.8/site-packages/taichi/_lib/core/taichi_core.so: taichi::lang::LlvmProgramImpl::compile(taichi::lang::Kernel*, taichi::lang::OffloadedStmt*)
/home/jianhui/anaconda3/lib/python3.8/site-packages/taichi/_lib/core/taichi_core.so: taichi::lang::Program::compile(taichi::lang::Kernel&, taichi::lang::OffloadedStmt*)
/home/jianhui/anaconda3/lib/python3.8/site-packages/taichi/_lib/core/taichi_core.so: taichi::lang::Kernel::compile()
/home/jianhui/anaconda3/lib/python3.8/site-packages/taichi/_lib/core/taichi_core.so: taichi::lang::Kernel::operator()(taichi::lang::Kernel::LaunchContextBuilder&)
/home/jianhui/anaconda3/lib/python3.8/site-packages/taichi/_lib/core/taichi_core.so(+0x3fa4fa) [0x7f8ccdedb4fa]
/home/jianhui/anaconda3/lib/python3.8/site-packages/taichi/_lib/core/taichi_core.so(+0x3b3a6e) [0x7f8ccde94a6e]
/home/jianhui/anaconda3/bin/python: PyCFunction_Call
/home/jianhui/anaconda3/bin/python: _PyObject_MakeTpCall
/home/jianhui/anaconda3/bin/python(+0x18b8dc) [0x55da0ed378dc]
/home/jianhui/anaconda3/bin/python: PyVectorcall_Call
/home/jianhui/anaconda3/bin/python(+0xc37f6) [0x55da0ec6f7f6]
/home/jianhui/anaconda3/bin/python: _PyObject_MakeTpCall
/home/jianhui/anaconda3/bin/python: _PyEval_EvalFrameDefault
/home/jianhui/anaconda3/bin/python: _PyEval_EvalCodeWithName
/home/jianhui/anaconda3/bin/python: _PyFunction_Vectorcall
/home/jianhui/anaconda3/bin/python: PyVectorcall_Call
/home/jianhui/anaconda3/bin/python: _PyEval_EvalFrameDefault
/home/jianhui/anaconda3/bin/python: _PyEval_EvalCodeWithName
/home/jianhui/anaconda3/bin/python: _PyObject_FastCallDict
/home/jianhui/anaconda3/bin/python: _PyObject_Call_Prepend
/home/jianhui/anaconda3/bin/python(+0x18c13a) [0x55da0ed3813a]
/home/jianhui/anaconda3/bin/python: PyObject_Call
/home/jianhui/anaconda3/bin/python: _PyEval_EvalFrameDefault
/home/jianhui/anaconda3/bin/python: _PyFunction_Vectorcall
/home/jianhui/anaconda3/bin/python(+0xff56d) [0x55da0ecab56d]
/home/jianhui/anaconda3/bin/python: _PyFunction_Vectorcall
/home/jianhui/anaconda3/bin/python(+0x18b779) [0x55da0ed37779]
/home/jianhui/anaconda3/bin/python(+0x7def9) [0x55da0ec29ef9]
/home/jianhui/anaconda3/bin/python: _PyEval_EvalFrameDefault
/home/jianhui/anaconda3/bin/python: _PyEval_EvalCodeWithName
/home/jianhui/anaconda3/bin/python: PyEval_EvalCodeEx
/home/jianhui/anaconda3/bin/python: PyEval_EvalCode
/home/jianhui/anaconda3/bin/python(+0x219664) [0x55da0edc5664]
/home/jianhui/anaconda3/bin/python(+0x24b874) [0x55da0edf7874]
/home/jianhui/anaconda3/bin/python: PyRun_FileExFlags
/home/jianhui/anaconda3/bin/python: PyRun_SimpleFileExFlags
/home/jianhui/anaconda3/bin/python(+0x1155c0) [0x55da0ecc15c0]
/home/jianhui/anaconda3/bin/python: Py_BytesMain
/lib/x86_64-linux-gnu/libc.so.6: __libc_start_main
/home/jianhui/anaconda3/bin/python(+0x1de553) [0x55da0ed8a553]

Internal error occurred. Check out this page for possible solutions:
https://docs.taichi.graphics/lang/articles/misc/install
Traceback (most recent call last):
  File "/home/jianhui/Work/ti_FEM/Fish/fem_NS_2D_fish_diffopt.py", line 816, in <module>
    swim()
  File "/home/jianhui/anaconda3/lib/python3.8/site-packages/taichi/lang/tape.py", line 18, in __exit__
    self.grad()
  File "/home/jianhui/anaconda3/lib/python3.8/site-packages/taichi/lang/tape.py", line 27, in grad
    func.grad(*args)
  File "/home/jianhui/anaconda3/lib/python3.8/site-packages/taichi/lang/kernel_impl.py", line 665, in __call__
    return self.compiled_functions[key](*args)
  File "/home/jianhui/anaconda3/lib/python3.8/site-packages/taichi/lang/kernel_impl.py", line 617, in func__
    t_kernel(launch_ctx)
RuntimeError: [ir.h:as@226] Assertion failure: is<T>()

Hi, it would be helpful if you can also attach a minimal example to reproduce the above error. thanks!

Hi, @yjhp1016 , may I check what version of Taichi did you use? ( I am asking for this because the error shown here looks like a known issue in the previous Taichi version

Could you please update Taichi to the latest version and give an other try? Thanks.

Hi @mzhang @qiao-bo , I was using 0.8.11 before, now I updated taichi to latest 0.9.0, still got similar error, but slightly different: RuntimeError: [ir.h:as@209] Assertion failure: is()

I don’t have a small example to reproduce this error, but I would be happy to share my code in private with you, if that will help :grinning:

Thank you!

Sure. I am willing to help. :grinning: