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特性列表中,这在另一个答案中提到。