Kernel不能嵌套的错误(jupyter环境)

运行环境

[Taichi] mode=release
[Taichi] preparing sandbox at /tmp/taichi-ppid_map
[Taichi] version 0.7.29, llvm 10.0.0, commit 7b40a962, linux, python 3.7.10
[I 10/13/21 15:21:05.818 28275] [shell.py:_shell_pop_print@35] Graphical python shell detected, using wrapped sys.stdout
[Taichi] Starting on arch=cuda

问题描述

我在用jupyter练习基本语法是发现了一个比较奇怪的错误,希望有人可以解释一下~
具体来说,当我把_add里的注释去掉,会报错。然后我再把这一行注释,就会报kernel不能嵌套的错误。遇到kernal不能嵌套这个错误这让我比较疑惑,因为我只写了一个kernel呀。

import taichi as ti

ti.init(arch=ti.gpu, default_fp=ti.f32)
@ti.func
def _add(x,y):
    res = 0
    if x>1:
        res = x+y
#         return res
    else:
        res = x-y
    return res

@ti.kernel
def demo(x:ti.i32, y:ti.i32) -> ti.i32:
    z = _add(x,y)
    return z

print(demo(1,2))

你好,欢迎来到Taichi社区!
我尝试在jupyter notebook里复现这个问题,但是没发现有kernel不能嵌套的问题
能否麻烦你截图一下你在jupyter里具体是怎么写的呢?以及报错信息

@mzhang, 非常感谢你的快速回复!
以下是代码及对应的报错信息的截图。
首先我运行:


然后我运行:

附上我完整的代码结构:

感谢回复,我注意到你的版本是0.7.29,首先或许可以试试更新到0.8.1,看看是否还会有这个问题? (我在0.8.1测试是没出现这个问题的

GLIBC版本太低,装不了0.8+的版本【逃
我试了0.7.32没有遇到这个问题。

1 个赞

Hi,目前Taichi依赖于GLIBC_2.27的版本。请问你的OS环境是什么 :slight_smile:

1 个赞

Hi kuang ye,我用的ubuntu 18.04,可能是版本太老了,后来升级之后就没有遇到过这种问题。

1 个赞

升级taichi的版本