Достаточно ли использовать флопы для измерения производительности мобильных графических процессоров? - PullRequest
0 голосов
/ 05 сентября 2018

Здесь, блог от руки сказал, что используйте флопы для измерения производительности. Но достаточно ли этого?

Например, в игровом движке нужно выбирать много текстур, это может снизить частоту кадров. Могут ли флопы рассказать о способах выборки текстур?

1 Ответ

0 голосов
/ 06 сентября 2018

Это действительно хороший вопрос, а также сложный. Это относится ко многим темам в современной компьютерной архитектуре. Поэтому в кратком ответе сложно все охватить. Но я сделаю все возможное, чтобы ответить на вопросы и, надеюсь, указать ОП некоторые направления, которым необходимо следовать.

На самом деле, как для CPU, так и для GPU или любых вычислительных устройств, GFLOPS является только частью уравнения. GFLOPS измеряет чисто вычислительные возможности устройства с точки зрения производительности ALU (арифметической логики), которая говорит разработчикам, сколько вычислений можно выполнить за определенное время. Однако в современной компьютерной архитектуре производительность памяти обычно является реальным узким местом системы. Представьте себе, что типичный рабочий процесс вычислительной задачи выглядит следующим образом (очень упрощенная версия):

  1. Считывание входных данных из памяти
  2. Выполнить некоторые вычисления и сгенерировать выходное значение
  3. Сохранить выходное значение обратно в память

GFLOPS только может измерить потенциал вычислительного устройства для завершения шага 2 (даже для шага 2 у нас все еще есть много других факторов. Например, современные компьютеры имеют несколько уровней кэша для улучшения загрузки и хранения данных производительность, следовательно, данные на шаге 2 очень возможно хранить в некотором уровне кэш-памяти).

Для достижения хорошей общей производительности нам необходим хороший баланс между системой памяти и вычислительными ALU. Таким образом, существует множество теорий, лежащих в основе высокопроизводительных вычислений, которые говорят людям, как добиться максимальной производительности или как спроектировать компьютерную систему для достижения максимальной производительности. Одной из теорий является модель Roofline: https://people.eecs.berkeley.edu/~kubitron/cs252/handouts/papers/RooflineVyNoYellow.pdf

Чтобы ответить на ваш вопрос, связанный с графической системой, выборка текстур выполняется в аппаратной системе памяти текстур внутри ядра графического процессора, которая включает в себя память текстур, кэш текстур, блоки выборки текстур и так далее. Поэтому выборка текстуры в основном зависит от текстурных единиц.

Но опять же, современная компьютерная система - сложная система. Множество факторов, включая ALU, систему памяти, кеш, драйвер, шейдерный компилятор и т. Д., Существенно влияют на общую производительность. Чтобы добиться лучшей производительности, нам необходимо учитывать все эти факторы.

...