Страница 1 из 4

Программирование высокопараллельных задач на GPU и fpc

СообщениеДобавлено: 29.09.2008 10:46:37
Serafim
Добрый день.
У меня такой вопрос: Сейчас появляются средства для программирования хорошо распараллеливаемых задач (например обработка видео, обработка изображений и рейтрейсинг) на GPU (графический процессор видеокарты), например, Fusion SDK от ATI, CUDA от nVidia и OpenCL от Apple, при этом прирост производительности получается просто огромным, в сравнении с использованием CPU, ведь, например, в AMD/ATI Radeon HD 4870 X2 1600 процессоров, работающих на частоте около 700 МГц, при этом ширина шины памяти составляет 256 бит и ее скорость может достигать 2 ГГц и больше. И в добавок можно установить две таких видеокарты, и характеристики возрастают вообще вдвое. В связи с этим планируется ли какие-нибудь расширения fpc или Delphi для чтобы и на Паскале писать программы, работающие на GPU? Ведь и Fusion SDK, и CUDA, и OpenCL основываются на C/C++.
При этом хорошо бы, чтобы эти программы ещё и поддерживали инлайн ассемблер. Но даже и без него если появиться средство для программирования графических процессоров на Паскале, то это будет просто очень хорошо.

Re: Программирование высокопараллельных задач на GPU и fpc

СообщениеДобавлено: 29.09.2008 12:09:47
ev
судя по сообщениям найденным в сети на delphi под cuda народ пишет
был бы рад, если кто-то возмется и напишет статейку применительно к fpc ;)

Re: Программирование высокопараллельных задач на GPU и fpc

СообщениеДобавлено: 29.09.2008 13:13:35
Slavikk
CUDA есть в IRRLICHT, для него есть враперы для паскаля (правда для предыдущей версии, но их можно поправить). Если не хочешь сам писать или искать враперы - то можно поиспользовать, там же на форуме IRRLICHT - можно пообщатся на эту тему (про CUDA, правда на английском, но гугл сносно переводит :D ).

Re: Программирование высокопараллельных задач на GPU и fpc

СообщениеДобавлено: 29.09.2008 14:47:49
Serafim
Нужно общее решение, работающее и на видеокартах ATI, и на видеокартах nVidia, плюс ещё нужно учесть Larrabee от Intel, которая должна выйти в 2009 или 2010 году.

Re: Программирование высокопараллельных задач на GPU и fpc

СообщениеДобавлено: 29.09.2008 16:49:11
*vmr
ммм
вроде общим решением должен стать OpenCL

Re: Программирование высокопараллельных задач на GPU и fpc

СообщениеДобавлено: 29.09.2008 17:32:31
carrots
Я уже давно интересуюсь этим вопросом, так как это помогает достичь просто невероятных скоростей в обработке графики, в расчетах динамики, освещения и т. д..
Если на фрипаскале появится совместимое для разных видеокарт решение (написал задачу, если есть видеокарта которую можно задействовать – задействует, если нет делает на CPU) – ему цены не будет.

Re: Программирование высокопараллельных задач на GPU и fpc

СообщениеДобавлено: 29.09.2008 17:54:25
Logo
Киборд в руки и вперед....

У них очень разная основа. Это придется создавать высокоуровневую надстройку и как следствие, иметь потерю эффективности.

Re: Программирование высокопараллельных задач на GPU и fpc

СообщениеДобавлено: 29.09.2008 18:37:40
carrots
Чем же она такая разная?
Процессора и операционные системы тоже разные но фрипаскаль со всеми ими дружит.
А вообще все видеокарты прекрасно компилируют программы шейдеров написанные на glsl и hlsl. Логично решить, что можно достичь той-же совместимости и в других задачах.

Re: Программирование высокопараллельных задач на GPU и fpc

СообщениеДобавлено: 29.09.2008 19:56:05
*vmr
carrots писал(а):А вообще все видеокарты прекрасно компилируют программы шейдеров написанные на glsl и hlsl

Не прекрасно. Даже в эти высокоуровневых прослойках есть тясяча своих нуансов, заставляющих одну и ту же программу вести себя по разному на разных видеокартах/драйверах

Хотя, да, тут многое зависит от кривизны рук драйверописателей (компилятор glsl находится в драйвере)

Re: Программирование высокопараллельных задач на GPU и fpc

СообщениеДобавлено: 29.09.2008 20:08:01
carrots
Просто GLSL это очень высокоуровневий язык, и его функции могут исполняться самыми разными способами (исполнение самой функции решает драйвер, компилятор) если унас будут свои, одинаковые функции - результат должен быть правельный.

Re: Программирование высокопараллельных задач на GPU и fpc

СообщениеДобавлено: 29.09.2008 22:56:16
Logo
Ну с Carrots спорить не буду. У него в этой области знаний куда больше, чем у меня. Начинай, - кто сможет поддержит. Всеравно от этого не уйти.

Re: Программирование высокопараллельных задач на GPU и fpc

СообщениеДобавлено: 30.09.2008 09:32:45
Slavikk
CG вместо GLSL и HLSL - и вперёд обрабатывать математику на видеокартах и CUDA ненужна. Заголовки для OpenGL и Directx есть для паскаля. В программе проверили, что доступно (не везде версии адекватны, у некоторых стоят более менее новые драйвера с OpenGL и Directx 8, у некоторых Directx 9 но версия OpenGL старенькая в драйверах видеокарты) из графических интерфейсов и через CG шейдеры нагрузили :). Можно не закорачиваться и использовать только OpenGL + GLSL. Но под всеми 4 моделями видеокарт (ATI, NVIDIA, INTEL и 4 не помню) нужно тестировать, потому что стандарт каждый понимает по своему. В конечном итоге не изворачиваясь получите расчётный процессор, только чего с ним делать :D .

Serafim писал(а):Нужно общее решение, работающее и на видеокартах ATI, и на видеокартах nVidia, плюс ещё нужно учесть Larrabee от Intel, которая должна выйти в 2009 или 2010 году.


CUDA - дитё NVIDIA, ATI её вроде тоже понимать стал но на всё есть своё но. И для того что вы предлагаете нужно писать целую систему (фраймворк) не меньше чем Lazarus надстроенный над FPC. Могу поделать Вам только удачи, я бы такой фраймворк поиспользовал, только вот не знаю ещё где :D .

Re: Программирование высокопараллельных задач на GPU и fpc

СообщениеДобавлено: 30.09.2008 11:20:59
Serafim
Я бы с радостью написал подобный Фрэймуорк, если бы это было так просто и если бы моих знаний хватило на это. Но тут нужна работа не одного человека, а многих, возможно, даже нескольких десятков, и нужно тесное сотрудничество с AMD/ATI, nVidia и Intel, или по крайней мере очень хорошее знание архитектур их продуктов. При этом нужно ещё очень много свободного времени, чего у меня в день бывает не более 5 часов.

Re: Программирование высокопараллельных задач на GPU и fpc

СообщениеДобавлено: 30.09.2008 12:11:56
ev
При этом нужно ещё очень много свободного времени, чего у меня в день бывает не более 5 часов

5 часов - это довольно много ;)

Re: Программирование высокопараллельных задач на GPU и fpc

СообщениеДобавлено: 30.09.2008 12:59:25
Serafim
Если каждый день с утра до ночи только работать и работать, то очень быстро это всё может, мягко говоря, очень сильно надоесть.