Использование Delphi для использования технологии GPGPU?
GPGPU - это принцип использования параллельных процессоров на видеокартах для значительного увеличения производительности.
Есть ли у кого-нибудь идеи об использовании GPGPU в Delphi, используя OpenCL или CUDA? CUDA была/является только NVidia, но они также приняли стандарт OpenCL.
Я нашел несколько образцов Delphi из Google, но они либо сбой, либо не компилируются/выполняются.
Конечный образец команды:
- Загрузите и установите DLL OpenCL отсюда.
- Загрузите SDK OpenCL отсюда.
- Загрузите здесь пример проекта Delphi.
- Откройте и скомпилируйте проект Delphi. Если все идет по плану, он будет делать "все, что он должен делать"
На этом этапе я могу начать изучение OpenCL SDK и записи/компиляции DLL для вызова из любого приложения Delphi.
Такие вещи действительно начинают взлетать. Embarcadero не должны делать что-либо самостоятельно на этом этапе (если они этого не хотят), но если бы был учебник и образцы для Delphi, это было бы здорово. Многие образцы доступны для других языков, но нам также нужен хороший и простой пример Delphi, чтобы показать, насколько легко использовать Delphi для приложений GPGPU.
Ответы
Ответ 1
Вам может быть интересно GPGPUonDelphi2007.
Пример GPGPU плюс необходимые библиотеки OpenGL и CG для Delphi 2007 теперь доступно!
Вчера я создал необходимые пакеты OpenGL и CG (delphi) и завершил конвертирование/перевод/перенос примера CGGPU OpenGL/CG CG в Delphi сегодня, и я хотел бы поделиться им с вами, чтобы, возможно, еще несколько (Delphi) люди будут смотреть на программирование GPGPU, особенно с OpenGL 3.0 для (более старых) видеокарт DX9.
Ответ 2
CUDA все еще только nVidia, и это не изменится. OpenCL - настоящий стандарт в этом случае, который не ограничивается GPGPU.
Как для использования в Delphi, все, что я знаю о том, как использовать его в Free Pascal. Однако есть вероятность, что код будет переносимым, вот ссылка на обновленные заголовки:
FreePascal Mantis RFE OpenCL
Что касается DLL, если вы используете nVidia, их можно найти здесь.
Здесь однако у нас есть пример проекта в Delphi.
Ответ 3
Вы должны использовать CUDA DELPHI
В собственном паскальном коде вы можете запускать ядра CUDA
Ответ 4
Я сделал тест с плавающей запятой, используя OpenCL и Delphi, некоторое время назад:
https://plus.google.com/110131086673878874356/posts/eWcipK16MV7
(содержит ссылку на демо и источники)