На блоках двойной точности (DPU) на Kepler K20Xm

Согласно документу по архитектуре Kepler, SMX имеет 192 Ядра CUDA и 64 Единицы двойной точности (DPU). Для K20Xm есть 14 SMX на общую сумму в 2688 ядра, что означает, что учитываются только ядра CUDA. Для чего же в действительности используется DPU и как они связаны с ядрами?

Мои мысли:

a) Ядра CUDA не могут выполнять операции двойной точности, и только DPU могут. Поэтому ядра CUDA свободны для других вещей, пока DPU заняты.

б) Для ядер CUDA так или иначе необходим модуль двойной точности для выполнения операций двойной точности, поэтому только 128 из 192 Ядра CUDA доступны для других вещей.

Ура Анди

1 ответ

Решение

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

Таким образом, для арифметики одинарной точности пропускная способность может быть вычислена на основе "ядер cuda" или единиц одинарной точности. Для арифметики двойной точности пропускная способность должна быть рассчитана на основе единиц двойной точности.

В Kepler K20 SMX соотношение единиц с двойной точностью и единиц с одинарной точностью составляет 1:3. Поэтому пропускная способность для каждого типа арифметики соответствует одному и тому же соотношению. Под "арифметикой" я подразумеваю здесь умножение с плавающей запятой или сложение с плавающей запятой.

Другие вопросы по тегам