无法识别的选项:{'target'} 使用@jit(target="cuda")
Unrecognized options: {'target'} when using @jit(target="cuda")
我使用 numba 库中的装饰器 @jit 优化了一些 python 代码。但是,我想指示@jit 明确使用我的 GPU 设备。来自:,我明白我需要使用@jit(target="cuda") 来完成。
我试图通过做这样的事情来做到这一点:
from numba import jit, cuda
@jit(target='cuda') # The code runs normally without (target='cuda')
def function(args):
# some code
我收到以下错误:
KeyError: "Unrecognized options: {'target'}. Known options are dict_keys(['_nrt', 'boundscheck', 'debug', 'error_model', 'fastmath', 'forceinline', 'forceobj', 'inline', 'looplift', 'no_cfunc_wrapper', 'no_cpython_wrapper', 'no_rewrites', 'nogil', 'nopython', 'parallel', 'target_backend'])"
我读过这个:但是解决方案没有用。
我希望能得到一些帮助,使 @jit(target='cuda') 无需使用 @cuda.jit 重写代码即可工作,因为最后一个是用于在 Python 中编写 CUDA 内核并编译 运行 它。
非常感谢!
AFAIK,CUDA 目标不再支持 jit
和 njit
(无论如何最后 it was supported few years ago as a wrapper to cuda.jit
). It is not documented. There is however such parameter for numba.vectorize
and numba.guvectorize
. In the Numba code, one can see that there is a parameter called target_backend
which is obviously not used (anymore?). There is a parameter call _target
which is read but not meant to be used directly by end-users. Additionally, it calls cuda.jit
。这部分代码似乎已经死了。
如果要编写GPU-based代码,那么请使用numba.vectorize
和numba.guvectorize
或cuda.jit
(与前两个相比,最后一个 low-level。
我遇到了类似的问题,通过将 target
更改为 target_backend
来解决
所以,我的装饰器就像 @jit(target_backend="cuda")
这只是对我有用的quick-fix,我没有进一步挖掘
我使用 numba 库中的装饰器 @jit 优化了一些 python 代码。但是,我想指示@jit 明确使用我的 GPU 设备。来自:
我试图通过做这样的事情来做到这一点:
from numba import jit, cuda
@jit(target='cuda') # The code runs normally without (target='cuda')
def function(args):
# some code
我收到以下错误:
KeyError: "Unrecognized options: {'target'}. Known options are dict_keys(['_nrt', 'boundscheck', 'debug', 'error_model', 'fastmath', 'forceinline', 'forceobj', 'inline', 'looplift', 'no_cfunc_wrapper', 'no_cpython_wrapper', 'no_rewrites', 'nogil', 'nopython', 'parallel', 'target_backend'])"
我读过这个:
我希望能得到一些帮助,使 @jit(target='cuda') 无需使用 @cuda.jit 重写代码即可工作,因为最后一个是用于在 Python 中编写 CUDA 内核并编译 运行 它。
非常感谢!
AFAIK,CUDA 目标不再支持 jit
和 njit
(无论如何最后 it was supported few years ago as a wrapper to cuda.jit
). It is not documented. There is however such parameter for numba.vectorize
and numba.guvectorize
. In the Numba code, one can see that there is a parameter called target_backend
which is obviously not used (anymore?). There is a parameter call _target
which is read but not meant to be used directly by end-users. Additionally, it calls cuda.jit
。这部分代码似乎已经死了。
如果要编写GPU-based代码,那么请使用numba.vectorize
和numba.guvectorize
或cuda.jit
(与前两个相比,最后一个 low-level。
我遇到了类似的问题,通过将 target
更改为 target_backend
所以,我的装饰器就像 @jit(target_backend="cuda")
这只是对我有用的quick-fix,我没有进一步挖掘