Перейти к содержанию
    

CUDA and MPEG4, H.264

У кого есть мнения по поводу использования ресурсов nVidia GPU для кодирования(!) MPEG4? Какие блоки алгоритма имеет смысл выполнять на GPU? Насколько критично время загрузки/выгрузки данных?

 

UPD: Заодно здесь же вопрос к CaPpuCcino, который имеет опыт с данной технолигией. В документации пишут, что все операции с плавающей точкой выполняются за такт (cycle). Кроме того за 1 машинный цикл (cycle) выполняются операции c целыми, за исключением умножения 32х32, выполняющегося за 4 цикла (cycle). При этом, например, тактовая частота (clock) GF9600GT равна 650МГц. Вопрос: каково отношение clock/cycle?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не в курсе как там со скоростью SIMD, но легко упереться в скорость обмена между картой и прогой - реальная трабла для алгоритмов требующих легкий реалтайм - см. например печальный отчет по asterisk - мужики пытались куду для звука применить. учтите что разрекламированная многопотоковость все равно упирается в PCI. За что люблю FPGA - всегда сам себе хозяин ... По любому - серьезные задачи требуют реальных исследований.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Cuda показывает приличные результаты только при множестве одинаковых операций. Могу предположить, что на GPU полезно было бы реализовать алгаритмы 2D-фильтрации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Интересно кто-нибудь пробовал выполнять операции фильтрации сигналов с помощью CODA. Каков эффект по сравнению с классической реализацией на C++? Очень интересует этот вопрос

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот здесь вроде обещают применить CUDA для декодирования H.264.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос: каково отношение clock/cycle? Для меня до сих пор очень важен :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот так

Arithmetic Instructions

To issue one instruction for a warp, a multiprocessor takes:

4 clock cycles for:

single-precision floating-point add, multiply, and multiply-add,

integer add,

bitwise operations, compare, min, max, type conversion instruction;

16 clock cycles for reciprocal, reciprocal square root, __logf(x)

 

32-bit integer multiplication takes 16 clock cycles, but __mul24 and __umul24

(see Appendix B) provide signed and unsigned 24-bit integer multiplication in 4

clock cycles.

Integer division and modulo operation are particularly costly and should be avoided

if possible or replaced with bitwise operations whenever possible: If n is a power of

2, (i/n) is equivalent to (i>>log2(n)) and (i%n) is equivalent to (i&(n-1));

the compiler will perform these conversions if n is literal.

Other functions take more clock cycles as they are implemented as combinations of

several instructions.

 

Однако:

Geforce 9600 GT

 

* 55/65nm G94/D9M GPU.

* 64 Stream Processors.

* 16 Raster Operation(ROP) units, 32 Texture Address(TA)/Texture Filter(TF) units.

* 20.8 billion texels/s fillrate.

* 650 MHz core clock, with a 1625 MHz unified shader clock.

Который из этих двух клоков относится к первой цитате?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

извините, я обычно эту ветку не просматриваю (мониторю только ПЛИСы).

я сейчас точно не помню всех технических решений их АЛУ(обычному прикладному программеру особого интереса в этом нет, вам это, например с какой практической целью?), но часть конвеера работает на кратной повышеной частоте относительно общей ядрёной(+л1 кэш + текстурная память) частоты. (если всё ещё актуально будет, сегодня днём гляну и уточню)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

извините, я обычно эту ветку не просматриваю (мониторю только ПЛИСы).

я сейчас точно не помню всех технических решений их АЛУ(обычному прикладному программеру особого интереса в этом нет, вам это, например с какой практической целью?), но часть конвеера работает на кратной повышеной частоте относительно общей ядрёной(+л1 кэш + текстурная память) частоты. (если всё ещё актуально будет, сегодня днём гляну и уточню)

 

Мне нужно оценить прирост производительности нашего алгоритма при переносе части функций на nVidia. Поэтому важно знать тактовые частоты, время выполнения операций и количество вичислительных ядер.

Я уже более-менее разобрался со всей архитектурой, в том числе с SIMD ядрами и четырех-уровневым конвеером.

Но не понятна вот эта строчка 650 MHz core clock, with a 1625 MHz unified shader clock. На какой частоте работает целочисленная арифметика?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так. Похоже я сам все нашел.

Вот в этой ветке http://forums.nvidia.com/index.php?showtopic=64757 на форуме nVidia говорят, что вычисления производятся именно на shader clock. То есть те 4 такта которые занимает целочисленное сложение -- это 4 такта на 1625 MHz.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Cuda показывает приличные результаты только при множестве одинаковых операций. Могу предположить, что на GPU полезно было бы реализовать алгаритмы 2D-фильтрации.

Проверял 9600GT на комплексных FIR фильтрах размером 128 (1D). Производительность расчита по приблизительной формуле G = 2*N+2*N (два флоатовских умножения и два сложение на один элемент линии).

В первых решениях получилось порядка 2-3 GFlops.

После оптимизации загрузки данных и коэфицентов (использование shared памяти и кеша + шаманство с последовательностью инструкций) удалось получить около 39 GFlops.

Результат конечно достаточно приличный, но до заявленных 200 далековато(хотя не могу понять как они получили такую цифру).

Узким местом остаётся память, из за её латентности, и похоже контролера.

 

Так что при 2D, возможно, производительность будет ещё ниже.

 

p.s. Без лишней шумихи появилась версия 2.1 ссылки для загрузки есть на оф. форуме nvidia.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...