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. Некоторые отсутствующие функции перечислены ниже:

  • динамический параллелизм
  • память текстур
Другие вопросы по тегам