Пронченко NVidia Tesla – кратко

20 Февраль 2014 →

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

CUDA. Это аппаратно-программный комплекс для параллельных вычислений. Он включается в себя как аппаратные средства, так и языки высокого уровня, такие как С, С++, Fortran и т.п.

NVidia Tesla. Графические ускорители Tesla могут использоваться как в персональных компьютерах, так и в составе сложных вычислительных систем, в которых Tesla исполняет роль сопроцессора для параллельных вычислений. Tesla создавались с целью повысить мощность общенаучных вычислений (например, прогнозирование погоды, моделирования физических и финансовых процессов и т.п.), поэтому в отличие от обычных видеоускорителей, у Tesla нет видео выходов.

Архитектура Kepler. Видеоускоритель Tesla состоит из устройства ввода-вывода, а именно интерфейса PCI-E 3.0, графического процессора Kepler GK110 и графической памяти GDDR5 объемом 6Gb.

GPU GK110. Полная реализация графического процессора GK110 включает в себя 15 потоковых мультипроцессоров (SMX), объеденных кэш-памятью второго уровня объемом 1536 КБ для передачи информации между ними, 6 контроллеров памяти, устройство распределения нагрузки (GigaThread Engine) и контроллер для соединения с шиной PCI-E. Стоит отметить, что топовая модель Tesla K20X содержит лишь 14 мультипроцессоров SMX, а модель младше – K20 – лишь 13.

SMX. Каждый потоковый мультипроцессор включает в себя 192 ядра CUDA одинарной точности (Core) (итого, у K20X – 192*14=2688 ядер CUDA, у K20 соответственно 192*13=2496 ядер CUDA), 64 устройства двойной точности (DP Unit), 32 устройства для выполнения специальных функций (SFU) (например, синус, косинус и т.п.), 32 устройства загрузки/хранения (LD/ST), 16 устройств для работы с текстурами (ТЕХ). Помимо этого имеется разделяемая кэш-память первого уровня объемом 64 КБ, причем программист может самостоятельно разделять ее на кэш данных и кэш инструкций, в соотношение 16 КБ и 48 КБ, или же поровну по 32 КБ. Также имеется отдельный кэш только для чтения данных объемом 48 Кб, можно сказать, что это дополнительный кэш данных, цель которого увеличить вероятность кэш попадания. Для временного хранения данных также имеется регистровый файл объемом 65536 слов по 32 бита (4 байта). За распределение вычислений отвечают 4 диспетчера задач, каждый из которых за один такт может отрабатывать 2 инструкции, то есть в итоге каждый потоковых мультипроцессор за один такт может выполнять 8 команд, а все вместе – 120 (в реальности же K20X – 112, K20 – 104, что тоже не мало).

Защита данных. Любая память, будь то кэш первого уровня, кэш только для чтения данных, кэш второго уровня или же DRAM может быть защищена при помощи кода исправления одиночных и обнаружения двойных ошибок (Single‐Error Correct Double‐Error Detect или SECDE), кроме этого кэш только для чтения данных поддерживает проверку данных на четность. Однако в этих режимах пропускная способность DRAM падает приблизительно на 33%.


See also:
Для студента
Похожие записи

Комментарии закрыты.