numba.typeinfer.TypingError: нетипизированное глобальное имя child_launch при использовании динамического параллелизма CUDA в Python ( Anaconda) на графическом процессоре NVIDIA
Мой код здесь:
import numpy as np
from numbapro import cuda
@cuda.autojit
def child_launch(data):
data[cuda.threadIdx.x] = data[cuda.threadIdx.x] + 100
@cuda.autojit
def parent_launch(data):
data[cuda.threadIdx.x] = cuda.threadIdx.x
cuda.syncthreads()
if cuda.threadIdx.x == 0:
child_launch[1, 256](data)
cuda.synchronize()
cuda.syncthreads()
data = np.zeros(256)
print data
parent_launch[ 1, 256 ](data)
print data
Результат работы выглядит следующим образом:
Traceback (most recent call last):
......
numba.typeinfer.TypingError: Untyped global name 'child_launch'
File "PythonOpenMPTestMain.py", line 14
Я просто не знаю, почему я не могу запустить дочернее ядро. Пожалуйста, помогите мне. Большое спасибо.
1 ответ
Я просто не знаю, почему я не могу запустить дочернее ядро.
Потому что это не поддерживается (даже в середине 2018 года).
Цитирование из документации Numba 0.39
Numba пока не реализует все функции CUDA. Некоторые отсутствующие функции перечислены ниже:
- динамический параллелизм
- память текстур