Я пытаюсь передать словарь в ядро 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: невозможно определить тип Numba для
Для string.split()
я также получаю сообщение об ошибке:
Нет определения для понижения (unicode_type, unicode_type, пропущено (по умолчанию = -1)) -> list (unicode_type)
Файл "testKernel2.py", строка 6:
eggs.split ( 'е')