Я пытаюсь передать словарь ядру Numba CUDA, а также выполнять различные манипуляции со строками в ядре (например, string.split()). Ни один из них не работает.
Я использую numba версии 0.44.1. Согласно примечаниям к выпуску (https://numba.pydata.org/numba-doc/dev/release-notes.html), Numba поддерживает как словари, так и string.split(), поэтому я не уверен, почему они не работают.
Код для словаря:
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]()
Для словаря я получаю следующую ошибку:
line 34, in typeof raise ValueError(msg)
ValueError: cannot determine Numba type of < class 'dict'>
Для string.split() я также получаю сообщение об ошибке:
No definition for lowering (unicode_type, unicode_type, omitted(default=-1)) -> list(unicode_type)
File "testKernel2.py", line 6:
eggs.split('e')






I am trying to pass a dictionary to a Numba CUDA kernel as well as perform various string manipulations in the kernel (such as string.split()). Neither of these are working.
Они не работают, потому что ни строки, ни словари не поддерживаются ядрами графического процессора Numba (см. здесь)
KimLeiBidiRabbaMinei происходит от кидей ришато или ло йихийе асон? Это может быть причиной проблемы