Rou*_*cha 2 python jit cuda numba
我有一个添加了@cuda.jit 装饰器的函数。
@cuda.jit
def foo(x):
bar(x[0])
bar(x[1])
bar(x[2])
def bar(x):
# Some routine
Run Code Online (Sandbox Code Playgroud)
我不想将 bar 复制到 foo 的主体中,因为这会使代码变得笨拙和丑陋。
Numba 的 cuda.jit 如何处理这个问题?编译期间函数是否内联?酒吧需要jitt吗?
如果是这样,它将调用其他线程,我发现这对于仅超过 3 个元素的计算来说太过分了......
我也认为 cuda 内核也不能调用其他 cuda 内核。
我是 numba/cuda 的新手,所以如果在理解这里有一些根本性的错误,请原谅我。
Numba 的 cuda.jit 如何处理这个问题?
它没有。如果你尝试,你会得到一个错误
编译期间函数是否内联?
不。
酒吧需要jitt吗?
是的。它需要装饰@cuda.jit(device=True)
如果是这样,它将调用其他线程,我发现这对于仅超过 3 个元素的计算来说太过分了......
不。设备功能和内核不是一回事。设备函数的代码被编译并发出,它是“单线程”的。
我也认为 cuda 内核也不能调用其他 cuda 内核。
它可以,但 Numba 目前不支持它。
| 归档时间: |
|
| 查看次数: |
927 次 |
| 最近记录: |