用numba cuda计算eigens

时间:2017-09-04 08:05:55

标签: python python-3.x numpy numba

我遇到计算大协方差矩阵的问题,以获得特征值(值和向量)。所以我尝试使用GPU。我发现numba并尝试使用jit默认使用CPU。它需要更长的时间,但我无法使用我的CPU进行计算。我尝试使用cuda的目标标志:

 from numba import jit, cuda
 import numpy as np
 from time import time
 @jit(target="cuda")
 def eigens(a):
     val, vec = np.linalg.eig(a)
     return val, vec

 t1 = time()
 a = np.array([[1 + 0j, 2 + 0j], [1 + 0j, 1 + 0j]])
 print(eigens(a))
 t2 = time()
 print("t: ", t2 - t1)

当我运行此代码时,出现以下错误:

numba.errors.TypingError: Failed at nopython (nopython frontend)
No conversion from (array(complex128, 1d, C), array(complex128, 2d, F)) to 
none for '$0.12', defined at None
File "numba-test.py", line 9
[1] During: typing of assignment at 
C:/Users/blackbox/PycharmProjects/MechaGodzilla/numba-test.py (9)

我尝试过没有旗帜并且运行得非常好。因为我现在需要它只是使用GPU来计算numpy库。任何建议都将不胜感激。

编辑:我正在使用带有conda(64位)的python 3.5。有什么替代方法可以用GPU来计算numpy的特征吗?

0 个答案:

没有答案