Семейство Apple M3 получает преимущества от новых функций графического процессора
Приложения и игры, использующие Metal API, ориентированы на конкретные функции графических процессоров Apple Silicon, которые становятся еще лучше благодаря значительным улучшениям параллельных процессов в M3 и A17 Pro. Вот как это работает.
Apple опубликовала доклад разработчиков об этих новых функциях графического процессора Apple Silicon, в котором подробно описано, что именно происходит для достижения улучшенных результатов. Видео содержит множество технических подробностей, но дает достаточно информации для объяснения в базовых терминах.
Разработчикам, создающим приложения с помощью Metal API, не нужно вносить какие-либо изменения в свои приложения, чтобы увидеть повышение производительности с помощью M3 и A17 Pro. Эти наборы микросхем используют динамическое кэширование, аппаратно-ускоренную трассировку лучей и аппаратно-ускоренное отображение сетки, чтобы сделать графический процессор более производительным, чем когда-либо.
Память динамического шейдерного ядра
Динамическое кэширование стало возможным благодаря шейдерному ядру нового поколения. При использовании новейших ядер графического процессора в A17 Pro и M3 эти шейдеры могут работать параллельно гораздо эффективнее, чем раньше, что значительно повышает производительность вывода.
Пунктирные линии представляют собой потраченную впустую регистровую память.
Обычно графический процессор может выделять регистровую память только на основе процесса с максимальной пропускной способностью в рамках выполняемого действия на время этого действия. Следовательно, если одна часть действия требует значительно больше регистровой памяти, чем остальная, действие будет использовать гораздо больше регистровой памяти для данного процесса.
Динамическое кэширование позволяет графическому процессору выделять ровно столько регистровой памяти, сколько необходимо для каждого выполняемого действия. Ранее недоступная регистровая память освобождается, что позволяет параллельно выполнять гораздо больше задач шейдера.
Гибкая встроенная память
Раньше встроенная память имела фиксированное распределение памяти для регистров, групп потоков и тайловой памяти с буферным кешем. Это означало, что значительная часть памяти оставалась неиспользованной, если действие использовало больше одного типа памяти, чем другого.
Вся встроенная память может использоваться в качестве кэша.
Благодаря гибкой встроенной памяти вся встроенная память представляет собой кэш, который можно использовать для памяти любого типа. Таким образом, действие, которое в значительной степени зависит от памяти группы потоков, может использовать весь диапазон встроенной памяти и даже перегружать действия в основную память.
Шейдерное ядро динамически регулирует занятость встроенной памяти для максимизации производительности. Это означает, что застройщики могут тратить меньше времени на оптимизацию заполняемости.
Высокопроизводительные конвейеры ALU шейдерного ядра
Apple рекомендует разработчикам выполнять математические операции FP16 в своих программах, но высокопроизводительные ALU параллельно выполняют различные комбинации целых чисел, FP32 и FP16. Инструкции выполняются для различных действий, выполняемых параллельно, что означает, что использование ALU улучшается при более высокой загрузке.
Увеличение количества параллельных операций с помощью высокопроизводительных конвейеров ALU
По сути, если разные действия содержат одни и те же инструкции FP32 или FP16, которые будут выполняться в разные моменты времени, выполнения могут перекрываться для повышения параллелизма.
Графические конвейеры с аппаратным ускорением
Трассировка лучей с аппаратным ускорением значительно ускоряет этот процесс, исключая важные вычисления пересечений из функции графического процессора. Поскольку часть вычислений выполняет аппаратное обеспечение, оно позволяет выполнять больше операций параллельно, тем самым ускоряя трассировку лучей с помощью аппаратного компонента.
Аппаратное ускорение заменяет встроенные процессы
Аппаратно-ускоренное затенение сетки использует аналогичный метод. Он берет середину конвейера геометрических вычислений и передает ее выделенному блоку, что позволяет выполнять больше параллельных операций.
Это сложные системы, которые невозможно разбить на несколько абзацев. Мы рекомендуем посмотреть видео, чтобы получить все подробности, имея в виду одну вещь: A17 Pro и M3 ориентированы на параллелизм вычислений для ускорения выполнения задач.