Найти тему
Цифровой мир

Чем сопроцессор отличается от ускорителя и почему оба до сих пор существуют?

После того, как мы познакомили вас с тем, что такое акселераторы и почему они так важны в современном мире, пришло время провести небольшое сравнение. Сегодня мы хотим развеять любые сомнения, которые могут возникнуть у вас после знакомства с термином ускоритель и сопроцессор. Эти системы кажутся очень похожими, но на практике их работа существенно отличается. Так в чем же разница между сопроцессором и ускорителем, хотя оба блока являются «специализированными вспомогательными схемами»?

Логические схемы теперь выходят на совершенно новый уровень сложности, поскольку ускорители и сопроцессоры, которые когда-то упускались из виду в маркетинговых объявлениях, теперь являются тем, чем компании хвастаются при каждом удобном случае. Впрочем, в этом нет ничего странного, ведь зачастую они отвечают, например, за воспроизведение звука или видео с использованием новейшего кодека, занимаются вычислениями с участием искусственного интеллекта или улучшают качество отрендеренной графики. Так они становятся чем-то не только важным, но и частью маркетингового «козыря в рукаве», поэтому стоит знать, что именно они из себя представляют.

-2

Благодаря этой статье вы узнаете, среди прочего почему тензорные ядра в видеокартах GeForce RTX не такие, как специальный NVIDIA Deep Learning Accelerator, присутствующий, например, в графическом процессоре Volta. Мы уже упоминали об этом в предыдущем посте об ускорителях, и это сам по себе отличный пример, который подчеркивает причину, по которой создаются ускорители и сопроцессоры.

NVIDIA разработала эти специальные блоки для умножения матриц. вкл. чтобы видеокарты GeForce RTX могли использовать искусственный интеллект в суперсэмплинге, то есть масштабировании разрешения в реальном времени (технология DLSS) для повышения плавности игры. Так что они возникают из потребности и принуждения , но сопроцессоры и ускорители также могут возникать из желания снизить потребление энергии или повысить общую эффективность .

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

-3

Их назначение, продвижение, физическое место в ядре и структура определяются именно на уровне проектирования нового центрального, графического или SoC (System-on-Chip) процессора. Однако я не буду вдаваться в эти подробности, потому что вы найдете их в предыдущем посте. Самое главное — знать, что и сопроцессор, и ускоритель несут ответственность за снятие с плеч основного процессора некоторой ответственности в соответствии с поставленными перед ним задачами. Однако они несут ответственность за выполнение не произвольных расчетов, а конкретных и заранее определенных, поскольку их физическая структура и инструкции были разработаны именно для них.

В чем разница между сопроцессором и ускорителем?

Пока что в тексте часто используется порядок «сопроцессор и/или ускоритель», что может подсказывать, что между ними можно поставить знак равенства. Вот и пришло время перейти к тому, что именно они из себя представляют и какие различия и сходства между ними можно выделить, хотя уже само название первых наверняка уже подсказало вам ответ.

Проще всего это объяснить тем, что сопроцессор вступает во взаимодействие с главным процессором. Он не может работать без него и самостоятельно, потому что он пристрастился к нему и работает синхронно с ним. Не имеет среди прочего возможность извлечения данных из памяти, поэтому перед началом работы над заданной задачей он должен получить как инструкции, так и данные для обработки от своего «руководителя» (CPU, GPU, SoC). Поэтому его задача состоит в том, чтобы как можно быстрее решить заданную вычислительную задачу и вернуть результат «руководителю». Это позволяет основному процессору сосредоточиться на своей собственной, обычно более важной работе, но когда придет время получать результаты от сопроцессоров, скорее всего, ему придется их дождаться.

-4

Именно поэтому FPU был отделен от процессора, т.е. блоков с плавающей запятой, которые со временем получили «свой дом» в виде полностью независимых графических процессоров, являющихся центральными ускорителями для этих центральных. Точно… ускорители.

Кратко и упрощенно? Акселераторы — это сопроцессоры. Не волнуйтесь, пока мы вам не лгали. Ставить между ними знак равенства можно только тогда, когда кому-то очень-очень не хочется вникать, а вникать есть во что. Ускоритель (о нем подробнее здесь) отличается от сопроцессора в первую очередь гораздо большей степенью самостоятельности и большей ответственностью за процессы, т. к. на них перенаправляются не их части, а все целиком (см. — видеокарта и видеосигнал). Так что они только получают «запрос» от переопределяющего процессора, но работают с ним асинхронно, потому что он остается в стороне от их работы, требуя только подтверждения задачи или конечного результата.

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

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

-5

Практический пример? Тензорные ядра присутствуют в графических процессорах NVIDIA и блоках NVDLA, которые можно считать двойными вычислительными блоками, поскольку они служат одной цели — дополняются теневыми блоками. Проблема в том, что ядра Tensor являются в них лишь сопроцессорами, разделяя с ними регистры и блок управления, а NVDLA выполняет свои обязанности совершенно самостоятельно. Отсюда и присутствие обоих в графическом процессоре Volta, где NVIDIA, вероятно, проверяла до эпохи GeForce RTX, что работает лучше