python - Numba 内核不允许字典或字符串函数
问题描述
我正在尝试将字典传递给 Numba CUDA 内核,并在内核中执行各种字符串操作(例如string.split()
)。这些都不起作用。
我正在使用 numba 版本 0.44.1。根据发行说明(https://numba.pydata.org/numba-doc/dev/release-notes.html),字典和 string.split() 都受 Numba 支持,所以我不确定为什么两者都不起作用.
字典代码:
from numba import cuda
aDict = {'potato':7,'Achashveirosh':127,'GzeiraShava':613,'KimLeiBidiRabbaMinei':4}
@cuda.jit
def kernel_thing(chashuvDict):
print(chashuvDict['GzeiraShava'])
kernel_thing[128,30](aDict)
string.split() 的代码:
from numba import cuda
@cuda.jit
def kernel2():
eggs = "hello"
eggs.split('e')
kernel2[128,30]()
对于字典,我收到以下错误:
第 34 行,在 typeof 中引发 ValueError(msg)
ValueError:无法确定 <class 'dict'> 的 Numba 类型
对于string.split()
,我也收到一个错误:
没有降低的定义(unicode_type,unicode_type,省略(默认=-1))->列表(unicode_type)
文件“testKernel2.py”,第 6 行:
鸡蛋.split('e')
解决方案
我正在尝试将字典传递给 Numba CUDA 内核,并在内核中执行各种字符串操作(例如 string.split())。这些都不起作用。
由于 Numba GPU 内核既不支持字符串也不支持字典,因此无法正常工作(请参见此处)
推荐阅读
- jquery - 需要在jquery动画中隐藏溢出
- matlab - 有没有办法在Matlab中为3D(x,y,z)中的分散数据创建三次插值函数?
- python - 将数据帧分成两部分,但已经知道一个
- angular - Ngrx with lazy load modules
- python - pandas.Series.value_counts result to a dictionary with frequencies as keys
- windows - 如何设置 Windows 桌面应用程序的 AppId(通过 InnoSetup)
- rest - 从 REST API 将数据附加到 Azure Data Lake 存储中的现有文件
- mulesoft - 解决工件的依赖关系树时出现问题
- c - 在linux上的c编程中,inode编号在某个位置突然改变
- java - 使用 MVVM 和 Retrofit 调用我的 api 时没有得到我的响应?