我遇到计算大协方差矩阵的问题,以获得特征值(值和向量)。所以我尝试使用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的特征吗?