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

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

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

Сообщение ev » 01.10.2008 17:15:41

вопрос только в том - кто же возмется написать? :roll:
ev
долгожитель
 
Сообщения: 1772
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

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

Сообщение *vmr » 01.10.2008 18:28:25

Serafim писал(а):не всё, что можно реализовать на CPU, будет работать и на GPU

ну я это и хотел сказать :)

ev писал(а):может кто возмется сделать програмку разархивирования?

на ГПУ имхо делать бессмысленно

Где бенефиты?
Аватара пользователя
*vmr
постоялец
 
Сообщения: 168
Зарегистрирован: 08.01.2007 01:46:07
Откуда: Киев

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

Сообщение ev » 01.10.2008 18:50:58

на ГПУ имхо делать бессмысленно

причина?
ev
долгожитель
 
Сообщения: 1772
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

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

Сообщение *vmr » 01.10.2008 19:41:59

ev писал(а):причина?

- Низкая расаралеливаемость алгоритмов
- Дофигище условных переходов
- Рандомный доступ к памяти (хождение по всякого рода деревьям, словарям)

Добавлено спустя 3 минуты 14 секунд:
архивирование — это как раз та область где решающую роль играет кеш процессора и скорость памяти
Вот почему во всех тестах на архивирование процы AMD показывали себя не с лучшей стороны. В этих тестах мощный АЛУ практически не использовался, а важна была только brute-force (мегагерцы и кеш - сильная сторона Intel)
Аватара пользователя
*vmr
постоялец
 
Сообщения: 168
Зарегистрирован: 08.01.2007 01:46:07
Откуда: Киев

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

Сообщение ev » 01.10.2008 20:10:05

- Низкая расаралеливаемость алгоритмов

можно ведь одновременно несколько архивов обрабатывать
ev
долгожитель
 
Сообщения: 1772
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

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

Сообщение Serafim » 01.10.2008 21:28:34

*vmr писал(а):на ГПУ имхо делать бессмысленно


Рейтрейсинг начали реализовывать на GPU ещё в 2005 году, причём занимаются этим учёные, http://www.clockworkcoders.com/oglsl/rt/index.html, http://www.iit.bme.hu/~szirmay/ibl_link.htm и http://www.graphics.cs.uiuc.edu/geomrt/, можно ещё найти, если покопаться. По моему, в том же году проект Folding@home, - симуляция свёртывания белка, также начал переходить на GPU http://folding.stanford.edu/Russian/Download, при этом и ATI и nVidia сообщают, что на GPU данный процесс идёт намного быстрее. Совсем недавно появился проект по симуляции работы имунной системы, в котором также моделирование идёт на GPU - http://f1cd.ru/news/pc/390/, и недавно Motion DSP - компания автор программы по улучшению качества видео, написала её на CUDA и сообщила, что прирост скорости равен 500%, правда не сказано на какой именно видеокарте, но всё равно, - http://www.motiondsp.com.
Если бы ещё в 2005 году не было смысла переводить эти проекты на GPU, то стали бы этим вообще заниматься и говорить, что прирост скорости вычислений является просто огромным? За эти три года CPU изменились не очень сильно, тогда как GPU совершили огромный скачок вперёд. Да и сильно ли отличается обработка видео от разархивирования файлов? При обработке видео условных переходов, пожалуй ещё больше будет.
Да и самый такой пример, возьмите включите проигрывание любого DVD-фильма, попробуйте включить деинтерлейсинг и компенсацию движения, на CPU, даже 3 ГГц процессор, будет загружен больше чем на 70%, а если запустить проигрывание нескольких фильмов, то вообще будут задержки. Если же то же самое включить через аппаратное ускорение видеокарты, то всё будет работать на ура.
Serafim
новенький
 
Сообщения: 18
Зарегистрирован: 29.07.2008 14:55:16
Откуда: Екатеринбург

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

Сообщение Slavikk » 01.10.2008 22:14:12

Специальное аппаратное ускорение видеокодека, сделано по типу Opengl (свой интерпретатор) разработчиками видеокарт.
Аватара пользователя
Slavikk
постоялец
 
Сообщения: 208
Зарегистрирован: 15.01.2007 22:34:52
Откуда: Из лесов...

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

Сообщение *vmr » 01.10.2008 23:19:12

ev писал(а):можно ведь одновременно несколько архивов обрабатывать

все 800??? :shock: :lol: :lol:

Serafim писал(а):Рейтрейсинг начали реализовывать на GPU ещё в 2005 году

Дык рейтрейсинг отлично ложится под ГПУ, да и вообще под любую многопроцессорную систему
Вон Интел пиарит свои многоядерники показывая QuakeWars где рендер идет целиком через рейтрейсинг. Рейтрейсинг — это будущее трехмерной графики, и все идет к его освоению и обкатыванию.
Видео так вообще отлично паралелится. Считай сколько пикселей, столько и потоков :)

А я же говорил что архиватор бессмысленно делать на ГПУ — перформенс будет еще меньше, при неимоверных трудозатратах изготовления.
Последний раз редактировалось *vmr 02.10.2008 01:39:35, всего редактировалось 1 раз.
Аватара пользователя
*vmr
постоялец
 
Сообщения: 168
Зарегистрирован: 08.01.2007 01:46:07
Откуда: Киев

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

Сообщение ev » 01.10.2008 23:56:07

все 800???

а в чем проблема? ;)
ev
долгожитель
 
Сообщения: 1772
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

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

Сообщение Serafim » 02.10.2008 11:01:46

*vmr писал(а):А я же говорил что архиватор бессмысленно делать на ГПУ — перформенс будет еще меньше, при неимоверных трудозатратах изготовления.


*vmr писал(а):- Низкая расаралеливаемость алгоритмов

Насчёт низкой распараллеливаемости алгоритмов вот:
ev писал(а):можно ведь одновременно несколько архивов обрабатывать
и
вот:
Serafim писал(а):Можно и то и то, если например каждый файл в своём потоке обрабатывать или разбивать файл на несколько кусков и каждый из них разархивировать по отдельности, а потом соединять всё вместе.


*vmr писал(а):- Дофигище условных переходов

Вы думаете в рейтрейсинге мало условных переходов? При проверке пересечения каждого луча с каждым объектом сцены, а потом и его отражения, и его преломления и на пути к источнику света. Или при симуляции имунной системы мало условных переходов? При распознавании лейкоцитами "свой/чужой" и симуляции других их свойств.

*vmr писал(а):Рандомный доступ к памяти (хождение по всякого рода деревьям, словарям)

Насчёт произвольного доступа к памяти: на GPU сейчас пишут обработку физики, у ATI это - ATI Physics, у nVidia - PhysX, теперь и ATI также поддерживает PhysX. И уж при обработке физики произвольных обращений к памяти и условных переходов тех же самых не меньше, чем при архивировании/разархивировании. Причём обработка физики даже на ATI Radeon X 1900 идёт быстрее, чем на процессорах http://www.3dnews.ru/video/ati_physics2, а у него архитектура ещё не унифицированная, и http://www.nvidia.com/object/physx_faq.html. Да и при той же самой симуляции иммунной системы мало произвольных обращений к памяти? При обращении к каждому свойству каждого лейкоцита и инородного организма.

*vmr писал(а):Потому у видеокарт нет такого кеша как на ЦПУ

У видеокарт есть кэш, быть может не такой как у CPU, но всётаки, цитата с сайта http://ati.amd.com/products/Radeonhd4800/specs.html:
"Fully associative multi-level texture cache design"
"Fully associative texture Z/stencil cache designs"
"High performance vertex cache"
"Memory read/write cache for improved stream output performance".

Добавлено спустя 45 минут 43 секунды:
Slavikk писал(а):Специальное аппаратное ускорение видеокодека, сделано по типу Opengl (свой интерпретатор) разработчиками видеокарт.


Да насчёт DVD - это я поспешил, но Motion DSP - это не декодирование видео, а восстановление из некачественного видео более высокодетального, что точно делается не на каком нибудь дополнительном чипе, а на ядре видеокарты.
Serafim
новенький
 
Сообщения: 18
Зарегистрирован: 29.07.2008 14:55:16
Откуда: Екатеринбург

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

Сообщение *vmr » 02.10.2008 16:32:15

Serafim писал(а):Можно и то и то, если например каждый файл в своём потоке обрабатывать или разбивать файл на несколько кусков и каждый из них разархивировать по отдельности, а потом соединять всё вместе.

каждый файл? Это еще надо чтоб архив содержал > 640(800) файлов, да и то, при условии что винчестер не повесится :)

Разбивать файл на куски перед архивированием — плохая идея. Наоборот, стараются все объединить в один большой кусок (solid-архивы)
Многопоточно разархивировать один большой кусок тоже не получится (вспомним тормознутость solid-архивов)

Serafim писал(а):Вы думаете в рейтрейсинге мало условных переходов?

да

Serafim писал(а):И уж при обработке физики произвольных обращений к памяти и условных переходов тех же самых не меньше, чем при архивировании/разархивировании.

Я не физик, но все же очень сомневаюсь в вашем утверждении

Serafim писал(а):Причём обработка физики даже на ATI Radeon X 1900 идёт быстрее, чем на процессорах http://www.3dnews.ru/video/ati_physics2

А вы вникали что та физика делает? На 1900 - третьи шейдеры. Там нет условных переходов.
Физика способна обрабатывать только партиклы — примитивные коллизии и поведение. Сами партиклы описивались всего одной RGBA текстурой (масса, вектор скорости). Коллизии обрабатывались только с плоскостью, коэффициенты уравнения которой передавалось в шейдер. А скорость достигается за счет огромного числа этих партиклов, который обсчитывались паралельно.
Аватара пользователя
*vmr
постоялец
 
Сообщения: 168
Зарегистрирован: 08.01.2007 01:46:07
Откуда: Киев

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

Сообщение ev » 02.10.2008 16:49:16

каждый файл?

можно 1 ядро на 1 файл в архиве, а лучше 1 ядро на 1 архив (чтобы не зависеть от количества файлов в архиве

да и то, при условии что винчестер не повесится

ну так можно рейд использовать, можно винты быстрые... много вариантов ;)
ev
долгожитель
 
Сообщения: 1772
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

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

Сообщение Sergei I. Gorelkin » 02.10.2008 20:33:53

Винчестер...
Какую там уже по счету шину придумывают для того, чтобы все нужные данные побыстрее в видеокарту запихнуть, да обратно вытащить?

Условные переходы портят производительность только на x86. На любом вменяемом DSP-подобном процессоре реализованы условные префиксы почти ко всем командам (а не только к привычному jmp), что позволяет программировать с условиями, но почти без переходов. Кроме того, как только в память становится не нужно грузить Windowzz со всеми ее иконками и прочим спамом, то жалкой сотни килобайт этой памяти сразу же начинает хватать на очень серьезный вычислительный проект. А небольшой объем памяти не требует кэширования и может быть сделан очень быстрым для сколь угодно произвольного доступа.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

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

Сообщение Serafim » 03.10.2008 08:59:00

*vmr писал(а):Вы думаете в рейтрейсинге мало условных переходов?

*vmr писал(а):да


Допустим, у вас 20000 сфер в сцене, пусть для каждого луча из них обрабатываются только процентов 30 - 40%, записывается квадратное уравнение, и смотрится дискриминантат, и исходя из его <0, =0 или >0 делается вывод о том не пересекается, касается или пересекается луч со сферой, - что это как не условные переходы? И для каждого луча нужно обработать 3000 - 7000 сфер, а если ещё учитывать отражённый и преломлённый лучи и луч на источник света, то каждый прибавляет ещё примерно такое же количество условных переходов. И что вот эти 10000 условных переходов на каждый луч мало? При этом каждый луч обрабатывается одним процессором, лучи строяться из пикселей на экране.

*vmr писал(а):каждый файл? Это еще надо чтоб архив содержал > 640(800) файлов, да и то, при условии что винчестер не повесится

Смотря о чём вы говорите, если об архивировании, то тут что на CPU, что на GPU каждый файл всё равно придётся читать, а если об разархивировании, то они все вместе в одном архиве и расположены, если не подряд то, по крайней мере большими кусками рядом, и жёсткий диск их достаточно быстро прочитает, и что на CPU, что на GPU их так же придётся считать с HDD, и почему обязательно нужно делить архив по файлам, содержащимся в нём, например WinRAR может на дискеты сохранять и разархивировать потом из них, и там далеко не всегда в каждом архиве на дискете целое число файлов. Раз WinRAR умеет просто делить архив на части (и необязательно, чтобы в каждой части архива содержалось целое число файлов, это может быть заархивирован на дискеты один большой файл), разархивировать и потом соединять, то можно так же разделить архив на равные части и дать каждому ядру свою часть.

*vmr писал(а):Разбивать файл на куски перед архивированием — плохая идея. Наоборот, стараются все объединить в один большой кусок (solid-архивы)

Чем же она так плоха?

*vmr писал(а):Многопоточно разархивировать один большой кусок тоже не получится (вспомним тормознутость solid-архивов)

Почему не получиться?

*vmr писал(а):На 1900 - третьи шейдеры. Там нет условных переходов.

Извините меня, но даже в GLSL есть условные переходы. И в Shader Model 3.0 так же есть, цитата с сайта http://subscribe.ru/archive/comp.hard.hardpc/200705/27154633.html:
"В Shader Model 3.0 были добавлены еще более длинные шейдеры, возможности динамических переходов в вершинных и пиксельных шейдерах,"
"В пиксельные шейдеры третьей версии включена поддержка условных переходов"
Даже если просто в Google ввести "Shading Model 3.0 условные переходы" он вам выдаст очень много чего почитать.

*vmr писал(а):Физика способна обрабатывать только партиклы — примитивные коллизии и поведение. Сами партиклы описивались всего одной RGBA текстурой (масса, вектор скорости). Коллизии обрабатывались только с плоскостью, коэффициенты уравнения которой передавалось в шейдер. А скорость достигается за счет огромного числа этих партиклов, который обсчитывались паралельно.

По вашему в тестах "Тест №1. Падающие камни" и "Тест №2. Поддон" камни и шахматы, вращающиеся вокруг своей оси и имеющие центр масс и крутящие моменты были представлены одной точкой, партиклом?

*vmr писал(а):И уж при обработке физики произвольных обращений к памяти и условных переходов тех же самых не меньше, чем при архивировании/разархивировании.

*vmr писал(а):Я не физик, но все же очень сомневаюсь в вашем утверждении

Насчёт условных переходов в данном случае, я может быть и погорячился, но на эту тему рейтрейсинг даёт весьма хорошее представление, читайте выше.
Насчёт произвольного доступа к памяти, цитата с сайта http://www.3dnews.ru/video/ati_physics2/index2.htm: "«Камни» представляют собой вытянутые эллипсоиды, состоящие из малого числа полигонов. Регулируемый параметр – число «камней», которое равно 10 000, 15 000 или 20 000 штук." Ведь никто же не гарантирует, что цепочка объектов, описывающих геометрически эти элипсы, массу и скорость расположена в памяти подряд. Или при симуляции иммунной системы: встречает лейкоцит, другого лейкоцита, но ещё не знает об этом и проверяет "свой/чужой", при этом лейкоцит может быть любым из цепочки лекоцитов. То же самое и с инородными организмами. Что это как не произвольный доступ к памяти?

Добавлено спустя 2 часа 23 минуты 27 секунд:
Вот пример применения в Web графических процессоров, конечно, не архивирование, но всё же:
http://www.photodate.ru/about/news/detail.php?ID=20915.

И вот на сайте http://cuda.ixbt.com/ объявлен конкурс на написание программ, работающих на GPU, среди них:
"Программы повышающие продуктивность работы, например архиваторы и менеджеры" - значит люди видят в этом смысл. Можно как раз написать программу и здесь посмотреть как она работать будет и в конкурсе поучавствовать.
Serafim
новенький
 
Сообщения: 18
Зарегистрирован: 29.07.2008 14:55:16
Откуда: Екатеринбург

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

Сообщение ev » 03.10.2008 11:36:22

ну если мы еще и 1 архив будем бить на разное кол-во процессоров, то сложность задачи увеличится - следовательно вероятность ее решения уменьшится
лучше для начала реализовать хотя бы 1 архив на 1 процессор ;)
ev
долгожитель
 
Сообщения: 1772
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Пред.След.

Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24

Рейтинг@Mail.ru