Python 如何在GPU上使用Numba的三角函数?

Python 如何在GPU上使用Numba的三角函数?,python,numpy,cuda,numba,Python,Numpy,Cuda,Numba,我正在用target='cuda'测试numba.vectorize,在使用诸如numpy.sin和numpy.exp之类的数学函数时遇到了一个问题(这些函数对于我想解决的问题至关重要) 最简单的例子: @vectorize(["float32(float32)"], target='cuda') def f(x): return np.sin(x) 当我在jupyter笔记本上运行这段代码时,它给出了一个错误,其要点似乎是 UntypedAttributeError: Failed

我正在用
target='cuda'
测试
numba.vectorize
,在使用诸如
numpy.sin
numpy.exp
之类的数学函数时遇到了一个问题(这些函数对于我想解决的问题至关重要)

最简单的例子:

@vectorize(["float32(float32)"], target='cuda')
def f(x):
    return np.sin(x)
当我在jupyter笔记本上运行这段代码时,它给出了一个错误,其要点似乎是

UntypedAttributeError: Failed at nopython (nopython frontend)
Unknown attribute 'sin' of type Module(<module 'numpy' from '/opt/intel/intelpython3/lib/python3.6/site-packages/numpy/__init__.py'>)
File "<ipython-input-23-6310cdef033e>", line 3
[1] During: typing of get attribute at <ipython-input-23-6310cdef033> (3)
UntypedAttributeError:在nopython(nopython前端)失败
类型为Module()的未知属性“sin”
文件“”,第3行
[1] 期间:在(3)处键入get属性

我做错了什么,或者这不应该起作用吗?

如果你阅读了,你会发现你需要在内核中使用
math
库(或者
cmath
库,如果你使用复杂类型)中的函数。Numba CUDA内核不支持Numpy数学函数。

如果阅读,您会发现需要在内核中使用
数学库(如果使用复杂类型,则使用
cmath
库)中的函数。Numba CUDA内核不支持Numpy数学函数。

是否有名为
sin.py
.py
文件(模块)?类似吗?据我所知,不是。我应该有一个吗?这其实不是同一个问题,因为另一个问题是关于CPU的JIT编译。而像np.sin这样的数学函数在另一个答案中提到的Numba中受支持的numpy特性列表中。你有名为
sin.py
文件(模块)吗?类似吗?据我所知,不是。我应该有一个吗?这其实不是同一个问题,因为另一个问题是关于CPU的JIT编译。像np.sin这样的数学函数在Numba中支持的numpy特性列表中,这在另一个答案中提到。