带有CUDA的Numba不会对矩阵进行切片

时间:2019-11-26 17:19:22

标签: numpy cuda numba

我正在尝试将CUDA与numba结合使用。我刚刚从numba参考中得到了这个示例,我正在尝试运行它

from numba import cuda,jit, float32
@cuda.jit
def matmul(A, B, C):
    """Perform square matrix multiplication of C = A * B
    """
    i, j = cuda.grid(2)
    if i < C.shape[0] and j < C.shape[1]:
        tmp = 0.
        for k in range(A.shape[1]):
            tmp += A[i, k] * B[k, j]
        C[i, j] = tmp

现在我从此功能开始以这种方式对其进行测试:

a = np.arange(300).reshape(100,3).astype('float')
b = np.arange(-1000,-1000+300).reshape(100,3).astype('float')
c = np.zeros((len(a),len(b))).astype('float')
matmul(a,b,c)

所以我只声明2个数组和1个空数组。问题是,运行此命令后,c中唯一不为0的值为c [0,0]。我不明白这是怎么回事。有什么建议吗?谢谢

0 个答案:

没有答案