Страница 2: Turing SM - дальнейшее развитие архитектуры Volta

С потоковыми процессорами архитектуры Turing продолжается дальнейшее развитие архитектуры Volta. Напомним, что архитектура Volta была явно ориентирована на профессиональный рынок благодаря вычислительным блокам FP64. Также в Volta появились и ядра Tensor, но мы не предполагали, что они будут играть какую-либо роль на игровых видеокартах GeForce. Но NVIDIA внесла некоторые изменения, о которых мы поговорим подробнее. Мы были правы в том, что NVIDIA выбрала развитие GPU по двум направлениям: архитектура Volta нацелена на ускорители Tesla, а Turing - на видеокарты Quadro и GeForce.

Но что нового в Turing SM?

В конвейере теперь поддерживается одновременное выполнение целочисленных вычислений (INT) и расчетов с плавающей запятой (FP). Свой вклад вносят ядра Tensor и RT. Также NVIDIA изменила иерархию кэша, но архитектура Turing намного ближе к Volta по сравнению с Pascal.

В случае всех предыдущих архитектур NVIDIA одновременное выполнение целочисленных вычислений и расчетов с плавающей запятой не поддерживалось. NVIDIA проанализировала данные вычисления в конвейере рендеринга в десятках игр, обнаружив, что на каждые 100 расчетов FP выполняется примерно треть вычислений INT. Впрочем, значение среднее, на практике оно меняется от 20% до 50%. Конечно, если вычисления FP и INT будут выполняться одновременно, то конвейеру придется иногда "подтормаживать" в случае взаимных связей.

В любом случае, параллельная обработка FP и INT ускоряет рендеринг, поэтому NVIDIA как раз и добавила ее с архитектурой Turing. У Turing SM имеются 64 блока FP32 и 64 блока INT32 - не совсем типичное соотношение для конвейера рендеринга.

В иерархии кэша произошли изменения, NVIDIA в архитектуре Turing увеличила число блоков Load/Store. В архитектуре Volta NVIDIA использовала 32 блока Load/Store на SM. В случае архитектуры Pascal тоже использовалось 32 блока Load/Store на SM. Сейчас же в архитектуре Turing каждый потоковый мультипроцессор опирается на 64 блока Load/Store, которые выполняют адресацию памяти, кэш обрабатывает 16 потоков за такт. Но NVIDIA также внесла изменения в кэш L1 и общую память.

Кэш L2 был увеличен до 6 Мбайт еще в архитектуре Volta, такой же объем перешел и в Turing. Некоторые изменения с кэшем L1 знакомы по архитектуре Volta. В случае Pascal кэши L1 и общая память были разделены, теперь NVIDIA их объединила. Что наблюдалось и в Volta. Кэш L1 и общая память в случае Volta имели размер 128 кбайт. А объем общей памяти можно было изменять до 96 кбайт. С архитектурой Turing NVIDIA уменьшила объем до 96 кбайт в сумме, теперь он может разделяться на 64 кбайт (кэш L1) + 32 кбайт (общая память) или 32 кбайт (кэш L1) + 64 кбайт (общая память).

Данный шаг должен повысить производительность шейдинга до 50% на потоковый процессор. Посмотрим, какие результаты мы получим в тестах. Мы планируем провести специальные измерения.