GPU vs CPU: Почему для анализа финансовых данных применяют графические процессоры. GPU: что это в компьютере

Вы решили купить компьютер. Ходите вдоль торговых рядов, смотрите на ценники, знакомитесь с характеристиками. И возникает вопрос: что такое GPU? Часто вы наблюдаете это сочетание букв, но смысла не видите. Попробуем объяснить.

GPU - что это, и в чем отличие от CPU

GPU расшифровывается как "graphics processing unit", или графический процессор. Он являет собой отдельное устройство игровой приставки, компьютера, фотоаппарата. Отвечает за рендеринг графики, выполняет его. Справляется с этой задачей GPU замечательно, обусловлено это специально предназначенной для данных целей конвейерной архитектурой. Современные GPU куда лучше обрабатывают графику, чем аналогичные им классические центральные процессоры (ЦПУ).

В настоящее время ГПУ применяется в качестве акселератора 3D-графики, но в исключительных случаях он может быть использован для вычислений. Отличает ГПУ от ЦПУ следующее:

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

Колоссальная вычислительная мощность объясняется именно особенностями архитектуры. Наряду с современными CPU, содержащими несколько ядер (2/4/8, что уже считалось прорывом), GPU изначально разрабатывался как многоядерная структура. Число ядер тут исчисляется сотнями!

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

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

Вы теперь знаете многое о 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 - в таком случае она растет практически линейно.

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

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

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


Видеокарты, которые подключаются отдельно и работают на высоких мощностях, существуют только в ноутбуках и настольных компьютерах. Если мы говорим об Android-устройствах, то мы говорим об интегрированной графике и том, что мы называем SoC (System-on-a-Chip). К примеру, в процессоре интегрирован графический процессор Adreno 430. Память, которую он использует для своей работы, это системная память, в то время как для видеокарт в настольных ПК выделяется доступная только им память. Правда, существуют и гибридные чипы.

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

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


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

По материалам AndroidPit

Все мы знаем, что у видеокарты и процессора несколько различные задачи, однако знаете ли вы, чем они отличаются друг от друга во внутренней структуре? Как 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 исполняет 12 потока вычислений на одно процессорное ядро, а GPU может поддерживать несколько тысяч потоков на каждый мультипроцессор, которых в чипе несколько штук! И если переключение с одного потока на другой для CPU стоит сотни тактов, то GPU переключает несколько потоков за один такт.

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

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

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

Майнинг Bitcoin

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

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

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

Как работает процессор

GPU занимается обработкой 2D и 3D графики. Благодаря GPU ЦП компьютера становится свободнее и может выполнять более важные задачи. Главная особенность графического процессора в том, что он старается максимально увеличить скорость расчета графической информации. Архитектура чипа позволяет с большей эффективностью обрабатывать графическую информацию, нежели центральный CPU ПК.

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



В продолжение темы:
Android

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