Почему GPU можно использовать для ускорения вычислений в ИИ или машинном обучении (параллельная вычислительная мощность)

2022年06月21日

Почему GPU

На самом деле, вычисления на GPU по сравнению с CPU не "хорошие", а "быстрые".

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

Происхождение GPU

Полное название GPU - графический процессор, графический процессор, как следует из названия, предназначен для работы с графикой.

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

Поскольку GPU был разработан специально для рендеринга, он может выполнять только те операции, которые связаны с рендерингом.

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

CPU - это процессор общего назначения, но с низкой производительностью в специализированных областях. Инженерия - это компромисс: если одно сильно, то другое слабо. В дальнейшем игры, 3D-дизайн по требованиям к рендерингу становятся все более высокими, производительность GPU все более сильной. Чисто теоретически вычислительная производительность в десятки-сотни раз выше, чем у CPU.

Люди подумали, раз GPU настолько силен, то при использовании GPU для выполнения вычислений не по сравнению с CPU скорость можно значительно повысить? Так появилось понятие GPGPU (general purpose GPU, GPU для вычислений общего назначения). Но, как мы уже говорили, графические процессоры специально разработаны для рендеринга изображений, и они подходят только для этих операций. К счастью, есть некоторые операции, которые очень похожи на те, для которых предназначены GPU, и которые могут быть ускорены с помощью GPU, например, глубокое обучение.

Один из видов успешных методов глубокого обучения называется Convolutional Neural Networks CNN, которые с математической точки зрения представляют собой комбинацию множества конволюционных операций и матричных операций, которые некоторыми математическими средствами также могут быть выполнены с помощью матричных операций. Эти операции - те же самые матричные операции, которые могли бы выполнять графические процессоры с такими графическими точками. Таким образом, глубокое обучение может быть ускорено с помощью GPU.

Раньше концепция GPGPU (General Purpose GPU) была не очень актуальна, и графические процессоры предназначались для рендеринга графики. Если вы хотите использовать GPU для вычислений, вы должны полностью следовать аппаратной архитектуре GPU. Сейчас, когда GPU становятся все более популярными, производители разрабатывают и выпускают GPU с учетом потребностей вычислительного мира. Например, когда NVIDIA в этом году выпустила M40 и P100, было сказано, что они "предназначены для глубокого обучения", конечно, на самом деле концепция спекуляций в этом компоненте больше, но, по крайней мере, мы видим, что производители все больше ориентируются на вычисления на GPU общего назначения.

Во-вторых, разница между GPGPU и GPU.

GPU был создан для решения проблемы эффективности рендеринга графики, но по мере развития технологий графические процессоры становятся все более мощными, особенно после появления шейдеров (это позволяет нам программировать на GPU), GPU могут делать все больше и больше, уже не ограничиваясь областью графики, но также некоторые люди проявили инициативу по расширению своих возможностей на другие области, требующие больших вычислений, что и является GP (General Purpose) GPU. Purpose) GPU.

В-третьих, почему быстро.

Допустим, вы используете программу Meitu xx, чтобы добавить эффект размытия к изображению, это сделает центральный процессор:

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

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

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


---------- ------
Авторское право: Это оригинальная статья блоггера CSDN "xihuanyuye", в соответствии с авторским соглашением CC 4.0 BY-SA, пожалуйста, указывайте ссылку на первоисточник и данное утверждение.
Оригинальная ссылка: https://blog.csdn.net/xihuanyuye/article/details/81178352


Рекомендуемые новости

Глобальный поиск