Что такое GPU в в вашем компьютере? GPU vs 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 для самых требовательных задач.

Привет ребята. Сегодня мы будем говорить про GPU Speed — я расскажу простыми словами что это. Ну для начала разберем само название, GPU это графический процессор или по-простому видеокарта ваша, кстати расшифровывается как Graphics Processing Unit. Второе слово это Speed и оно означает скорость. Какой вывод? GPU Speed означает скорость видеокарты.

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

Я пошел в интернет чтобы немного прояснить эту ситуацию и.. вот что узнал, смотрите, вот нашел такую картинку:

На картинке фирменная прога от Asus, это GPU Tweak II. И я так понимаю что прога позволяет переключать режимы видюхи. И вот смотрите, на картинке написано 122%, верно? Что это означает? А означает то, что видюха работает на 22% производительнее чем обычно. То есть некий такой разгончик себе. И справа сразу мы видим температуру, чтобы смотреть как там дела, ведь при разгоне температура повышается все таки.

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

Вот я нашел еще одну картинку, тут все таже прога, но уже 137% стоит:

И вверху видите выбран режим Gaming Mode, то есть игровой режим.

GPU Speed 100 — это нормально?

Значит ребята, в интернете видел сообщения некоторых, они спрашивают GPU Speed 100 это нормально или нет? Ну тут вопрос не совсем ясный мне, да и должен признаться я не особо разбираюсь в видеокартах.. Но есть серьезная причина, по которой я решил написать.

Значит смотрите, при простое видеокарта также может скидывать частоту как это умеет делать процессор? Я посмотрел в интернете — вроде умеет. Но что это значит, когда видеокарта в простое загружена на все 100 процентов? А тут ребята не все так просто. Я могу ошибаться, но не так много есть программ, которые нагружают именно видеокарту, а не как обычно процессор. То есть если проге нужна мощь, то обычно она берет себе процессор, верно? Но не видеокарту, я конечно не имею ввиду игры.. если игра грузит видюху, то я думаю это нормально как бэ. Но знаете к чему я клоню? Да вот к тому, что может быть это.. майнер. Есть такие вирусы, которые используют мощь видюхи в своих целях. Некоторые это делают нагло и поэтому это сразу заметно, а некоторые используют чучуть только производительности и делают так, чтобы это было незаметно..

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

В общем если видеокарта загружена на 100 процентов в простое, то первым делом я бы проверил комп на вирусы. Для этого я советую вам использовать утилиту Dr.Web CureIt!, ее скачать можно вот тут (это офф сайт):

Кстати вот я могу ошибаться.. но смотрите на картинку:

Видите, там где GPU Speed, то там 100%, а вот там где VRAM Usage, то там 1%. Повторюсь, что я не особо понимаю в видеокартах, но мне кажется что это странная ситуация, когда графический процессор нагружен на все 100%, а вот видеопамять (это VRAM Usage) вообще не используется.. Вот это ситуация как мне кажется подозрительная.

Fan Speed GPU это что?

Fan Speed означает скорость вентилятора, это относится к охлаждению. И если в Fan Speed GPU показываются проценты, то это означает на сколько работает система охлаждения видеокарты. Просто могут быть не проценты а RPM — это количество оборотов вентилятора. Вот например прога от AMD Radeon Settings и тут есть такой вот показатель, правда просто Fan Speed, без GPU, в общем смотрите:

А вот прога снова GPU Tweak II и тут есть Fan Speed и как я понимаю можно регулировать в процентах:

Вот такие дела ребята, надеюсь что инфа была вам полезна, ну а если что не так, то извините! Удачи вам и пусть у вас все будет хорошо!

Привет, друзья.

Вы любите поиграть в реалистичные игры на компе? Или посмотреть фильм в качестве, при котором четко видно каждую мелочь? Значит, вы должны представлять, что такое gpu в компьютере. Ничего о нем не знаете? Моя статья поможет вам избавиться от этого недоразумения;-).


GPU - это не видеокарта

Неизвестное для многих сочетание букв подразумевает под собой понятие «graphics processing unit», что на нашем языке означает графический процессор. Именно он отвечает за воспроизведение картинки на вашем железе, и чем лучше его характеристики, тем качественнее будет изображение.

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

GPU: не путать с CPU

Несмотря на сходство аббревиатур, не путайте предмет нашего разговора с (Central Processor Unit). Да, они похожи, как в названии, так и в функциях. Последний тоже может воспроизводить графику, правда, слабее в этом деле. Все же это абсолютно разные устройства.

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

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

В виду этого преимущества, лидеры среди производителей видеоадаптеров выпустили модели, в которых графические процессоры могут стать усовершенствованной заменой центральным. У бренда nVidia такой девайс называется GTX 10xx, а у его главного конкурента AMD - RX.

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

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

  • Дискретный. Входит в состав видеоадаптера. Подключается к системной плате через специально отведенный разъем (чаще всего PCIe или AGP). Имеет собственную оперативную память. Вы требовательный геймер или работаете со сложными графическими редакторами? Берите дискретную модель.

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

  • Гибридная графическая обработка. Это 2 в 1, то есть когда в компьютере устанавливается и первый вид, и второй вид GPU. В зависимости от выполняемых задач, включается в работу или один, или другой. Однако бывают ноутбуки, в которых могут работать сразу 2 вида устройств.
  • Внешний тип. Как несложно догадаться, это графический процессор, расположенный снаружи компа. Чаще всего такую модель выбирают обладатели ноутбуков, которым сложно впихнуть в свое железо дискретную видеокарту, но очень хочется получить достойную графику.

Как выбирать?

Когда будете подбирать для себя видеоадаптер, обращайте внимание на такие характеристики:

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

  • Быстрота заполнения (филлрейт). Этот параметр может рассказать, с какой скоростью GPU может вырисовывать картинку. Он делится на 2 вида: пиксельный (pixel fill rate) и текстурный (texel rate). На первый влияет количество ROP-блоков в структуре проца, а на второй - текстурных (TMU).

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

Геометрические блоки

Раньше на них никто не обращал внимания, потому что виртуальные игры имели простую геометрию. Этот параметр стали учитывать после появления в DirectX 11 тесселяции. Не понимаете, о чем я? Давайте по порядку.

Является средой (набором инструментов) для написания игр. Чтобы вы ориентировались в теме, скажу, что последняя версия продукта - 12-я, которая вышла в 2015 году.

Тесселяция - это деление плоскости на части для заполнения их новой информацией, что повышает реализм игры.

Таким образом, если вы захотите с головой окунуться в атмосферу Metro 2033, Crysis 2, HAWX 2 и т. п., при выборе GPU учитывайте количество геометрических блоков.

Память

Собрались брать новую видеокарту? Значит, вам нужно учесть еще несколько характеристик оперативки:

  • Объем. Важность RAM несколько переоценена, так как не только ее емкость, но также тип и свойства влияют на производительность карты.
  • Ширина шины. Это более весомый параметр. Чем шире, тем больше информации сможет отправить память чипу и наоборот за определенное время. Для воспроизведения игр необходимо минимум 128 бит.
  • Частота. Тоже определяет пропускную способность оперативки. Но учтите, что память с 256-битной шиной и частотой 800(3200) МГц работает продуктивнее, чем со 128 битами на 1000(4000) МГц.
  • Тип. Не буду грузить вас лишней информацией, а лишь назову оптимальные на сегодня типы - это GDDR 3 и 5 поколения.

Немного об охлаждении

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

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

Конечно, современные видеокарты оснащаются защитной системой, которая вроде бы не допускает перегрева. Для разных моделей предельная температура отличается. В среднем, она составляет 105 °C, после чего адаптер сам выключается. Но лучше поберечь дорогой девайс и обеспечить вспомогательное охлаждение.

Немецкого исследователя об использовании вычислений 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, но не каждый знает, что это такое. Это компонент , который входит в состав видеокарты . Иногда его называют видеокарта, но это не правильно. Графический процессор занимается обработкой команд, которые формируют трехмерное изображение. Это основной элемент, от мощности которого зависит быстродействие всей видеосистемы.

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

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

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

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