Страница 2: Архитектура Maxwell

С графическим процессором GM104 в видеокартах GeForce GTX 750 и GTX 750 Ti NVIDIA уже наглядно продемонстрировала, что даже на нынешнем 28-нм техпроцессе можно значительно улучшить эффективность. И появление более производительных видеокарт было лишь вопросом времени.

В упомянутом выше первом поколении архитектуры Maxwell NVIDIA смогла улучшить соотношение производительности на ватт примерно в два раза. Также можно отметить, что Maxwell представляет собой уже 10 поколение архитектуры GPU от NVIDIA – конечно, с учётом приобретения 3dfx и архитектур, разработанных этой компанией. Где-то в 2011 году NVIDIA объявила о начале работ над Maxwell, причём одновременно стартовала и разработка Tegra K1, первой SoC от NVIDIA с полностью настольной архитектурой графического блока. И прогресс по эффективности, который удалось достичь с Tegra K1, был перенесён и на Maxwell.

Архитектура Maxwell
Архитектура Maxwell

На диаграмме GM204 с архитектурой Maxwell можно видеть потоковые процессоры и дополнительные модули, в том числе интерфейс PCI Express 3.0, контроллер памяти, кэш L2, конвейеры растровых операций и движок GigaThread, а также организацию чипа в кластеры GPC. В каждом кластере GPC используются четыре мультипроцессора SMM (Maxwell Streaming Multiprocessors). На кристалле GM204 используются четыре GPC, по четыре SMM каждый, что даёт 16 SMM. Каждый из мультипроцессоров SMM, в свою очередь, разделяется на четыре блока по 32 потоковых процессора CUDA. В результате 4 GPC x 4 SMM x 4 блока SMM x 32 АЛУ и дают 2.048 потоковых процессоров. Каждый мультипроцессор SMM обладает восемью текстурными блоками. В общей сложности у GPU GM204 используется 128 таких блоков. Добавим 64 конвейера растровых операций и четыре 64-битных контроллера памяти.

На диаграмме выше показана структура GPU GM204 для GeForce GTX 980, у GeForce GTX 970 мы получаем несколько иную структуру. NVIDIA отключила три мультипроцессора SMM, что даёт всего 1.664 потоковых процессора 13 SMM x 4 блока SMM x 32 АЛУ = 1.664 потоковых процессоров).

Архитектура Maxwell
Архитектура Maxwell

Более высокую эффективность Maxwell NVIDIA смогла получить благодаря нескольким решениям. Кэш L2 в архитектуре "Maxwell" был увеличен до 2.048 кбайт по сравнению с 256 кбайт в архитектуре "Kepler". Пропускная способность кэша осталась на уровне 512 байт на такт. По сравнению с архитектурой Maxwell первого поколения была несколько увеличена общая память для каждого мультипроцессора SMM. Теперь она составляет уже 96 кбайт, а не 64 кбайт. Можно отметить и новый движок Polymorph Engine версии 3.0. Движок PolyMorph 3.0 отвечает за запросы текстур, тесселяцию, настройку атрибутов, трансформацию поля зрения и потоковый вывод. Результаты вычислений кластера SMM и движка PolyMorph 3.0 затем передаются на движок растеризации. На втором этапе тесселятор начинает расчеты позиций поверхностей, в зависимости от расстояния выбирается нужный уровень детализации. Скорректированные значения отсылаются на кластер SMM, где с ними работают доменные и геометрические шейдеры. Доменный шейдер рассчитывает финальную позицию каждого треугольника, учитывая данные Hull-шейдеров и тесселяторов. На данном этапе накладываются карты смещения. Геометрический шейдер затем сравнивает рассчитанные данные с действительно видимыми объектами и отсылает результаты обратно на движок тесселяции для окончательного расчета. На последнем этапе движок PolyMorph 3.0 выполняет трансформацию поля зрения и коррекцию перспективы. Наконец, рассчитанные данные выводятся через потоковый вывод, память освобождается для дальнейших расчетов. В данном процессе задействуются многочисленные функции рендеринга, о которых мы поговорим подробнее на страницах нашего обзора.

3D-рендеринг чипа Maxwell
3D-рендеринг чипа Maxwell

Перейдём к отдельным блокам мультипроцессора SMM. Каждый блок из 32 потоковых процессоров оснащен буфером инструкций и warp-планировщиком. Два блока диспетчеризации работают с 16.384 32-битными регистрами каждый. Если посмотреть на архитектуру "Kepler", то 192 потоковых процессора работали с четырьмя warp-планировщиками и восемью блоками диспетчеризации, всего было доступно 65.536 32-битных регистров. Теоретически на каждый потоковый процессор в архитектуре "Maxwell" приходятся 512 регистров, у "Kepler" их количество составляло около 341. Эта мера тоже способствовала приросту производительности потоковых процессоров до 35%. Также несколько изменилось соотношение между потоковыми процессорами и так называемыми специальными функциональными блоками (Special Function Units, SFU). В архитектуре "Kepler" соотношение составляло 6/1, в " Maxwell" оно снизилось до 4/1. То же самое касается и соотношения потоковых процессоров и блоков чтения/записи (Load/Store, LD/ST). Специальные блоки вычислений с двойной точностью на диаграмме не показаны, они, скорее всего, будут представлены в GPU GM210 (по аналогии между GK110 и GK104). Но, если верить NVIDIA, соотношение одиночной и двойной точности составляет 1/24, как и в чипах "Kepler" первого поколения (GK104).