首页 > 解决方案 > 将 Numpy 索引数组与 Numba DeviceNDArray 一起使用

问题描述

我天真地试图cuda用一个数组索引到一个支持的 DeviceNDArrayNumPy并得到一个错误:

In [1]: import numpy as np

In [2]: import numba.cuda

In [3]: aa = numba.cuda.to_device(np.arange(10))

In [4]: aa[0]
Out[4]: 0

In [5]: aa
Out[5]: <numba.cuda.cudadrv.devicearray.DeviceNDArray at 0x7f6a647a07f0>

In [6]: aa[1]
Out[6]: 1

In [7]: aa[np.arange(5)]

ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()

有关更多上下文,我正在尝试通过 sklearn 机器加载支持 cuda 的数组,因此我们混合了 numpy/numba。

是否可以进行任何索引?

更新

在幕后DeviceNDArray调用Dim.__getitem__当前仅支持单个项目和切片索引

标签: pythonnumpynumba

解决方案


推荐阅读