В других вопросах есть несколько указаний для начала работы с программированием на GPU, но если у вас есть приложение, которое уже построено с использованием OpenGL, то, вероятно, ваш вопрос действительно «какой из них будет взаимодействовать с OpenGL»?
В конце концов, вся ваша цель - избежать накладных расходов на чтение вашего FBO обратно из GPU в CPU с помощью glReadPixels (). Если, например, вам все равно нужно было прочитать его обратно, затем скопировать данные в буфер CUDA, а затем перенести их обратно в gpu с помощью API-интерфейсов CUDA, особого смысла не будет.
Таким образом, вам нужен пакет GPGPU, который будет напрямую принимать ваш объект OpenGL FBO без какого-либо дополнительного копирования.
Это, вероятно, исключает все, кроме GLSL.
Я не уверен на 100%, есть ли у CUDA какой-либо способ работать напрямую с буферным объектом OpenGL, но я не думаю, что у него есть эта функция.
Я уверен, что Stream SDK от ATI этого не делает. (Хотя он будет взаимодействовать с DirectX.)
Я сомневаюсь, что DirectX 11 «предварительный просмотр технологии» с вычислительными шейдерами также имеет эту функцию.
РЕДАКТИРОВАТЬ: Продолжение: похоже, что CUDA, по крайней мере, самая последняя версия, имеет некоторую поддержку взаимодействия OpenGL. Если так, то это, вероятно, ваш лучший выбор.