Здравствуйте, пишу нейронную сеть для распознавания цифр (для начала) на CUDA. Нужно написать функцию на устройстве, которая в каждом блоке вызывает функцию тренировки нейронной сети. Всего тренировок, а значит и блоков, должно быть 60 000. Сама функцию тренировки у меня написана, но она тоже выполняется на устройстве. Точнее не вся функция, а определенный фрагменты кода, вроде перемножения матриц, выполняются на устройстве. И выходит, что мне нужно написать функцию на устройстве, которая параллельно с помощью блоков вызовет 60 000 тренировок сети, но каждая тренировка тоже выполняется на устройстве ( при ее вызове нужно указывать также сетку и блоки ). Как такое реализовать?
Спасибо большое за любой совет/подсказку/наставление. Я только учусь, и поэтому набивание синяков для меня привычное дело...
Нельзя вызвать ядро __global__ функцию на GPU, только на CPU можно. (Хотя может существовать какой-то способ, который я не знаю, но в книге по CUDA нельзя)
Вы можете данные нужные в памяти оставить и вызвать доп ядра из CPU. Или создать __device__ функции и вызывать их на GPU.