GPU: что это в компьютере. В чем разница между CPU и GPU

Время идет, процессоры становятся все мощнее и многоядернее. Видеокарты также наращивают количество вычислительных блоков и помимо создания 3D-изображения пытаются решать те задачи, которыми до сих пор занимались центральные процессоры. При этом разработчики видеокарт обещают значительное повышение производительности, что, в общем-то, подкрепляется цифрами. Но остается вопрос - на самом ли деле архитектура видеокарт лучше подходит для решения хорошо распараллеливаемых задач и потоковой обработки больших массивов данных? Если так, то зачем нам тогда многоядерные процессоры, может действительно стоит "переложить" нагрузку на видеокарты? Сегодня мы попытаемся ответить на вопрос - "кто кого поборет, кит или слон?", применительно к соревнованию CPU и GPU в части физических расчетов. Данный материал не претендует на полноту и всеохватность, более того - рассматриваемые здесь вопросы являются далеко не единственным примером "соревнования" CPU и GPU в области вычислений. Собственно, эти заметки и появились лишь в результате дискуссии с коллегами по поводу "кто сильнее, CPU или GPU". Не откладывая в долгий ящик, решено было проверить, а действительно - кто? Вы не поверите, но итог соревнования оказался не столь очевиден, и результаты удивили обе стороны. А почему так получилось, сейчас и увидим. В качестве тестового приложения мы решили взять 3DMark Vantage, а конкретно, один из входящих в пакет тестов - CPU Physics. Выбор, в общем-то, ничем особым не обусловлен, можно сказать - "что под руку попалось". Просто в 3DMark Vantage обычно мы тестируем видеокарты, а в него входит тест расчета "физики", который может выполнятся как на CPU, так и на видеоадаптерах NVIDIA. Вот давайте и посмотрим, кто считает "физику" быстрее.

Тестовое оборудование

Для сравнения мы взяли три процессора. Один из них уже довольно стар - Intel Core 2 Quad QX6850. Второй процессор более современный - AMD Phenom II X4 965. Третий еще современнее - AMD Athlon II X4 620. Конечно, надо было бы взять еще Core i7 или Core i5, но в это время они были заняты в других тестах. Впрочем, и трех имеющихся представителей "процессорного "лагеря будет вполне достаточно для получения качественных и количественных оценок.

Что касается видеокарт, то мы использовали три следующие модели NVIDIA:

  • GeForce 9500GT (32 унифицированных процессора)
  • GeForce 9600GT (64 унифицированных процессора)
  • GeForce GTX260 (216 унифицированных процессоров)
Мы не указываем частоты видеокарт, поскольку в процессе тестирования они постоянно менялись.

Тестирование

В качестве "удельной мощности" CPU или GPU мы будем рассматривать величину производительности в тесте 3DMark Vantage CPU Physics Test (которая измеряется в количестве кадров в секунду), поделенную на количество ядер или шейдерных блоков, а также частоту в мегагерцах. То есть, будем измерять "удельную мощность" в FPS/(МГц*количество вычислительных потоков). Собственно, для получения этой величины осталось измерить количество FPS в тесте при разных частотах процессоров и видеокарт, так как количество ядер CPU фиксировано, как и количество потоковых процессоров у видеокарт. Итак, приступим. Поскольку CPU до сих пор является "сердцем" компьютера, начнем именно с него. Мы решили немножко усложнить себе задачу и заодно выяснить, как масштабируется производительность CPU в данном тесте не только от частоты, но и от количества ядер. Ядра "отключались" путем задания соответствия на требуемое число ядер CPU для 3DMark Vantage в "Диспетчере задач". Данный метод неидеален, но для наших задач его вполне хватит. Кстати, несмотря на то, что процессор Intel Core 2 Quad QX6850 по сути состоит из двух ядер на одной подложке, какого либо влияния в данном тесте это не оказало. То есть, вариант, когда два ядра используют общий кэш объемом 4 Мб и случай, когда каждое из ядер использует кэш по 4 Мб, показали результаты, совпадающие в пределах погрешности. Ну а масштабирование по частоте осуществлялось путем изменения коэффициента умножения процессора в сторону понижения, прочие параметры системы оставались неизменными. Смотрим, что получилось.

Как видите, с увеличением частоты производительность в тесте растет практически линейно. Теоретически, прямые линии должны начинаться от начала координат, поскольку при нулевой частоте CPU мы просто не получим никаких результатов, то есть нулевой FPS. Давайте проведем прямые линии от начала координат и проверим, насколько они совпадут с экспериментальными кривыми.

Получаются весьма занятные результаты. Результаты Intel Core 2 Quad QX6850 практически идеально ложатся на прямые линии (за исключением случая для трех активных ядер, что может быть обусловлено как раз несимметричностью распределения кэш-памяти между ними в силу архитектуры). Результаты процессора AMD Athlon II X4 620 также хорошо ложатся на линию, проходящую через начало координат. А вот для AMD Phenom II X4 965 все несколько сложнее. Если проводить прямую от начала координат через точку, соответствующую минимальной частоте, то следующие точки отклоняются от этой прямой вниз (случай для одного и двух активных ядер). Если же проводить прямую через точки, соответствующие более высокой частоте CPU, то получается, что результаты на частоте 2000 МГц лежат сверху над прямой. Вероятно, такое поведение результатов можно объяснить наличием у AMD Phenom кэш-памяти третьего уровня. При частоте CPU равной 2000 МГц ядра и кэш-память L3 работают синхронно, поэтому результат максимален. При увеличении частоты ядер частота L3-кэш процессора остается неизменной, и он может вносить какие-то задержки, поэтому результаты "переходят" на прямую, коэффициент наклона которой ниже. Теперь давайте вычислим "удельную мощность" рассматриваемых процессоров в этом тесте. Напомним, что это по сути есть коэффициент наклона касательной, дополнительно разделенный на количество задействованных ядер CPU. Результаты приведены в таблице ниже.

"Удельная мощность" CPU, FPS/(МГц*кол-во ядер)
Кол-во ядер Core 2 Quad QX6850 Phenom II X4 965 Athlon II X4 620
1 0.001363 0.001467
2 0.001252 0.001381
3 0.001249 0.001331
4 0.00124 0.001346 0.001348

Удивительно, но в при расчетах "физики" в 3DMark Vantage рассматриваемые процессоры AMD показывают чуть лучшие результаты, чем представитель архитектуры Intel Core 2 Quad. Теперь давайте посмотрим, какую "удельную мощность" продемонстрируют GPU производства NVIDIA. Поскольку видеопроцессор является довольно сложным устройством, возник вопрос - а как вообще эту "удельную мощность" считать? Поскольку вычислениями в основном занимаются шейдерные блоки, было решено строить графики результатов на основе именно этого параметра. Что касается частоты блоков ROP, то она выбиралась максимально возможной при данной частоте шейдеров. Как оказалось, минимальный коэффициент частоты шейдерных блоков по отношению к частоте ROP-блоков равен двум. Именно такое соотношение частот и сохранялось на протяжении всех тестов. Для этой части тестов использовался тестовый стенд на основе Core 2 Quad QX6850, рабочая частота процессора - 3600 МГц, все четыре ядра активны. Результаты показаны на графике ниже.

Как видите, в данном тесте по абсолютным показателям видеокарты значительно опережают центральные процессоры в производительности. Причем даже самая слабая из присутствующих модель на минимальных частотах оказывается быстрее четырехъядерного CPU с частотой 3600 МГц. Однако поведение линий результатов несколько отличается от того, что мы видели для центральных процессоров. Более подробно это видно на графике ниже.

На этом графике через точки, соответствующие минимальным рабочим частотам видеокарт, мы провели прямые линии. Как оказалось, они сходятся не в начале координат, а пересекают ось ординат на уровне примерно 20 FPS. Странно, не правда ли? Как оказалось, ничего странного нет, а поведение линий вполне закономерно. Для этого достаточно было посмотреть на загрузку CPU во время выполнения теста - она достигала 100% для каждого из ядер. Если вернуться к данным графика №1, то легко заметить, что результат теста на процессоре Intel Core 2 Quad QX6850 @ 3600 МГц как раз и составляет 18 FPS. Мы пробовали снижать частоту процессора и уменьшать количество активных ядер, и каждый раз уровень вертикального смещения линий результатов для GPU с хорошей точностью совпадал с производительностью центрального процессора в данном тесте. Что касается отклонения линий результатов от построенных прямых, то это объясняется проще - начиная с определенного момента часть шейдерных блоков, по всей видимости, загружены не полностью. Возможно, сказываются ограниченные возможности по распараллеливанию нагрузки самого теста, а может играют роль какие-то ограничения в архитектуре видеопроцессора. Как бы там ни было, давайте вычислим "удельную мощность" GPU, используя, как и прежде, коэффициент наклона построенных прямых, поделенный на количество потоковых процессоров. Полученные результаты отображены в таблице ниже. Также в ней указана "удельная мощность" Intel Core 2 Quad QX6850.

"Удельная мощность" Коэффициент "отставания"
GPU от CPU
Intel Core 2 Quad QX6850 0.00124
9500GT (32 shaders) 0.00084 1.48
9600GT (64 shaders) 0.00063 1.97
GTX260 (216 shaders) 0.00050 2.46

В это трудно поверить, но в тесте 3DMark Vantage CPU Physics Test "удельная мощность" довольно старого, по нынешним меркам, центрального процессора оказывается как минимум в полтора раза больше "удельной мощности" современных видеопроцессоров NVIDIA. Такой вот парадоксальный результат. Впрочем, мы вовсе не предлагаем отказаться от расчетов на GPU в пользу центральных процессоров. У GPU есть еще один козырь - большая производительность на ватт потребляемой мощности. Эти прикидки сделать несложно, поэтому оставим эту возможность читателям. Ну а если сравнить абсолютные результаты CPU и GPU, полученные в рамках данного тестирования, то современные процессоры еще не скоро до них дорастут. Впрочем, и отрицать успехи процессоростроения не стоит. Не так давно были опубликованы результаты тестирования разогнанного шестиядерного процессора Intel Core i9 Gulftown . Разогнанный до частоты 5892 МГц, этот процессор в тесте 3DMark Vantage CPU Physics Test показал результат 63,01 FPS. Если подсчитать "удельную мощность" новинки, то получаем величину 0.00178 FPS/(МГц*кол-во ядер), что в 1.44 раза больше "удельной мощности" процессора Core 2 Quad QX6850. То есть 44% прибавки достигаются за счет преимуществ архитектуры Core i9 и технологии HyperThreading. И хотя прямого противостояния CPU и GPU по всему фронту решаемых задач пока не наблюдается, кто знает, где именно между ними развернется жестокая конкуренция. Стоит упомянуть AMD Radeon HD 5870 , обладающий вычислительной мощностью 2,7 TFLOPS, а также Microsoft DirectX 11 с поддержкой технологии Compute Shader, позволяющей переложить расчеты на GPU. То ли еще будет...

Доброго всем времени суток, мои дорогие друзья и гости моего блога. Сегодня я бы хотел поговорить немного об аппаратной части наших компьютеров. Скажите пожалуйста, вы слышали про такое понятие как GPU? Оказывается просто многие впервые слышат такую аббревиатуру.

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

Кто-то пойдет дальше и узнает, что есть ещё и некий GPU. Такая замысловатая аббревиатура, но похожая на предыдущую. Так давайте же разберемся, что такое GPU в компьютере, какие они бывают и какие различия есть у него с CPU.

Небольшая разница

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

Графический процессор имеет свои отличительные особенности по сравнению с его собратом CPU. Основное различие кроется в архитектуре, на которой он построен. Архитектура GPU построена таким образом, что позволяет обрабатывать большие массивы данных более эффективно. CPU, в свою очередь, обрабатывает данные и задачи последовательно. Естественно, не стоит воспринимать эту особенность как минус.

Виды графических процессоров

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

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

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

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

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

Ну а на этом у меня, пожалуй, все. Надеюсь, что статья вам понравилась! Жду вас снова у себя на блоге в гостях. Удачи вам. Пока-пока!

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

Встроенный GPU

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

Что касается объема памяти, то интегрированное GPU в компьютере использует для работы объем и частоты оперативной памяти.

Большинство пользователей используют карты данного типа только для того, чтобы установить драйвера на дискретную видеокарту.

Дискретный GPU

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

Такие видеокарты могут быть как игровыми, так и офисными. Например, у производителя Invidia они различаются сериями выхода. Вот модель GT630 является офисной, а GTX660 именуется игровой. Первая цифра означает поколение графического процессора, а две последующие указывают на серию. Нумерация до 50 серии говорит о том, что оборудование является офисным, а от 50 до 90 - это игровые карты. Причем чем больше цифра, тем производительнее чип используется в видеокарте. Приставка в виде буквы "Х" означает предлежание к игровой категории, так как такие видеокарты имеют разгонный потенциал. Также им требуется отдельное дополнительное питание, потому что их ресурсы потребляют много энергии. Теперь есть общее представление о том, что это - GPU в компьютере.

Что касается Radeon, то у них система опознания очень проста. В четырехзначной системе первая цифра отвечает за поколение, вторая - за серию, а две последние цифры указывают на последовательность модели. За различие между офисными и дискретными представителями отвечают именно они.

Нормальная температура GPU в компьютере

Для нормального функционирования в процессоре должна поддерживаться оптимальная температура, и для каждого комплектующего она своя. Что касается GPU, то его рабочая температура обычно не превышает отметки 65 градусов. Чип может выдержать нагрев до 90 градусов, но лучше не допускать подобного, иначе составляющие видеочипа подвергаются разрушению.

За нормальную температуру отвечают несколько составляющих видеокарты - это термопаста, кулеры, радиаторы и система питания.

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

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

Питание для GPU

Встроенные графические процессоры не нуждаются в дополнительном питании, однако дискретные представители требуют более мощного блока питания. Офисные видеокарты будут нормально функционировать и с блоком в 450 ватт. Для съемных графических ускорителей потребуется блок питания более 500 ватт. При грамотном его подборе можно полностью раскрыть потенциал видеокарты. Тем более что система охлаждения дискретной видеокарты будет лучше функционировать при достаточном количестве электроэнергии.

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

Все мы знаем, что у видеокарты и процессора несколько различные задачи, однако знаете ли вы, чем они отличаются друг от друга во внутренней структуре? Как CPU (англ. - central processing unit ), так и GPU (англ. - graphics processing unit ) являются процессорами, и между ними есть много общего, однако сконструированы они были для выполнения различных задач. Подробнее об этом вы узнаете из данной статьи.

CPU

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

GPU

Основная функция GPU - рендеринг 3D графики и визуальных эффектов, следовательно, в нем все немного проще: ему необходимо получить на входе полигоны, а после проведения над ними необходимых математических и логических операций, на выходе выдать координаты пикселей. По сути, работа GPU сводится к оперированию над огромным количеством независимых между собой задач, следовательно, он содержит большой объем памяти, но не такой быстрой, как в CPU, и огромное количество исполнительных блоков: в современных GPU их 2048 и более, в то время как у CPU их количество может достигать 48, но чаще всего их количество лежит в диапазоне 2-8.

Основные отличия

CPU отличается от GPU в первую очередь способами доступа к памяти. В GPU он связанный и легко предсказуемый - если из памяти читается тексел текстуры, то через некоторое время настанет очередь и соседних текселов. С записью похожая ситуация - пиксель записывается во фреймбуфер, и через несколько тактов будет записываться расположенный рядом с ним. Также графическому процессору, в отличие от универсальных процессоров, просто не нужна кэш-память большого размера, а для текстур требуются лишь 128–256 килобайт. Кроме того, на видеокартах применяется более быстрая память, и в результате GPU доступна в разы большая пропускная способность, что также весьма важно для параллельных расчетов, оперирующих с огромными потоками данных.

Есть множество различий и в поддержке многопоточности: CPU исполняет 1 2 потока вычислений на одно процессорное ядро, а GPU может поддерживать несколько тысяч потоков на каждый мультипроцессор, которых в чипе несколько штук! И если переключение с одного потока на другой для CPU стоит сотни тактов, то GPU переключает несколько потоков за один такт.

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

Разница в скорости вычислений

Если CPU - это своего рода «начальник», принимающий решения в соответствии с указаниями программы, то GPU - это «рабочий», который производит огромное количество однотипных вычислений. Выходит, что если подавать на GPU независимые простейшие математические задачи, то он справится значительно быстрее, чем центральный процессор. Данным отличием успешно пользуются майнеры биткоинов.

Майнинг Bitcoin

Суть майнинга заключается в том, что компьютеры, находящиеся в разных точках Земли, решают математические задачи, в результате которых создаются биткоины . Все биткоин-переводы по цепочке передаются майнерам, чья работа состоит в том, чтобы подобрать из миллионов комбинаций один-единственный хэш, подходящий ко всем новым транзакциям и секретному ключу, который и обеспечит майнеру получение награды в 25 биткоинов за раз. Так как скорость вычисления напрямую зависит от количества исполнительных блоков, получается, что GPU значительно лучше подходят для выполнения данного типа задачи, нежели CPU. Чем больше количество произведенных вычислений, тем выше шанс получить биткоины. Дело даже дошло до сооружения целых ферм из видеокарт.

Графические процессоры (graphics processing unit, GPU) - яркий пример того, как технология, спроектированная для задач графической обработки, распространилась на несвязанную область высокопроизводительных вычислений. Современные GPU являются сердцем множества сложнейших проектов в сфере машинного обучения и анализа данных. В нашей обзорной статье мы расскажем, как клиенты Selectel используют оборудование с GPU, и подумаем о будущем науки о данных и вычислительных устройств вместе с преподавателями Школы анализа данных Яндекс.

Графические процессоры за последние десять лет сильно изменились. Помимо колоссального прироста производительности, произошло разделение устройств по типу использования. Так, в отдельное направление выделяются видеокарты для домашних игровых систем и установок виртуальной реальности. Появляются мощные узкоспециализированные устройства: для серверных систем одним из ведущих ускорителей является NVIDIA Tesla P100 , разработанный именно для промышленного использования в дата-центрах. Помимо GPU активно ведутся исследования в сфере создания нового типа процессоров, имитирующих работу головного мозга. Примером может служить однокристальная платформа Kirin 970 с собственным нейроморфным процессором для задач, связанных с нейронными сетями и распознаванием образов.

Подобная ситуация заставляет задуматься над следующими вопросами:

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

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

Эпоха GPU

Для начала вспомним, что же такое GPU. Graphics Processing Unit — это графический процессор широко используемый в настольных и серверных системах. Отличительной особенностью этого устройства является ориентированность на массовые параллельные вычисления. В отличие от графических процессоров архитектура другого вычислительного модуля CPU (Central Processor Unit) предназначена для последовательной обработки данных. Если количество ядер в обычном CPU измеряется десятками, то в GPU их счет идет на тысячи, что накладывает ограничения на типы выполняемых команд, однако обеспечивает высокую вычислительную производительность в задачах, включающих параллелизм.

Первые шаги

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

Следующим революционным событием стало появление нового класса более сложных и многофункциональных устройств — видеопроцессоров. В 1996 году компания 3dfx Interactive выпустила чипсет Voodoo Graphics, который быстро занял 85% рынка специализированных видеоустройств и стал лидером в области 3D графики того времени. После серии неудачных решений менеджмента компании, среди которых была покупка производителя видеокарт STB, 3dfx уступила первенство NVIDIA и ATI (позднее AMD), а в 2002 объявила о своем банкротстве.

Общие вычисления на GPU

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

Признанный лидер

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

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

  • CPU. Intel Xeon E5-2680 v4 — 28 потоков с HyperThreading, 2.4 GHZ;
  • GPU. NVIDIA GTX 1080 — 2560 CUDA Cores, 1607 Mhz, 8GB GDDR5X.

Используем пример вычисления перемножения матриц на CPU и GPU в Jupyter Notebook:

В коде выше мы измеряем время, которое потребовалось на вычисление матриц одинакового порядка на центральном или графическом процессоре («Время выполнения»). Данные можно представить в виде графика, на котором горизонтальная ось отображает порядок перемножаемых матриц, а вертикальная - Время выполнения в секундах:

Линия графика, выделенная оранжевым, показывает время, которое требуется для создания данных в обычном ОЗУ, передачу их в память GPU и последующие вычисления. Зеленая линия показывает время, которое требуется на вычисление данных, которые были сгенерированы уже в памяти видеокарты (без передачи из ОЗУ). Синяя отображает время подсчета на центральном процессоре. Матрицы порядка менее 1000 элементов перемножаются на GPU и CPU почти за одинаковое время. Разница в производительности хорошо проявляется с матрицами размерами более 2000 на 2000, когда время вычислений на CPU подскакивает до 1 секунды, а GPU остается близким к нулю.

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

Кому в Selectel жить хорошо с GPU?

Первый вариант, который сразу приходит на ум и оказывается правильной догадкой — это майнинг, однако любопытно отметить, что некоторые применяют его как вспомогательный способ загрузить оборудование на «максимум». В случае аренды выделенного сервера с видеокартами, время свободное от рабочих нагрузок используется для добычи криптовалют, не требующих специализированных установок (ферм) для своего получения.

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

В ходе разговора с нашими клиентами мы также познакомились с представителями Школы анализа данных Яндекс, которая использует мощности Selectel для организации тестовых учебных сред. Мы решили узнать побольше о том, чем занимаются студенты и преподаватели, какие направления машинного обучения сейчас популярны и какое будущее ожидает индустрию, после того как молодые специалисты пополнят ряды сотрудников ведущих организаций или запустят свои стартапы.

Наука о данных

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

Современный подход к работе с данными включает в себя несколько основных направлений:

  • Большие данные (Big Data). Основная проблема в данной сфере - колоссальный объем информации, который не может быть обработан на единственном сервере. С точки зрения инфраструктурного обеспечения, требуется решать задачи создания кластерных систем, масштабируемости, отказоустойчивости, и распределенного хранения данных;
  • Ресурсоемкие задачи (Машинное обучение, глубокое обучение и другие). В этом случае поднимается вопрос использования высокопроизводительных вычислений, требующих большого количества ОЗУ и процессорных ресурсов. В таких задачах активно используются системы с графическими ускорителями.

Граница между данными направления постепенно стирается: основные инструменты для работы с большими данным (Hadoop, Spark) внедряют поддержку вычислений на GPU, а задачи машинного обучения охватывают новые сферы и требуют бо́льших объемов данных. Разобраться подробнее нам помогут преподаватели и студенты Школы анализа данных.

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

Новое направление

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

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

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

Технологии анализа данных

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

  • Глубинное обучение;
  • Обучение с подкреплением;
  • Компьютерное зрение;
  • Автоматическая обработка текстов.

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

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

Дальнейшее развитие и проекты

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

О будущем анализа данных мы поговорили с преподавателями Школы анализа данных, которые поделились с нами своим видением развития науки о данных.

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

Один из наставников Школы анализа данных делится своим мнением касательно распространения и начала массового использования машинного обучения:

«Машинное обучение из удела немногих одержимых исследователей превращается в ещё один инструмент рядового разработчика. Раньше (например в 2012) люди писали низкоуровневый код для обучения сверточных сетей на паре видеокарт. Сейчас, кто угодно может за считанные часы:

  • скачать веса уже обученной нейросети (например, в keras);
  • сделать с ее помощью решение для своей задачи (fine-tuning, zero-shot learning);
  • встроить её в свой веб-сайт или мобильное приложение (tensorflow / caffe 2).

Многие большие компании и стартапы уже выиграли на такой стратегии (например, Prisma), но еще больше задач только предстоит открыть и решить. И, быть может, вся эта история с машинным/глубинным обучением когда-нибудь станет такой же обыденностью, как сейчас python или excel»

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

Возможности для новичков

Изучение анализа данных ограничивается высокими требованиями к обучающимся: обширные познания в области математики и алгоритмики, умение программировать. По-настоящему серьезные задачи машинного обучения требуют уже наличия специализированного оборудования. А для желающих побольше узнать о теоретической составляющей науки о данных Школой анализа данных совместно с Высшей Школой Экономики был запущен онлайн курс « ».

Вместо заключения

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

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

А опытным и искушенным в сфере машинного обучения, анализа данных и не только мы предлагаем посмотреть от Selectel по аренде серверного оборудования с графическми ускорителями: от простых GTX 1080 до Tesla P100 и K80 для самых требовательных задач.