Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 16 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Junior
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: г. Новокузнецк
Слышал, что GPU можно использовать с помощью шэйдеров
для посторонних целей, например, для кодирования mp3-шек
или математических расчетов.
Хотелось бы поглазеть на пример такого использования.



Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
Слышал, что GPU можно использовать с помощью шэйдеров
для посторонних целей, например, для кодирования mp3-шек
или математических расчетов.
Хотелось бы поглазеть на пример такого использования.

Мдя уж.
Сравни скорость центрального процессора и скорость GPU и желание само по себе отпадет.


 

Member
Статус: Не в сети
Регистрация: 30.01.2003
Откуда: Москва
Ray Adams частота тут не главное :) главное то, сколько GPU может сделать за один такт - а сделать оно может немало.

GPU можно эффективно использовать только для трехмерных расчетов. Собственно команды ассемблера для GPU (ps v1.1) в основном состоят из операций над векторами, матрицами и сэмплингом текстур. Какие-то математические расчеты делали, а вот кодирование MP3...даже не представляю, как это можно организовать. то-то более определенное насчет шейдеров версий 2 и 3 сказать не могу, вроде в 3-х циклы появились...

Добавлено спустя 11 минут, 3 секунды:
Кажется, шейдеры v2 - это появление языка высокого уровня...


 

Advanced member
Статус: Не в сети
Регистрация: 23.10.2003
Откуда: Иркутск/Майкоп
В конференции iXbt этот вопрос разбирали подробно.
http://forum.ixbt.com/0008/019410.html

и там по ссылкам.

_________________
Края каждого совершенно нового крышка процессора не на 100% гладкая. Это связано с тем, что следов мастерства не избежать. (c) Али.


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Asteroid
Asteroid писал(а):
Ray Adams частота тут не главное Smile главное то, сколько GPU может сделать за один такт - а сделать оно может немало.

Но все равно меньше, слабее и не с такой точностью как обычный CPU, так что идея сама по себе мягко говоря глупая :)


 

Junior
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: г. Новокузнецк
Думаю идея не такая уж и глупая и "это мое заднее слово"(к.ф. "Кин-дза-дза").
За ссылки спасибо.

P.S.Прикольно, какую тему ни заведи - всегда находятся люди,
готовые обозвать глупцом. Самим то не стыдно?


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Owl83 писал(а):
P.S.Прикольно, какую тему ни заведи - всегда находятся люди, готовые обозвать глупцом. Самим то не стыдно?

Ткни где тебя тут обзывали глупцом?


 

Member
Статус: Не в сети
Регистрация: 30.01.2003
Откуда: Москва
Ray Adams В любом случае, глупой эту идею я бы не назвал. Она не ко всему применима, но вот использовать доп. аппаратные мощности - это очень большой плюс. А заодно можно посчитать. Пусть ядро какой-нибудь видеокарточки работает на 400 MHz. Возьмем процесор, пусть он работает на частоте 2400, т.е. в 6 раз больше.

За один такт GPU может сложить/вычесть 3хзначный вектор. Без особых оптимизаций CPU понадобится на это минимум 5 тактов (загрузить 3 float - 3 такта, сложить/вычесть каждый float - 3 такта, но благодаря конвейру это займет не 9, а те самые 5 тактов). Выигрыш? Да, некоторый.
За тот же один такт GPU может умножить вектор на скаляр. Благодаря все тому же конвейеру, CPU потребуется 8 тактов только на вычисления + 4 на загрузку чисел. Опять-таки выигрыш.
Если не ошибаюсь, скалярное произведение векторов на GPU также делается за 1 такт (но может быть и за два). На CPU это займет на менее 12. Снова выигрыш :)

Так что идея не настолько глупая. Даже если на передачу туда-сюда данных уйдет значимая часть времени, получить 50% прирост к процессору не так уж и глупо. А чем длиннее и сложнее шейдерная программа тем больше прирость.

Чуть не забыл :) Сколько там пиксельных конвейеров за такт обрабатывается? :) Умножаем скорость обработки программ на их число - и получаем смачный выигрыш GPU перед CPU :D


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Asteroid Ты забыл , что у CPU также есть математический сопроцессор, это раз, а второе. GPU чаще принимает данные нежели их выдает. Сужу по HLSL под OGL там можно писать и читать данные в шейджер , но только по одному занчению! Теперь посотри твоие потери
1. передача данных в шейдер
2. Выполенени шейдера
3. Чтение данных из шейдера
:)
Цитата:
Чуть не забыл Smile Сколько там пиксельных конвейеров за такт обрабатывается? Smile Умножаем скорость обработки программ на их число - и получаем смачный выигрыш GPU перед CPU

Насколько хорошо ты разбираешся в графических процессорах и приципах работы шейдерной системы? :)

Asteroid писал(а):
Даже если на передачу туда-сюда данных уйдет значимая часть времени, получить 50% прирост к процессору

Не будет такого :)


 

Member
Статус: Не в сети
Регистрация: 30.01.2003
Откуда: Москва
Ray Adams Смотрим :)
1. Записать все в текстуру, отдать ее на съедение.
2. Пока выполняется шейдер заняться своими делами, например, подготовкой следующей текстуры.
3. Считать все обратно из текстуры или экрана.

Ты знаешь, что такое raytracing и сколько он требует вычислительных ресурсов? :) Некоторые усиленно переводят его на GPU: http://www.clockworkcoders.com/oglsl/rt/index.html. Там же есть ссылка исходники.

Опять-таки, я не говорю, что всегда можно занять видеокарту работой. Но там где можно - это выгодно :)

Ray Adams писал(а):
Насколько хорошо ты разбираешся в графических процессорах и приципах работы шейдерной системы? :)

Не настолько :) Но прошу ткнуть носом, если это не так.


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Asteroid писал(а):
1. Записать все в текстуру, отдать ее на съедение.
2. Пока выполняется шейдер заняться своими делами, например, подготовкой следующей текстуры.
3. Считать все обратно из текстуры или экрана.

Мдя :) вот тут потеряеш столько, что лучше забыть об этом. И не забывай, речь шла о посторонних для 3D графики расчетов, а ты привел пример расчета именно для 3D графики :)


 

Member
Статус: Не в сети
Регистрация: 30.01.2003
Откуда: Москва
Ray Adams 3-й пост сверху:
Asteroid писал(а):
GPU можно эффективно использовать только для трехмерных расчетов.
:)

GPU сложно использовать для чего-либо другого, просто потому что он не создан для этого :) Я отнюдь не уверен, что можно нормально выполнить FFT на видюхе, следовательно под большим вопросом все кодирование MP3 и видео на GPU.
А что если запрячь под это дело ресурсы звуковой карты? :) Кончено, не сейчас, а в отдаленном будущем, когда звуковым тоже понадобится мощный процессор :)

Что касается расчета различных физико-химико-фармакологических вещей, я опять-таки не знаю, как они проводятся %) Но (ИМХО) оно имеет отношение к 3D расчетам - следовательно, это можно оптимизировать до такой степени, что потери на передаче данных не будут выглядеть устрашающими :)

Кстати, если приятнее читать "с экрана", а не из текстуры - то почему бы не настроить матрицу проекции и кидать вершини с соотв. параметрами?...В том же GL была возможность послать на видеокарту какие-то доп. сведения при каждой вершине (и не по одному числу - а чуть ли не массивом).


 

Advanced member
Статус: Не в сети
Регистрация: 09.02.2005
Откуда: Питер
я чего-то не въезжаю... ребятки, на gpu посчитать можно всё что угодно... что-то посчитается быстрее - что-то медленее...

посмотрите на марк2005 - там проц имспользуется только для инициализации тестов. Вся остальная работа - на шейдерах.

зы: главное - найти компромисс в расчётах...

_________________
.Адмирал.


 

Member
Статус: Не в сети
Регистрация: 30.01.2003
Откуда: Москва
Nilson Отсортируй, пожалуйста, строки в списке на GPU ;) Все, что может CPU, посчитать на GPU невозможно - это не универсальный процессор. А вот с тем, что можно, встает вопрос целесообразности: насколько быстрее будет выполнятся код (со всеми накладками на передачу) и сколько займет написание кода под GPU, особенно если программист с шейдерами не знаком...


 

Advanced member
Статус: Не в сети
Регистрация: 09.02.2005
Откуда: Питер
Asteroid,

тебе по какому свойству их отсортировать? давай юникодные, скажем, по возрастанию? только в скорости сортировки не будем соревноваться, тут я пасс... и так через дальний восток перебор делать прийдётся...

зы: только после 16 июня :) щас диплом дописываю...

_________________
.Адмирал.


 

Member
Статус: Не в сети
Регистрация: 30.01.2003
Откуда: Москва
Nilson почти уговорил =) но вопрос о скорости все равно маячит перед глазами...
"Почти" относится к аппаратным вызовам через int, но это уже не вычисления


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 16 
-

Часовой пояс: UTC + 3 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan