> > > > GTC 2012: что скрывается за Hyper-Q и Dynamic Parallelism?

GTC 2012: что скрывается за Hyper-Q и Dynamic Parallelism?

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

gtc2012-neuНа конференции GTC 2012 NVIDIA объявила GK110, вторую итерацию нового поколения "Kepler", которая должна появиться уже к концу 2012 года с первым вычислительным ускорителем Tesla K20 для профессиональной сферы. В кластерах SMX Nvidia значительно увеличила количество вычислительных блоков по сравнению с другой логикой. Всё это позволило по-другому реализовать поддержку вычислительных блоков - теперь уже не требуются увеличенные частоты потоковых процессоров для высокой производительности. Кроме улучшений в кластерах SMX, NVIDIA также упомянула две новые технологии GK110, которые в GK104 зарезервированы и не используются. Но что скрывается за Hyper-Q и Dynamic Parallelism?

Hyper-Q:

В случае архитектуры "Fermi" GPU могли работать только с одной рабочей очередью команд и данных, но в случае "Kepler" ситуация уже отличается.

gtc2012-keynote-04

Одновременно с GPU "Kepler" могут работать до 32 физических ядер CPU. Конечно, данное ограничение не присутствует на программном уровне в интерфейсах DirectX 11, и несколько потоков могут выполняться одновременно, но передача данных и команд на GPU всё равно выполнялась последовательно. Благодаря поддержке Hyper-Q в будущем можно будет передавать данные параллельно.

gtc2012-keynote-05

Без поддержки Hyper-Q данные и команды передаются последовательно, загрузка GPU в данном случае не является оптимальной.

gtc2012-keynote-07

С помощью Hyper-Q данные и команды 32 физических ядер передаются одновременно. Это приводит не только к лучшему использованию GPU, но и к тому, что выполненные вычисления могут обрабатываться быстрее.

Кроме того, теперь множество GPU в системе могут напрямую связываться друг с другом. Технология "GPU Direct" как раз позволяет GPU "Kepler" связываться друг с другом даже по сети - обращение к CPU и памяти теперь уже не требуется.

Dynamic Parallelism:

Команды и данные, которые поставляются на GPU, могут быть взаимозависимыми (например, если расчеты зависят от результатов других вычислений), таким образом, части разных потоков могут блокироваться от выполнения на GPU некоторый промежуток времени. NVIDIA постаралась внести и улучшения обработки подобных ситуаций в интерфейс CUDA.

gtc2012-keynote-08

Технология Dynamic Parallelism на GPU может решать подобные проблемы зависимости. Впрочем, от программистов тоже требуются усилия, поскольку им следует учитывать неравномерности обработки GPU и запросы из памяти. Если созданные потоки превысят возможности доступной памяти GPU, то будет проводиться обращение через шину памяти PCI Express interface, что может вновь замедлить весь процесс.

gtc2012-keynote-09

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

Конечно, все упомянутые особенности Dynamic Hyper-Q и Parallelism актуальны только для вычислений на GPU. Геймерам данные технологии ничем не помогут, поэтому GK110 не принесёт ничего нового. С другой стороны, будет интересно посмотреть, в какой области вычислений NVIDIA сможет получить максимальную отдачу от новых технологий.