Краткий ответ: зависит от проблемы, которую вы пытаетесь решить.
Длинный ответ:
Существуют некоторые фундаментальные различия между параллельной обработкой в Java и Cuda.Большая разница в том, как задания упакованы и выполнены.В Java вы собираетесь написать программу, которая загружает данные, а затем вы будете использовать что-то вроде ExecutorService для выполнения ваших задач.В Cuda вы загружаете данные, но затем пишете фрагмент кода, который фактически выполняет выполнение (в Cuda это называется ядром).Звучит похоже, верно?Но не совсем.В Cuda задействованы дополнительные ресурсы памяти.Графический процессор имеет ограниченную память, поэтому ваше программное обеспечение должно сначала загрузить данные, затем упаковать их как часть ядра, а затем отправить их в графический процессор, который затем сохраняет данные и выполняет вычисления.Тогда ваше приложение должно получить результаты.Это действительно хорошо работает для некоторых вычислительных задач, но действительно неэффективно для других вычислительных задач.Все зависит от того, чего вы пытаетесь достичь.