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

时间:2017-11-09 15:33:01

标签: python numpy cuda numba

我正在使用numba.vectorizetarget='cuda'进行测试,我遇到了使用numpy.sinnumpy.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)

我做错了什么,或者这不应该有效?

1 个答案:

答案 0 :(得分:3)

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