rimpocha 0 31 января, 2009 Опубликовано 31 января, 2009 · Жалоба У кого есть мнения по поводу использования ресурсов nVidia GPU для кодирования(!) MPEG4? Какие блоки алгоритма имеет смысл выполнять на GPU? Насколько критично время загрузки/выгрузки данных? UPD: Заодно здесь же вопрос к CaPpuCcino, который имеет опыт с данной технолигией. В документации пишут, что все операции с плавающей точкой выполняются за такт (cycle). Кроме того за 1 машинный цикл (cycle) выполняются операции c целыми, за исключением умножения 32х32, выполняющегося за 4 цикла (cycle). При этом, например, тактовая частота (clock) GF9600GT равна 650МГц. Вопрос: каково отношение clock/cycle? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbour 0 1 февраля, 2009 Опубликовано 1 февраля, 2009 · Жалоба не в курсе как там со скоростью SIMD, но легко упереться в скорость обмена между картой и прогой - реальная трабла для алгоритмов требующих легкий реалтайм - см. например печальный отчет по asterisk - мужики пытались куду для звука применить. учтите что разрекламированная многопотоковость все равно упирается в PCI. За что люблю FPGA - всегда сам себе хозяин ... По любому - серьезные задачи требуют реальных исследований. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SFx 0 1 февраля, 2009 Опубликовано 1 февраля, 2009 · Жалоба Cuda показывает приличные результаты только при множестве одинаковых операций. Могу предположить, что на GPU полезно было бы реализовать алгаритмы 2D-фильтрации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serg76 0 1 февраля, 2009 Опубликовано 1 февраля, 2009 · Жалоба Интересно кто-нибудь пробовал выполнять операции фильтрации сигналов с помощью CODA. Каков эффект по сравнению с классической реализацией на C++? Очень интересует этот вопрос Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dinam 1 2 февраля, 2009 Опубликовано 2 февраля, 2009 · Жалоба Вот здесь вроде обещают применить CUDA для декодирования H.264. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rimpocha 0 3 февраля, 2009 Опубликовано 3 февраля, 2009 · Жалоба Вопрос: каково отношение clock/cycle? Для меня до сих пор очень важен :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rimpocha 0 3 февраля, 2009 Опубликовано 3 февраля, 2009 · Жалоба Вот так 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. Который из этих двух клоков относится к первой цитате? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CaPpuCcino 0 4 февраля, 2009 Опубликовано 4 февраля, 2009 · Жалоба извините, я обычно эту ветку не просматриваю (мониторю только ПЛИСы). я сейчас точно не помню всех технических решений их АЛУ(обычному прикладному программеру особого интереса в этом нет, вам это, например с какой практической целью?), но часть конвеера работает на кратной повышеной частоте относительно общей ядрёной(+л1 кэш + текстурная память) частоты. (если всё ещё актуально будет, сегодня днём гляну и уточню) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rimpocha 0 4 февраля, 2009 Опубликовано 4 февраля, 2009 · Жалоба извините, я обычно эту ветку не просматриваю (мониторю только ПЛИСы). я сейчас точно не помню всех технических решений их АЛУ(обычному прикладному программеру особого интереса в этом нет, вам это, например с какой практической целью?), но часть конвеера работает на кратной повышеной частоте относительно общей ядрёной(+л1 кэш + текстурная память) частоты. (если всё ещё актуально будет, сегодня днём гляну и уточню) Мне нужно оценить прирост производительности нашего алгоритма при переносе части функций на nVidia. Поэтому важно знать тактовые частоты, время выполнения операций и количество вичислительных ядер. Я уже более-менее разобрался со всей архитектурой, в том числе с SIMD ядрами и четырех-уровневым конвеером. Но не понятна вот эта строчка 650 MHz core clock, with a 1625 MHz unified shader clock. На какой частоте работает целочисленная арифметика? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rimpocha 0 4 февраля, 2009 Опубликовано 4 февраля, 2009 · Жалоба Так. Похоже я сам все нашел. Вот в этой ветке http://forums.nvidia.com/index.php?showtopic=64757 на форуме nVidia говорят, что вычисления производятся именно на shader clock. То есть те 4 такта которые занимает целочисленное сложение -- это 4 такта на 1625 MHz. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
anton 0 4 февраля, 2009 Опубликовано 4 февраля, 2009 · Жалоба на сайте nVidia сейчас есть проигрователь и перекодировшик на ресурсах видео карты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
roman522 0 8 февраля, 2009 Опубликовано 8 февраля, 2009 · Жалоба 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться