В чём разница?
Ищем и находим разницу во всём

GPU против CPU: в чем разница?

Схематическое отличие CPU и GPU.
Схематическое отличие CPU и GPU.

Современные смартфоны — это, по сути, миниатюрные компьютеры с различными компонентами обработки. Вы, вероятно, уже знаете о центральном процессоре (CPU) из компьютеров, но между графическим процессором (GPU), процессором сигналов изображения (ISP) и ускорителями машинного обучения также есть много узкоспециализированных компонентов. Все это объединяется в систему на кристалле (SoC). Но что отличает GPU от CPU и зачем он нужен для работы с графикой и другими специализированными задачами? Читайте дальше, чтобы все это узнать.

Как работает CPU.

Проще говоря, CPU является мозгом всех операций и отвечает за работу операционной системы и приложений на любом компьютере. Он отлично справляется с выполнением инструкций и делает это последовательно — одну за другой. Работа CPU относительно проста: получить следующую инструкцию, декодировать то, что нужно сделать, и, наконец, выполнить ее.

Центральный процессор (CPU) в материнской плате.
Центральный процессор (CPU) в материнской плате.

Что такое инструкция? Это зависит от задачи, например инструкции могут быть арифметические, такие как сложение и вычитание, логические операции, такие как И и ИЛИ, и многие другие. Они обрабатываются арифметико-логическим блоком CPU (ALU). Процессоры имеют большой набор инструкций, что позволяет им выполнять широкий спектр задач.

Современные процессоры также имеют более одного ядра, что означает, что они могут выполнять несколько инструкций одновременно. Но есть практическое ограничение на количество ядер, поскольку каждое из них должно работать очень быстро. Измерение производительности CPU осуществляется с помощью инструкций за цикл (IPC). При этом количество циклов в секунду зависит от тактовой частоты процессора. Она может достигать 6 ГГц для настольных процессоров или 3,2 ГГц для мобильных чипов, таких как Snapdragon 8 Gen 2.

Высокая тактовая частота и IPC являются наиболее важными аспектами любого CPU, причем наибольшая область физического кристалла CPU, выделена именно для быстрой кэш-памяти. Это гарантирует, что CPU не будет тратить драгоценные циклы на получение данных или инструкций из ОЗУ.

Как работает GPU.

Специализированный компонент обработки, GPU выполняет геометрические вычисления на основе данных, которые он получает от CPU. В прошлом большинство графических процессоров разрабатывались на основе так называемого графического конвейера, но новые архитектуры гораздо более гибки в обработке неграфических рабочих нагрузок.

Графический процессор (GPU) в видеокарте.
Графический процессор (GPU) в видеокарте.

В отличие от CPU, максимально быстрое выполнение очереди инструкций не обязательно является главным приоритетом. Вместо этого графическому процессору нужна максимальная пропускная способность — или способность обрабатывать несколько инструкций одновременно. Для этой цели у графических процессоров во много раз больше ядер, чем у центрального процессора. Однако каждый из них работает с меньшей тактовой частотой.

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

Конвейер начинается с обработки вершин, которая, по сути, включает в себя построение каждой отдельной вершины (точки в геометрическом выражении) на 2D-экране. Затем эти точки собираются в треугольники или «примитивы» на этапе, известном как растеризация. В компьютерной графике каждый трехмерный объект обычно состоит из треугольников (также называемых полигонами). Имея в руках базовую форму, можно определить цвет и другие атрибуты каждого полигона в зависимости от освещения сцены и материала объекта. Этот этап называется затенением.

Графический процессор также может добавлять текстуры на поверхность объектов для большей реалистичности. Например, в видеоиграх художники часто используют текстуры для моделей персонажей, неба и других элементов, с которыми мы встречаемся в реальном мире. Эти текстуры начинаются как 2D-изображения, которые накладываются на поверхность модели. Вы можете увидеть общий обзор этого процесса на следующей блок-схеме:

В общем, у графического процессора есть определенная последовательность задач, которые он должен выполнить, чтобы отрисовать изображение. И это только то, что нужно для рисования одного неподвижного изображения, что редко требуется при использовании компьютера или смартфона. Одна только операционная система Android имеет множество анимаций. Это означает, что GPU должен генерировать новые обновления с высоким разрешением каждые 16 миллисекунд (для анимации, работающей со скоростью 60 кадров в секунду).

Процесс обработки текстур для моделей.
Процесс обработки текстур для моделей.

К счастью, GPU может разбить эту единственную сложную задачу на более мелкие фрагменты и обрабатывать их одновременно. И вместо того, чтобы полагаться на несколько вычислительных ядер, как в CPU, он использует сотни или даже тысячи крошечных ядер (называемых исполнительными блоками). Параллельная обработка важна, поскольку GPU должен обеспечивать постоянный поток данных и вывод изображения на экран.

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

GPU против CPU: в чем разница?

Теперь, когда мы знаем роли центрального процессора и графического процессора по отдельности, как они работают вместе в практической рабочей нагрузке, например, при запуске видеоигры? Проще говоря, центральный процессор обрабатывает физические расчеты, игровую логику, симуляции, такие как поведение врагов и действия игрока. Затем он отправляет данные о положении и геометрии на графический процессор, который визуализирует 3D-формы и освещение на дисплее через графический конвейер.

Итак, подводя итог, хотя CPU и GPU быстро выполняют сложные вычисления, не так много совпадений с точки зрения того, что каждый из них может делать эффективно. Вы можете заставить центральный процессор отображать видео или даже играть в игры, но, скорее всего, это будет очень медленно. Более того, обратное просто невозможно — вы не можете использовать GPU вместо CPU, так как он не может обрабатывать инструкции общего назначения.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *