У меня есть уже распараллеленное ядро CUDA, которое выполняет некоторые задачи, требующие частой интерполяции.Параллелизировать метод изнутри функции/ядра устройства CUDA
Так что есть ядро
__global__ void complexStuff(...)
, который вызывает один или несколько раз эту функцию интерполяции устройства:
__device__ void interpolate(...)
алгоритм интерполяции делает Weno интерполяции последовательно по трем измерениям. Это очень параллелизуемая задача, которую я срочно хотел бы распараллелить!
Понятно, что ядро complexStuff()
можно легко распараллелить, вызвав его из кода хоста, используя синтаксис <<<...>>>
. Также важно, что complexStuff()
уже распараллелен.
Но мне непонятно, как распараллеливать что-то/создавать новые потоки изнутри функции устройства CUDA ... это даже возможно? Кто-нибудь знает?