我想在cumb中使用numba中的float数组找到索引和最小数字的值 .

我知道我们可以简单地使用numpy方法来解决这个问题 . 但是,将数组从设备复制到主机需要花费最多的时间(98%) . 因此,我在设备空间中声明了整个数组,现在我正在尝试在设备中实现argmin,这样我就可以最小化复制内存的时间 .

另外,我试图启动一个单线程cuda函数来调用numpy.argmin(),但是memcpy仍然很高 .

@cuda.jit
def argminCuda(arr, res):
    res[0] = arr.argmin()
    res[1] = arr[res[0]]

这里“arr”是在设备空间中声明的float数组,“res”是长度为2的固定内存 .

是否有一种有效的方法可以实现我的内存传输优化?