Что такое гпу и цпу. Что такое GPU? Вычисления на GPU

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

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

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

Время, которое пройдет от создания заявки на покупку или продажу до получения ответа о ее успешныом выполнеии от биржевого сервера называется раундтрипом (round-trip, RTT). Участники рынка всеми силами стремятся снизить это время, в частности для этого используются технологии прямого доступа на биржу, а серверы с торговым софтом располагаются на колокации рядом с торговым движком бирж.

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

Что такое GPU

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

Когда программа на C, использующая расширения CUDA, вызывает ядро GPU, копии этого ядра или потоки, нумеруются и распределяются на доступные мультипроцессоры, где уже начинается их выполнение. Для такой нумерации и распределения сеть ядра подразделяется на блоки, каждый из которых делится на различные потоки. Потоки в таких блоках выполняются одновременно на доступных мультипроцессорах. Для управления большим количеством потоков используется модуль SIMT (single-instruction multiple-thread). Этот модуль группирует их в «пачки» по 32 потока. Такие группы исполняются на том же мультипроцессоре.

Анализ финансовых данных на GPU

В финансовом анализе применяется множество мер и показателей, расчет которых требует серьезных вычислительных мощностей. Ниже мы перечислим некоторые из них и сравним быстродействие при их обработке, показанное «обычным» процессоромо Intel Core 2 Quad CPU (Q6700) c тактовой частотой 2,66 ГГц и размером кэша 4096 килобайт, а также популярных графических карт.
Экспонента Херста
Мера, называемая экспонентной Херста, используется в анализе временных рядов. Эта величина уменьшается в том случае, если задержка между двумя одинаковыми парами значений во временном ряду увеличивается. Изначально это понятие применялось в гидрологии для определения размеров плотины на реке Нил в условиях непредсказуемых дождей и засух.

Впоследствии показатель Херста начали применять в экономике, в частности, в техническом анализе для предсказания трендов движения ценовых рядов. Ниже представлено сравнение быстродействия вычисления показателя Херста на CPU и GPU (показатель «ускорения» β = общее время выисления на CPU / общее время вычисления на GPU GeForce 8800 GT):

Модель Изинга и метод Монте-Карло
Еще одним инструментом, перекочевавшим в сферу финансов на этот раз из физики, является модель Изинга . Эта математическая модель статистической физики предназначена для описания намагничивания материала.

Каждой вершине кристаллической решётки (рассматриваются не только трёхмерные, но и одно- и двумерные вариации) сопоставляется число, называемое спином и равное +1 или −1 («поле вверх»/«поле вниз»). Каждому из 2^N возможных вариантов расположения спинов (где N - число атомов решётки) приписывается энергия, получающаяся из попарного взаимодействия спинов соседних атомов. Далее для заданной температуры рассматривается распределение Гиббса - рассматривается его поведение при большом числе атомов N.

В некоторых моделях (например, при размерности > 1) наблюдается фазовый переход второго рода. Температура, при которой исчезают магнитные свойства материала, называется критической (точка Кюри). В ее окрестности ряд термодинамических характеристик расходится.

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

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

Ниже представлено сравнение быстродействия моделирования на CPU и GPU (NVIDIA GeForce GTX 280):

Существуют реализации модели Изинга с использованием в ходе анализа различного количества спинов. Мультиспиновые реализации позволяет загружать несколько спинов параллельно.

Ускорение с помощью нескольких GPU

Для ускорения обработки данных также используются кластеры GPU-устройств - в данном случае исследователи собрали кластер из двух карточек Tesla C1060 GPU, коммуникация между которыми осуществлялась через Double Data Rate InfiniBand.

В случае симуляции модели Изинга методом Монте-Карло результаты говорят о том, что производительность повышается практически линейно при добавлении большего количества GPU.

Заключение

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

Главный чип на материнской плате – это центральный процессор (CPU – Central Processor Unit). Центральный, потому что управляет всеми остальными подсистемами, с помощью системы шин и чипсета.

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

GPU NVidia Nv45 на видеокарте

Процессор на видеокарте называют GPU (Graphic Processor Unit) , чтобы подчеркнуть:

  1. Что это процессор.
  2. Что он не центральный, то есть подчиненный для CPU.
  3. Что он ориентирован на обработку специальных данных – графики.

Расположение GPU на материнской плате

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

CPU содержит десятки ядер, GPU — тысячи

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

Современный ЦП (CPU) может включать в себя графический процессор.

Четрыехядерный процессор с дополнительным графическим ядром GPU

Такое решение позволяет компьютеру обойтись без видеокарты за счет встроенного в центральный процессор GPU. Это снижает потребляемую энергию от 30 до 180%. Стоимость процессора при этом возрастает не более чем на 20%.

Главный минус такой реализации – низкая производительность. Такое решение подходит для офисных компьютеров, где работают с документами и базами данных, но современную компьютерную игру на нем не запустишь, Фотошоп будет притормаживать, а Автокад может зависнуть намертво.

Как узнать GPU в компьютере

Для пользователя GPU прочно ассоциируется с видеокартой, хотя это только процессор. Знать, установлен в компьютере полезно в трех случаях:

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

Ели на компьютере установлены все драйвера, то самый быстры способ – посмотреть в диспетчере устройств, в разделе видеоадаптеры:

Просмотр GPU в диспетчере устройств

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Настроить параметры GPU визуализации

Если ваше приложение тормозит, значит часть или все кадры обновления экрана обновляются больше чем 16 миллисекунд. Чтобы визуально увидеть обновления кадров на экране, можно на устройстве включить специальную опцию (Profile GPU Rendering).

У вас появится возможность быстро увидеть, сколько времени занимает отрисовка кадров. Напомню, что нужно укладываться в 16 миллисекунд.

Опция доступна на устройствах, начиная с Android 4.1. На устройстве следует активировать режим разработчика. На устройствах с версией 4.2 и выше режим по умолчанию скрыт. Для активации идёт в Настройки | О телефоне и семь раз щёлкаем по строке Номер сборки .

После активации заходим в Опции разработчика и находим пункт Настроить параметры GPU визуализации (Profile GPU rendering), который следует включить. В всплывающим окне выберите опцию На экране в виде столбиков (On screen as bars). В этом случае график будет выводиться поверх запущенного приложения.

Вы можете протестировать не только своё приложение, но и другие. Запустите любое приложение и начинайте работать с ним. Во время работы в нижней части экрана вы увидите обновляемый график. Горизонтальная ось отвечает за прошедшее время. Вертикальная ось показывает время для каждого кадра в миллисекундах. При взаимодействии с приложением, вертикальные полосы рисуются на экране, появляясь слева направо, показывая производительность кадров в течение какого-то времени. Каждый такой столбец представляет собой один кадр для отрисовки экрана. Чем выше высота столбика, тем больше времени уходит на отрисовку. Тонкая зелёная линия является ориентиром и соответствует 16 миллисекундам за кадр. Таким образом, вам нужно стремиться к тому, чтобы при изучении вашего приложения график не выбивался за эту линию.

Рассмотрим увеличенную версию графика.

Зелёная линия отвечает за 16 миллисекунд. Чтобы уложиться в 60 кадров в секунду, каждый столбец графика должен рисоваться ниже этой линии. В каких-то моментах столбец окажется слишком большим и будет гораздо выше зелёной линии. Это означает торможение программы. Каждый столбец имеет голубой, фиолетовый (Lollipop и выше), красный и оранжевый цвета.

Голубой цвет отвечает за время, используемое на создание и обновление View .

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

Красный цвет представляет собой время для отрисовки.

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

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

Отладить показатель GPU overdraw

Другая настройка позволяет узнать, как часто перерисовывается один и тот же участок экрана (т.е. выполняется лишняя работа). Опять идём в Опции разработчика и находим пункт Отладить показатель GPU overdraw (Debug GPU Overdraw), который следует включить. В всплывающим окне выберите опцию Показывать зоны наложения (Show overdraw areas). Не пугайтесь! Нкоторые элементы на экране изменят свой цвет.

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

Если цвет в приложении не изменился, значит всё отлично. Нет наложения одного цвета поверх другого.

Голубой цвет показывает, что один слой рисуется поверх нижнего слоя. Хорошо.

Зелёный цвет - перерисовывается дважды. Нужно задуматься об оптимизации.

Розовый цвет - перерисовывается трижды. Всё очень плохо.

Красный цвет - перерисовывается много раз. Что-то пошло не так.

Вы можете самостоятельно проверить своё приложение для поиска проблемных мест. Создайте активность и поместите на неё компонент TextView . Присвойте корневому элементу и текстовой метке какой-нибудь фон в атрибуте android:background . У вас получится следующее: сначала вы закрасили одним цветом самый нижний слой активности. Затем поверх неё рисуется новый слой от TextView . Кстати, на самом TextView рисуется ещё и текст.

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

Маленький совет. Поместите после метода setContentView() вызов метода, который уберёт перирисовку экрана цветом темы. Это поможет убрать одно лишнее наложение цвета:

GetWindow().setBackgroundDrawable(null);

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

Что такое CPU?

CPU (Central Processing Unit) – это центральный процессор, другими словами – “мозг” компьютера. Это набор из нескольких миллионов транзисторов, которые могут выполнять сложные вычисления. Стандартный процессор имеет от одного до четырех ядер с тактовой частотой от 1 до 4 ГГц, хотя недавно .

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

Что такое GPU?

GPU (Graphics Processing Unit) – это специализированный тип микропроцессора, который оптимизирован для отображения графики и решения специфичных задач. Тактовая частота GPU существенно ниже, чем в CPU, но обычно он имеет больше ядер.

В чем разница между CPU и GPU?

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

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

Немного об вычислениях на GPU

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

Итог

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

Понравилась статья? Поделиться с друзьями: