На прошедшей конференции GPU Technology Conference NVIDIA уже представила многие подробности архитектуры Pascal и первого чипа GP100 GPU, сегодня компания опубликовала документацию со всеми подробностями – вы можете скачать ее с сайта NVIDIA самостоятельно. Большая часть спецификаций уже известна, но некоторые появились впервые, так что смысл пролистать документацию есть. Для понимания темы мы рекомендуем прочитать нашу статью об архитектуре Pascal.
Несколько недель назад NVIDIA удивила многих. NVIDIA использует мощности TSMC и 16-нм техпроцесс. Площадь чипа составляет 610 мм². NVIDIA для GPU указывает 15,3 млрд. транзисторов, то есть мы получили новый рекорд производства полупроводников. Конечно, тот же чип Intel Xeon Phi Knights Landing чуть крупнее, с площадью 700 мм², но он содержит всего 8 млрд. транзисторов, а большая площадь наверняка связана с топологией чипа и крупными кэшами. Для производства подожки NVIDIA опирается на партнера TSMC (TSMC CoWoS). На подложку кроме GPU устанавливается и память HBM2. Мы уже анализировали возможные шаги NVIDIA в данном направлении, благодаря дополнительным накладкам вполне возможно увидеть память HBM2 удвоенной емкости.
Архитектура Pascal
Центральным компонентом архитектуры по-прежнему являются потоковые мультипроцессоры Streaming Multiprocessors (SM), но NVIDIA вновь существенно их изменила, чтобы обеспечить более высокую эффективность. Графический процессор состоит из кластеров GPC (Graphics Processing Cluster), потоковых мультипроцессоров SM, потоковых кластеров (TPC) и контроллеров памяти.
У GP100 мы получаем шесть GPC, десять SM, каждый содержит по 64 потоковых процессора. Два SMS группируются в один потоковый кластер TPC. Конечно, не обошлось без движков PolyMorph Engine 2.0. В результате число потоковых процессоров составляет 3.840 (6x10x64). Но это касается только полной версии GP100, у Tesla P100 используются только 56 SM, что приводит к 3.584 потоковым процессорам. Вокруг GPC организованы восемь контроллеров памяти с 512-битным интерфейсом. В результате GPU GP100 получает 4.096-битную шину с памятью HBM2. Кроме 64 потоковых процессоров в SM присутствует четыре текстурных блока, что дает 244 текстурных блока в сумме.
Технические спецификации GP100 GPU в сравнении | |||
---|---|---|---|
GPU | GP100 | GM200 | GK110 |
Видеокарта | Tesla P100 | Tesla M40 | Tesla K40 |
Техпроцесс | 16 нм FinFET | 28 нм | 28 нм |
Число транзисторов | 15,3 млрд. | 8 млрд. | 7,1 млрд. |
Площадь чипа | 610 мм² | 601 мм² | 551 мм² |
SM | 56 (60 в полном варианте) | 24 | 15 |
TPC | 28 (30 в полном варианте) | 24 | 15 |
Вычислительные блоки FP32 | 3.584 (3.840 в полном варианте) | 3.072 | 2.880 |
Вычислительные блоки FP64 | 1.792 (1.920 в полном варианте) | 96 | 960 |
Вычислительные блоки FP32/ SM | 64 | 128 | 192 |
Вычислительные блоки FP64/ SM | 32 | 4 | 64 |
Частота GPU (базовая) | 1.328 МГц | 948 МГц | 745 МГц |
Частота GPU (Boost) | 1.480 МГц | 1.114 МГц | 875 МГц |
Производительность FP32 | 10.600 GFLOPS | 6.840 GFLOPS | 5.040 GFLOPS |
Производительность FP64 | 5.300 GFLOPS | 210 GFLOPS | 1.680 GFLOPS |
Тип памяти | HBM2 | GDDR5 | GDDR5 |
Объем памяти | 16 GB | 24 GB | 12 GB |
Интерфейс памяти | 4.096 бит | 384 бит | 384 бит |
Кэш L2 | 4.096 kB | 3.072 kB | 1.536 kB |
Общий объем регистров | 14.336 kB | 6.144 kB | 3.840 kB |
Объем регистров/ SM | 256 kB | 256 kB | 256 kB |
Текстурные блоки | 224 | 192 | 240 |
TDP | 300 Вт | 250 Вт | 235 Вт |
С архитектурой Pascal NVIDIA вновь акцентировала производительность FP64. NVIDIA изменила соотношение вычислительных блоков FP64 и FP32. У архитектуры Kepler оно составляло 1/3, у предыдущей архитектуры Maxwell 1/32, теперь же NVIDIA обеспечивает соотношение 1/2 в архитектуре Pascal. Здесь NVIDIA, например, вышла на один уровень с той же архитектурой AMD Hawaii.
Для сетей глубокого обучения (Deep Learning) важны вычисления с половинной точностью или FP16, и здесь NVIDIA также обеспечивает соотношение 1/2 к вычислениям FP32. NVIDIA изменила обработку вычислений FP16 таким образом, чтобы задействовать выделенные ядра FP32. Некоторые вычисления FP16 можно объединять, что позволяет выполнять их на ядрах FP32. Однако для объединения вычислений FP16 они должны выполнять одинаковые операции. Например, можно объединять только две операции сложения или умножения. Операции FP16 важны для игр и расчетов текстур, для анализа данных фото и видео.
Изменения коснулись не только организации потоковых процессоров внутри SM, TPC и GPC, но и размера кэшей и регистров. GPU GP100 оснащен 4.096 кбайт кэша L2, ранее объем составлял 3.072 или 1.536 кбайт. Для вычислительной производительности важен размер регистров, в сумме он достигает 14.336 кбайт. Кроме того, NVIDIA может обеспечить на SM регистровый файл до 256 кбайт.
Не менее впечатляют тактовые частоты GPU GP100 у Tesla P100. NVIDIA выставила базовую частоту 1.328 МГц, в режиме Boost она увеличивается, как минимум, до 1.480 МГц. Подобные тактовые частоты стали возможными благодаря переходу на меньший техпроцесс. В любом случае, для карты вычислительных ускорений Tesla частота GPU 1.480 МГц впечатляет.
Позвольте более подробно рассмотреть структуру потоковых мультипроцессоров. Мы уже отметили 64 потоковых процессора на SM. Они относятся к категории FP32. У Maxwell и Kepler использовалось 128 или 192 потоковых процессора FP32 на SM, что указывает на явную ориентацию на одинарную точность. Каждый SM у GPU GP100 разделен на два блока. Каждый блок опирается на 32 потоковых процессора, буфер инструкций, Warp Scheduler и два диспетчера. Получается, что SM в архитектуре Pascal содержат в два раза меньше потоковых процессоров по сравнению с Maxwell, но размер регистров, warp и thread block не изменился.
Также NVIDIA оптимизировала пути прохождения данных. В результате NVIDIA смогла уменьшить площадь кристалла и энергопотребление. Все это привело к повышению эффективности. Новая архитектура планировщика позволяет лучше загружать конвейеры, любой Warp Scheduler может обрабатывать две инструкции Warp на такт.
Более сложная структура упаковки GPU
На примере AMD мы рассмотрели все сложности, которые возникают при установке GPU и памяти на единую подложку. GPU, память и подложка формируют единую упаковку BGA 55 x 55 мм.
На изображении выше показана схема упаковки BGA с разными слоями. Пассивная подложка вверху обеспечивает прямое соединение между GPU и чипами HBM2. Чипы памяти HBM2 имеют емкость 4 Гбайт, но Samsung уже объявила о возможности производить HBM2 с емкостью 8 Гбайт на чип. NVIDIA добавляет к чипам HBM2 накладку, которая компенсирует разницу по высоте между GPU и чипами памяти.
Пропускная способность памяти Tesla P100 с GPU GP100 составляет 720 Гбайт/с, но NVIDIA также оптимизировала работу GPU с памятью HBM2. Здесь подразумеваются атомные операции. То есть операции записи и чтения в память. NVIDIA оптимизировала работу с атомными операциями в архитектуре Kepler, с Maxwell NVIDIA добавила «родную» поддержку Shared Memory Atomic Operations для 32-битных целых чисел и для 32- и 64-битных операций Compare-and-Swap (CAS). С GP100 NVIDIA теперь добавила атомное сложение FP64. В предыдущих архитектурах данную операцию приходилось делать через цикл Compare-and-Swap, что выполнялось медленнее «родной» поддержки.
В своей документации NVIDIA описывает и многие другие области, которые мы не раскрыли в рамках статьи. Мы рекомендуем ознакомиться с детальным обзором архитектуры Pascal, где мы затронули NVLink, Unified Memory и некоторые другие моменты.