бенчмарки Fastvideo SDKПроизводительность параллельных вычислений GPGPU

Использование видеокарт для организации параллельных вычислений очень перспективно, причём это не описание ближайшего будущего, а суровая реальность. Для реализации возможностей современных видеокарт необходимо соответствующее программное обеспечение и алгоритмы, которые можно распараллелить. Большинство алгоритмов, используемых в программном обеспечении для процессоров Intel/AMD/Cell изначально являются последовательными, поэтому не всегда возможна их переделка для параллельной реализации. Примерами таких последовательных алгоритмов являются арифметическое кодирование, сжатие в JPEG без потерь (JPEG-LS), декодирование видеопотока и др.

Для демонстрации возможностей параллельных вычислений на видеокартах NVIDIA с технологией CUDA мы написали ряд программ, которые раскрывают потенциал этого направления. Эти примеры сделаны нами и не повторяют код из примеров CUDA SDK. Более того, наши результаты заметно лучше, чем можно найти в SDK.

Конфигурация компьютера

  • Для тестирования программного обеспечения использовалась такая конфигурация компьютера: CPU Intel Core i7-5930K (Haswell-E, 6 cores, 3.5–3.7 GHz)
  • Видеокарта для вычислений: GeForce GTX 1080 TI (Pascal)
  • Операционная система Windows-10, 64-bit, CUDA 12.0

Дополнительные условия

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

Цветовая интерполяция (дебайер) по алгоритму Malvar-He-Cutler

Для восстановления цвета после байеровской решётки необходимо выполнить цветовую интерполяцию. Для изображений формата 1920 х 1080 по алгоритму HQLI (набор фильтров для квадрата 5х5), получена скорость вычислений 25 ГБайт в секунду для видеокарты GeForce GTX 1080 TI без учёта копирований.

Сжатие цветных изображений по алгоритму Baseline JPEG

При сжатии 24-битного изображения с разрешением 3840 х 2160 по алгоритму Baseline JPEG примерно в 10 раз (без учёта копирований), была получена производительность кодирования 46 ГБайт в секунду.

Сжатие изображений по алгоритму JPEG2000

Для сжатия в 12 раз 24-битного изображения с разрешением 3840 х 2160 по алгоритму JPEG2000 в режиме пачки, видеокарте требуется 10.3 мс, что соответствует производительности 2.3 ГБайт в секунду. Бенчмарки для кодирования и декодирования JPEG2000 можно посмотреть на этих страницах: JPEG2000 encoder и JPEG2000 decoder

Другие бенчмарки для различных алгоритмов обработки изображений из библиотеки Fastvideo SDK можно посмотреть тут.

Форма для отправки запроса

Эта форма сохраняет имя и адрес электронной почты.