Сколько времени занимает вычисление одного кадра (распараллеленного на CPU и GPU) при применении размытия окна? - PullRequest
1 голос
/ 06 июня 2019

Мне задают вопрос, сколько времени занимает вычисление кадра (с помощью фильтра размытия кадра) на CPU (распараллеленный код) и на GPU с использованием opencl.Конечно, это зависит от аппаратного обеспечения, но, наверное, должно быть эмпирическое правило.

Я читал о том, как рассчитывается кадр при использовании фильтра размытия в рамке.Насколько я понял, каждый новый пиксель является результатом вычисления среднего значения для его 8 соседей.Но я до сих пор не понимаю, сколько времени может занять вычисление одного кадра.

1 Ответ

0 голосов
/ 21 июня 2019

Многое зависит от размера кадра. Рамка размытия представляет собой параллельную операцию, вычисление может быть сделано для каждого пикселя независимо от всех остальных пикселей. Кроме того, алгоритм находится в пределе памяти, что означает, что узким местом является не вычислительная мощность, а пропускная способность памяти. В общем, видеопамять (50-1000 ГБ / с) намного быстрее системной памяти (5-80 ГБ / с). Если кадр уже находится в видеопамяти (или системной памяти соответственно) заранее, вы увидите ускорение порядка 10x-100x для кадров размером до 1920x1080 или больше. Тем не менее, для небольших кадров передача PCIe разрушит ускорение из-за задержки (это займет не менее 10 мкс). Так что я бы предположил, что для 1920x1080 пикселей время ЦП будет порядка 1/10 с, а время GPU - 1/500.

...