> > > > GDC: NVIDIA подчеркивает преимущества Async Compute

GDC: NVIDIA подчеркивает преимущества Async Compute

Опубликовано:

nvidia 2013Наличие нескольких тысяч потоковых процессоров в GPU позволяет справляться с задачами, предусматривающими параллельную обработку, такими как рендеринг 3D-сцены. С другой стороны, видеокарта может выполнять еще и вычислительные задачи, например расчет физики, сняв соответствующие расчеты с процессора. Если рендеринг кадра выполняется за 11 мс (90 fps), то на расчет физики разработчики обычно отводят 2 мс. Поэтому грамотное распределение вычислительных задач по имеющимся ресурсам имеет важное значение. С помощью Async Compute AMD и NVIDIA могут ускорить вычисления физики в два раза.

Подобные расчеты, а именно графические шейдеры и вычислительные инструкции, не могут выполняться на конвейере одновременно. NVIDIA приводит несколько примеров. В частности, со 100% графической нагрузкой и менее чем 50% вычислительной нагрузкой, которая выполняется следом. В результате часть большая ресурсов GPU в некоторые промежутки времени просто простаивает.

Async Compute позволяет выполнять графические и вычислительные задачи одновременно, что снижает общее время расчетов, а также минимизирует простой ресурсов.

Еще интереснее ситуация становится, когда графическая нагрузка состоит из нескольких итераций, каждая последующая из которых уменьшает нагрузку на вычислительные ресурсы. Без Async Compute вычислительная нагрузка будет выполняться после графической, на все вычисления уйдет немало времени, большая часть ресурсов GPU будет бездействовать.

С помощью Async Compute можно снизить простой ресурсов, загружая их почти всегда полностью. И мы вновь получаем снижение общего времени вычислений.

Если учесть задержки в расчетах, то ситуация становится еще более сложной, GPU просто не получает достаточно данных, ему требуется время, чтобы получить данные для дальнейших вычислений. В таком случае, несмотря на кажущуюся 100% загрузку ресурсов, мы получаем задержки между отдельными этапами вычислений.

С помощью Async Compute NVIDIA может бороться с данной проблемой, просто "вытаскивая" простаивающие ресурсы из вычислительных задач и выполняя на них графические вычисления в промежутки простоя. В результате мы получаем уменьшение общего времени вычислений.

Технология Async Compute будет играть все более важную роль в разработке игр. Связано это, главным образом, с тем, что разработчики переносят все больше вычислительных задач на GPU. Поэтому оптимальное распределение задач по вычислительным ресурсам становится все более важным.