-
![]() |
![]() |
![]() |
|
|
Производительность параллельных вычислений GPGPUИспользование видеокарт для организации параллельных вычислений очень перспективно, причём это не описание ближайшего будущего, а суровая реальность. Для реализации возможностей современных видеокарт необходимо соответствующее программное обеспечение и алгоритмы, которые можно распараллелить. Большинство алгоритмов, используемых в программном обеспечении для процессоров Intel/AMD/Cell изначально являются последовательными, поэтому не всегда возможна их переделка для параллельной реализации. Примерами таких последовательных алгоритмов являются арифметическое кодирование, сжатие в JPEG без потерь (JPEG-LS), декодирование видеопотока и др. Для демонстрации возможностей параллельных вычислений на видеокартах NVIDIA с технологией CUDA мы написали ряд программ, которые раскрывают потенциал этого направления. Эти примеры сделаны нами и не повторяют код из примеров CUDA SDK. Более того, наши результаты заметно лучше, чем можно найти в SDK. Конфигурация компьютера
Дополнительные условияДля демонстрации результатов параллельных вычислений на видеокарте есть следующие варианты: данные перед вычислениями могут находиться в памяти компьютера или в памяти видеокарты. Такая постановка задачи позволяет оценить потенциал именно видеокарты, без учёта влияния других устройств, связанных с операциями ввода-вывода. Вычисление гистограмм на видеокарте (исходные данные в памяти видеокарты)При вычислении гистограммы (64-bin) для массива данных размером 143 МБайт получена производительность расчётов 110 ГБайт в секунду. Для расчётов гистограммы (256-bin) для массива данных размером 143 МБайт получена производительность 74 ГБайт в секунду. Для видеокарт, у которых cc=2.0 (Fermi) скорость расчёта гистограмм не зависит от исходных данных. При этом существенное ограничение состоит в том, что размер данных должен быть кратен 14 кБ. Для видеокарт, у которых сс=1.2 или 1.3, скорость расчёта гистограмм намного ниже и она сильно зависит от исходных данных. В этом случае при расчёте гистограммы для абсолютно белого изображения скорость упадёт значительно из-за конфликтов при записи промежуточных результатов. Сжатие 8-битных изображений по алгоритму Baseline JPEG (исходные данные в памяти ПК)При компрессии 8-битного изображения с разрешением 7216 х 5408 по алгоритму Baseline JPEG со сжатием примерно в 13 раз с учётом копирований, получена производительность кодирования 3,4 ГБайт в секунду. Декомпрессия этого изображения с учётом копирований, может выполняться с производительностью 3,2 ГБайт в секунду. В настоящее время наш быстрый кодек JPEG может работать с 8-битными изображениями, разрешение которых не превышает 12000 x 12000. Декодирование 8-битных изображений по алгоритму Baseline JPEG (исходные данные в памяти ПК)Мы получили предварительные результаты для декодирования 8-битных изображений с разрешением более 4 мегапекселов. Производительность декомпрессии равна 3,2 ГБайт в секунду с учётом загрузки и выгрузки кадров в видеокарту (исходное изображение было сжато в 13 раз). ВыводыСравнений с аналогичными программами на CPU мы не проводим, поскольку разница более чем очевидна. Насколько нам известно, лучшие коммерческие решения с похожим функционалом могуть сжать не более пятисот мегабайт в секунду при аналогичных условиях. Производительность наших систем на GPGPU даже выше по сравнению с аппаратными решениями на базе FPGA. Подробнее эта тема освещена с описании реализации алгоритма DCT, а также кодера и декодера JPEG (для гистограмм мы не нашли данных для сравнения). |
|
|
НПО Астек - официальный дилер "Фаствидео"
Москва, 129344, ул. Искры 17А, корп. 3, тел: +7 (495)-542-04-49 |
||