Программирование высокопараллельных задач на GPU и fpc
Модератор: Модераторы
-
Serafim
- новенький
- Сообщения: 18
- Зарегистрирован: 29.07.2008 14:55:16
- Откуда: Екатеринбург
- Контактная информация:
Программирование высокопараллельных задач на GPU и fpc
Добрый день.
У меня такой вопрос: Сейчас появляются средства для программирования хорошо распараллеливаемых задач (например обработка видео, обработка изображений и рейтрейсинг) на 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++.
При этом хорошо бы, чтобы эти программы ещё и поддерживали инлайн ассемблер. Но даже и без него если появиться средство для программирования графических процессоров на Паскале, то это будет просто очень хорошо.
У меня такой вопрос: Сейчас появляются средства для программирования хорошо распараллеливаемых задач (например обработка видео, обработка изображений и рейтрейсинг) на 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++.
При этом хорошо бы, чтобы эти программы ещё и поддерживали инлайн ассемблер. Но даже и без него если появиться средство для программирования графических процессоров на Паскале, то это будет просто очень хорошо.
судя по сообщениям найденным в сети на delphi под cuda народ пишет
был бы рад, если кто-то возмется и напишет статейку применительно к fpc
был бы рад, если кто-то возмется и напишет статейку применительно к fpc
- Slavikk
- постоялец
- Сообщения: 208
- Зарегистрирован: 15.01.2007 21:34:52
- Откуда: Из лесов...
- Контактная информация:
CUDA есть в IRRLICHT, для него есть враперы для паскаля (правда для предыдущей версии, но их можно поправить). Если не хочешь сам писать или искать враперы - то можно поиспользовать, там же на форуме IRRLICHT - можно пообщатся на эту тему (про CUDA, правда на английском, но гугл сносно переводит
).
Я уже давно интересуюсь этим вопросом, так как это помогает достичь просто невероятных скоростей в обработке графики, в расчетах динамики, освещения и т. д..
Если на фрипаскале появится совместимое для разных видеокарт решение (написал задачу, если есть видеокарта которую можно задействовать – задействует, если нет делает на CPU) – ему цены не будет.
Если на фрипаскале появится совместимое для разных видеокарт решение (написал задачу, если есть видеокарта которую можно задействовать – задействует, если нет делает на CPU) – ему цены не будет.
Киборд в руки и вперед....
У них очень разная основа. Это придется создавать высокоуровневую надстройку и как следствие, иметь потерю эффективности.
У них очень разная основа. Это придется создавать высокоуровневую надстройку и как следствие, иметь потерю эффективности.
Чем же она такая разная?
Процессора и операционные системы тоже разные но фрипаскаль со всеми ими дружит.
А вообще все видеокарты прекрасно компилируют программы шейдеров написанные на glsl и hlsl. Логично решить, что можно достичь той-же совместимости и в других задачах.
Процессора и операционные системы тоже разные но фрипаскаль со всеми ими дружит.
А вообще все видеокарты прекрасно компилируют программы шейдеров написанные на glsl и hlsl. Логично решить, что можно достичь той-же совместимости и в других задачах.
- *vmr
- постоялец
- Сообщения: 168
- Зарегистрирован: 08.01.2007 00:46:07
- Откуда: Киев
- Контактная информация:
carrots писал(а):А вообще все видеокарты прекрасно компилируют программы шейдеров написанные на glsl и hlsl
Не прекрасно. Даже в эти высокоуровневых прослойках есть тясяча своих нуансов, заставляющих одну и ту же программу вести себя по разному на разных видеокартах/драйверах
Хотя, да, тут многое зависит от кривизны рук драйверописателей (компилятор glsl находится в драйвере)
Просто GLSL это очень высокоуровневий язык, и его функции могут исполняться самыми разными способами (исполнение самой функции решает драйвер, компилятор) если унас будут свои, одинаковые функции - результат должен быть правельный.
Ну с Carrots спорить не буду. У него в этой области знаний куда больше, чем у меня. Начинай, - кто сможет поддержит. Всеравно от этого не уйти.
- Slavikk
- постоялец
- Сообщения: 208
- Зарегистрирован: 15.01.2007 21:34:52
- Откуда: Из лесов...
- Контактная информация:
CG вместо GLSL и HLSL - и вперёд обрабатывать математику на видеокартах и CUDA ненужна. Заголовки для OpenGL и Directx есть для паскаля. В программе проверили, что доступно (не везде версии адекватны, у некоторых стоят более менее новые драйвера с OpenGL и Directx 8, у некоторых Directx 9 но версия OpenGL старенькая в драйверах видеокарты) из графических интерфейсов и через CG шейдеры нагрузили
. Можно не закорачиваться и использовать только OpenGL + GLSL. Но под всеми 4 моделями видеокарт (ATI, NVIDIA, INTEL и 4 не помню) нужно тестировать, потому что стандарт каждый понимает по своему. В конечном итоге не изворачиваясь получите расчётный процессор, только чего с ним делать
.
CUDA - дитё NVIDIA, ATI её вроде тоже понимать стал но на всё есть своё но. И для того что вы предлагаете нужно писать целую систему (фраймворк) не меньше чем Lazarus надстроенный над FPC. Могу поделать Вам только удачи, я бы такой фраймворк поиспользовал, только вот не знаю ещё где
.
Serafim писал(а):Нужно общее решение, работающее и на видеокартах ATI, и на видеокартах nVidia, плюс ещё нужно учесть Larrabee от Intel, которая должна выйти в 2009 или 2010 году.
CUDA - дитё NVIDIA, ATI её вроде тоже понимать стал но на всё есть своё но. И для того что вы предлагаете нужно писать целую систему (фраймворк) не меньше чем Lazarus надстроенный над FPC. Могу поделать Вам только удачи, я бы такой фраймворк поиспользовал, только вот не знаю ещё где
-
Serafim
- новенький
- Сообщения: 18
- Зарегистрирован: 29.07.2008 14:55:16
- Откуда: Екатеринбург
- Контактная информация:
Я бы с радостью написал подобный Фрэймуорк, если бы это было так просто и если бы моих знаний хватило на это. Но тут нужна работа не одного человека, а многих, возможно, даже нескольких десятков, и нужно тесное сотрудничество с AMD/ATI, nVidia и Intel, или по крайней мере очень хорошее знание архитектур их продуктов. При этом нужно ещё очень много свободного времени, чего у меня в день бывает не более 5 часов.
При этом нужно ещё очень много свободного времени, чего у меня в день бывает не более 5 часов
5 часов - это довольно много
