预期加速数Numba/CUDA vs Numpy

2024-10-06 12:32:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Numba和CUDA的新手,在一些基本的例子中,我对CUDA jitted函数和Numpy进行了比较。例如

@cuda.jit("void(float32[:])")
def gpu_computation(array):
    pos = cuda.grid(1)
    if pos < array.size:
        array[pos] = array[pos] ** 2.6

与单螺纹相比

^{pr2}$

n=1000000
array = np.linspace(0, 100, num=n, dtype=np.float32)
threads per block = 32 
blocks per grid = 31250 

我用GPU可以得到3倍的加速。这也是我在执行矩阵乘法时得到的结果(在Numba文档中可以找到basic和smart版本)。通过复制到/从设备进行优化没有帮助。在

这是预期的加速吗?我预计会有一个数量级。我的机器:MacOSX,带有GeForce GTX 775M 2048 MB和CUDA 7.5.30。在


Tags: 函数posnumpynparraycuda例子jit
1条回答
网友
1楼 · 发布于 2024-10-06 12:32:58

您的GTX775M的双精度算术吞吐量是1/24th of the single precision throughput。 由于Python没有单一精度类型,因此需要使用Numba types将数据显式标记为单精度。在

不幸的是,除了使用不同的GPU(特斯拉阵容或最初的,现已停产的GTX泰坦)之外,没有其他方法可以加快双精度计算。在

相关问题 更多 >