Российские процессоры. Что известно о российских микропроцессорах «Эльбрус»


Вокруг Эльбруса ходит много мифов. Вы можете встретить их в комментариях к любому посту или статье про Эльбрус. Основные категории мифов можно свести к трем вопросам:

1. Является ли Эльбрус отечественным? Отечественный значит безопасный?
2. Какова производительность? Насколько «современен» компьютер на базе Эльбрус.
3. Сколько он стоит?

Каждый вопрос имеет два противоположных ответа. От «китайское купленное» до «все наше». От «мой телефон быстрее» до «еще немножко и обгоним Интел».

Хотелось бы прояснить откуда растут уши всех этих мифов. Причина по большому счету одна: компания МЦСТ - их закрытость, молчаливость и, в худших традициях российской действительности, склонность к завышению и легкому привиранию. При подготовке этой статьи я столкнулся с тем, что вся информация на новостных и железных ресурсах крутится вокруг скупых пресс-релизов МЦСТ. Новую информацию «сверху» найти очень сложно. Надо рыть, читать между строк и копать еще глубже. Само МЦСТ на электронные письма и заказы не отвечает. Найти на сайте контакты - попробуйте!

Бравурные речи «пятилетку в три дня», как и рассказы про «догоним и перегоним» идут оттуда же. Достаточно перечитать пресс-релизы за 2013-2015 год. Сейчас у нас должно быть серийное производство новейших компьютеров на базе Эльбрус-16С. Вы его видите? И я нет!

Про хитрости с технологическими процессами производства можно прочитать в этой статье на Хабре.

Чтобы уйти от абстракции и развенчивать мифы чем-то конкретным, возьмем АРМ (Автоматизированное Рабочее Место) Эльбрус-401. Этот компьютер выпускается мелкосерийно. Даже, кажется, доступен для заказа на сайте. Формально.
Характеристики взяты с официального сайта.

Параметр Значение
Микропроцессор Эльбрус-4С (1891ВМ8Я)
Количество процессоров 1
Рабочая тактовая частота процессора, Мгц 800
Пиковая производительность, Гфлопс 50
Оперативная память, Гбайт 24 (до 96), поддержка коррекции ошибок (ЕСС)
Видеоподсистема Интегрированная видеокарта на основе СБИС Silicon Motion SM718
Поддерживает 2D ускорение, масштабирование видео
16 МБ видеопамяти, подключение к шине PCI
Выход VGA, DVI Разрешение до 1920 x 1080
3D видеокарта AMD Radeon серии 6000
Подключение к шине PCI Express
Дисковая подсистема Жесткий диск SATA 2.0 1000 ГБ, 3.5" (до 2 дисков)
Разъем для карты CompactFlash на плате
mSATA диск на плате ёмкостью 120 ГБ
Встроенный привод DVD-RW привод. Поддержка двухслойных дисков
Сетевые интерфейсы Поддержка работы при скоростях передачи данных в 10/100/1000 Мбит/с
Звук Интегрированная звуковая карта AC-97 (стерео)
Порты ввода/вывода USB 2.0: 4 разъема на задней панели, 2 разъема на передней панели. 2 внутренних порта на материнской плате
1 разъем Gigabit Ethernet (10/100/1000 Mb/s)
1 выход DVI+VGA (совмещенный). Возможно подключение двух мониторов через переходник (в комплекте)
1 порт RS-232 внешний, 1 порт RS-232 внутренний
разъёмы для подключения аудио (вход/выход, стерео)

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

Итак, насколько отечественный и безопасный получился компьютер?

Наиболее отечественным получился процессор. Его архитектура и результирующие блоки - полностью отечественная разработка. Рассчитывался и эмулировался он на FPGA Stratix V. Скорее всего, на ПО Quartus.

Сейчас одна микросхема EP2S180 стоит около 8К$. Так что стоимость только микросхем FPGA в прототипе превышает 50К$.
Для прототипирования процессора Эльбрус-4C+ потребовалась уже 21 микросхема Altera Stratix IV EP4SE820 и с суммарным объемом в 100 млн. вентилей (хотя сам МЦСТ приводит цифру в 750 млн) и стоимостью около 200К$. При этом рабочая частота прототипа 9 Мгц.

Первый нюанс: какие Гигафлопсы приведены? Теоретические, по тесту LINPACK? Информации нет.

Второй. Есть маленькая хитрость: если посмотреть на архитектуру, то мы увидим, что в ядре есть DSP процессор. В характеристиках прошлой версии процессора четко указывалось, что суммарная производительность состоит из Гигафлопсов основного ядра плюс ядро DSP. Например можно по сравнивать Описания на сайте МЦСТ Монокуб на базе процессора Эльбрус-2С+ и Сам процессор .

Но в реальных повседневных приложениях от DSP процессора мало толку. Они будут хороши при обработке сигналов и шифровании.

Здесь мы опять утыкаемся в проблему закрытости. Если у кого и есть в наличии АРМ, то тесты он не проводит, либо результаты не выкладывает.

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

Кому лень ходить, суть такова. Берется Intel Core i7-2600 (3,4 ГГц) и Эльбрус-4С. Меня заинтересовали следующие.

Получается, что единственные «реальные» тесты с 7z архивом показывают, что АРМ серьезно проигрывает. Не как должно быть по Гигафлопсам, всего в два раза, а в 5,5 раз на сжатии и почти в 4 раза на распаковке (я считал по MIPS, потому что памяти различны). Кстати, смешат выводы и попытки «натянуть сову на глобус». Такое ощущение, что ресурсу дали Эльбрус с условием написания положительного отзыва.

25.05.2017, ЧТ, 11:45, Мск, Текст: Владимир Бахур

«Ростех» показал первые образцы ПК и серверов на отечественных 8-ядерных 64-битных процессорах «Эльбрус 8С». Установочные партии первых серверов на новых чипов ожидаются к концу 2017 г.

Первые образцы работающих ПК и серверов

Объединенный холдинг «Росэлектроника» (входит в «Ростех») в рамках конференции «ЦИПР 2017» в Иннополисе (Татарстан) представил первые образцы персональных компьютеров и серверов на базе микропроцессоров «Эльбрус-8С». Новая отечественная техника, по данным разработчиков, имеет повышенную производительность и гарантирует пользователям высокий уровень защиты информации. Новые серверы предназначены для обработки больших объемов информации, в том числе в режиме реального времени.

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

«Это новое поколение отечественной вычислительной техники. Все этапы сборки осуществляются на наших производственных площадках и на предприятиях отечественных партнеров. Все это гарантирует высокий уровень информационной безопасности оборудования, -- сказал заместитель гендиректора «Росэлектроники» Арсений Брыкин . -- Мы ожидаем, что первая опытная партия персональных компьютеров на основе нового процессора будет готова уже к концу II квартала 2017 года. Образцы нового оборудования мы представляем сегодня на конференции "ЦИПР" в Иннополисе».

Чипы «Эльбрус-8С» в 4-процессорной серверной системе

В составе объединенной «Росэлектроники» разработку и внедрение программно-аппаратных платформ «Эльбрус» ведет Институт электронных управляющих машин (ИНЭУМ) им. И. С. Брука. Разработкой и производством процессором «Эльбрус-8С» занимается компания МЦСТ. Первые образцы процессоров «Эльбрус-8С» для лабораторных экспериментов были получены в конце 2014 г. Массовое производство процессоров будет производиться с соблюдением норм 28-нанометрового технологического процесса.

Установочная партия 2- и 4-процессорных серверов на основе «Эльбрус-8С», согласно данным «Росэлектроники», будет выпущена к концу 2017 г.

Технические подробности

Универсальные микропроцессоры «Эльбрус-8С» являются полностью российской разработкой. Кристалл каждого процессора имеет 8 процессорных ядер с улучшенной 64-разрядной архитектурой «Эльбрус» третьего поколения, кэш-память L2 суммарным объемом 4 МБ (8 х 512 КБ) и кэш-память L3 объемом 16 МБ.

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

Архитектура процессора «Эльбрус-8С»

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

Рабочая частота процессоров «Эльбрус-8С» 1,3 ГГц, вычислительная мощность составляет порядка 250 гигафлопс на чип на операциях с одинарной точностью (FP32).

По сравнению с 4-ядерными процессорами «Эльбрус-4С», пиковая производительность новых чипов процессора «Эльбрус-8С», по данным разработчиков, выше в 3-5 раз, пропускная способность каналов ввода-вывода выше в 8 раз.

Процессор «Эльбрус-8С»

Процессоры «Эльбрус-8С» рассчитаны на работу с памятью стандарта DDR3-1600 с поддержкой ECC (до 4контроллеров памяти). Возможна организация многопроцессорных систем с поддержкой до 4 процессоров в системе; для поддержки кэш-когерентности реализована фильтрация снупирования. Для межпроцессорного обмена предусмотрено 3 дуплексных канала с пропускной способностью 16 ГБ/с каждый (8 ГБ/с в каждую сторону).

Процессоры «Эльбрус-8С» совместимы с контроллером периферийных интерфейсов («южный мост» КПИ-2). Чипы КПИ-2 поддерживают шину PCI-Express 2.0 (PCI-Express 16 + 4 линий), 3 порта Gigabit Ethernet, до 8 устройств SATA 3.0, до 8 портов USB 2.0, до 7 устройств в шиной PCI 32/66, а также интерфейсы IDE, Audio HDA, RS-232, IEEE1284, SPI, I2C и GPIO.

Для платформы «Эльбрус-8С» предусмотрена система двоичной совместимости с бинарными кодами x86/х86-64. Также обеспечена возможность разработки прикладного ПО, тесты для самодиагностики аппаратуры.

Базовой операционной системой для платформы «Эльбрус» является ОС «Эльбрус» на базе ядра Linux. Система программирования платформы поддерживает языки С, С++, Java, Фортран-77, Фортран-90.

Восьмиядерный процессор «Эльбрус-8С», выпускаемый по технологическому процессу 28 нм, был представлен на четвёртой конференции «ИТ на службе оборонно-промышленного комплекса». Крупнейшее специализированное мероприятие, объединяющее разработчиков и ИТ-специалистов ВПК, началось вчера в г. Иннополис (Республика Татарстан) и продлится до 29 мая.

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

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

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

Разработку «Эльбрус-8С» ведёт Институт электронных управляющих машин (ИНЭУМ) имени И. С. Брука при участии компании МЦСТ. Его характеристики выглядят так:

  • площадь кристалла 350 кв. мм;
  • восемь идентичных процессорных ядер без гипертрединга;
  • кэш второго уровня 512 KB на ядро;
  • кэш третьего уровня – общий, 16 МБ;
  • собственная архитектура «Эльбрус», разработанная в ЗАО «МЦСТ»;
  • система команд с векторными ускорителями и инструкциями для ускорения математических расчётов, шифрования и обработки сигналов. Они не выделяются в отдельные расширения, а предусмотрены изначально;
  • система оптимизирующей двоичной трансляции кода обеспечивает совместимость с архитектурами x86 / x86-64 при лицензионной независимости от Intel и достижении производительности на уровне 80% от нативной;
  • возможность прямого исполнения команд без двоичной трансляции в двадцати дистрибутивах ОС и свыше тысячи популярных приложений (список быстро пополняется);
  • встроенные механизмы защиты от запуска вредоносного кода: структурированная память с доступом к объектам через дескрипторы и контекстной защитой по языковым областям видимости; определение нарушения границ объекта (переполнения буфера), использования неинициализированных данных и опасных отклонений от стандартов программирования.
  • поддержка четырёх слотов памяти стандарта PC3‑12800 (DIMM DDR3-1600);
  • исполнение 30 операций за такт;
  • тактовая частота 1.3 ГГц – планируемый частотный потолок, при котором возможна стопроцентная загрузка всех восьми ядер неограниченно долгое время в стандартных условиях. Для работы в неблагоприятных (и особенно – полевых) условиях эксплуатации для защиты от перегрева будет реализована схема автоматического снижения частоты (аналог throttling) и (временное) программное отключение отдельных ядер средствами операционной системы;
  • пиковая производительность 250 Гфлопс на вычислениях с плавающей запятой одинарной точности (FP32) при полной загрузке всех блоков FPU;
  • рассеиваемая мощность на уровне 60 – 90 Вт (расчётные показатели);
  • процессор распаивается прямо на плате, что позволяет снизить затраты на корпусировку чипов и их отбраковку.

Работать «Эльбрус-8С» будет в паре с контроллером периферийных интерфейсов отечественной разработки – КПИ-2.

В этой микросхеме, пока выпускаемой по технологическому процессу 65 нм, реализована поддержка 20 линий шины PCI-Express 2.0 (8+8+4), трёх гигабитных сетевых контроллеров Ethernet, восьми портов SATA v.3.0 и восьми портов USB 2.0. Скорость обмена данными с процессором у КПИ-2 составляет 16 Гбайт/с.

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

Аппаратная часть взаимодействует с операционной системой через собственный микрокод BIOS. Возможна работа с дистрибутивами Linux, FreeBSD, QNX, Windows XP, но для ответственных сфер применения рекомендуется ОС «Эльбрус» на базе ядра Linux 2.6.33. Коллективом МЦСТ проделана огромная работа по созданию ОС реального времени с собственными механизмами обработки прерываний, синхронизации, управления памятью и поддержки тегированных вычислений. Всё это направлено на раскрытие потенциала архитектуры отечественного процессора и защиты от распространённых эксплоитов.

Оптимизация кода программ с учётом архитектуры «Эльбрус» достигается за счёт применения специализированных средств разработки: оптимизирующих компиляторов с языков C и C++, Фортран и Java, отладчики, средства и библиотеки для распараллеливания вычислений. Среди последних возможно использование интерфейса передачи сообщений между процессами (MPI) и открытого стандарта OpenMP.


Развитие процессоров “Эльбрус”.

Уже создаются служебные программы и вспомогательные компоненты, оптимизированные для выполнения на процессорах «Эльбрус». Это утилиты, сервисы, библиотеки общего назначения, поддержка баз данных, графическая подсистема (на базе Xorg, GTK+ и Qt), средства для работы с сетью и периферийными устройствами.

Первоочередная задача – выполнить импортозамещение на ключевых объектах ВПК и стратегически важных объектах российской инфраструктуры. «Компьютерра» уже о технической возможности создать троянскую закладку аппаратного уровня в процессорах Intel архитектуры Ivy Bridge, которую исключительно сложно обнаружить. Эта работа исследователей проводилась на базе университета штата Массачусетс и позиционировалась как доказательство концепции – подобные закладки можно создавать и в других процессорах.

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

Государственные испытания процессора «Эльбрус-8С» назначены на конец этого года. В случае их успешного прохождения серийный выпуск начнётся уже в 2016 году. Пока речь идёт скорее о мелкосерийном производстве на уровне порядка 50 тысяч процессоров в год, но это уже огромный шаг для российской микроэлектроники.

«В конце этого – начале следующего года «Т-Платформы» должны завершить работу над новым процессором «Байкал-М», а в 2018 году мы планируем представить «Эльбрус-16С» на той же технологии 28 Нм, с частотой 1,5 ГГц и производительностью уже свыше 512 ГФлопс», – озвучивает ближайшие планы Александр Якунин. Уже известно, что следующий процессор «Эльбрус» будет исполнять 50 операций за такт. Его расчётная производительность будет выше, чем у «Эльбрус-8С» в 2,5 раза.

В статье использованы материалы ОАО “Объединенная приборостроительная корпорация”.

Ответ редакции

«Эльбрус» — это многоядерный универсальный высокопроизводительный микропроцессор с уникальной , разработанный ЗАО «МЦСТ».

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

Где используют процессор?

Основные сферы применения процессора:

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

Что представляет собой микропроцессор «Эльбрус-4С»?

«Эльбрус-4С» — четырёхъядерный процессор, работающий на частоте 800 МГц, который поддерживает работу с тремя каналами памяти. Также имеется кэш-память общим объёмом 8 Мегабайт. Процессор произведён по технологии 65 нанометров, его среднее энергопотребление составляет 45 Ватт.

«Это универсальный микропроцессор, который характеризуется уникальными особенностями своей архитектуры. В зависимости от предназначения конкретной техники, её можно применять в жёстких условиях. Например, некоторую технику можно погружать в воду, на некоторой можно работать на Северном полюсе или же использовать при температуре ниже 40 градусов», — рассказал АиФ.ru главный конструктор ВК «Эльбрус 401-PC» Василий Воробушков .

В чём уникальность микропроцессора?

Архитектура микропроцессоров на базе «Эльбрус» позволяет:

На какой операционной системе работает микропроцессор?

Базовой операционной системой «Эльбрус» является ОС «Эльбрус», построенная на базе Linux. Система программирования платформы поддерживает языки С, С++, Java, .

Где производятся микропроцессоры «Эльбрус»?

Микропроцессоры «Эльбрус-2СМ», «Эльбрус-4С» и другие производятся на зеленоградских предприятиях «Ангстрем» и «Микрон». Новейший микропроцессор «Эльбрус-8С» выпускается на Тайване, на фабрике TSMC, поскольку в России микроэлектронных производств с технологией 28 нанометров на сегодняшний день не существует.

Материнская плата на базе микропроцессора Эльбрус 4с. Кадр youtube.com

Где можно приобрести технику на базе процессора «Эльбрус»?

Как утверждает помощник гендиректора по маркетингу «МЦСТ» Константин Трушкин , в компании пока не видят возможности продажи техники для частных лиц. Заказы принимаются только от юридических лиц (компаний).

Сколько стоит техника на базе процесса «Эльбрус»?

АиФ.ru не располагает информацией о цене вычислительной техники разработки МЦСТ. Как сообщает издание TJournal, стоимость персонального компьютера «Эльбрус-401» из первой тестовой партии обойдётся заказчикам по цене около 200 тысяч рублей.

В компании МЦСТ говорят, что стоимость продукции может снизиться при условии увеличения производства. «Краеугольным фактором, определяющим цену, является серийность изделия. Если изделие является уникальным или же предназначено для выполнения каких-то специфических задач, то стоимость на него низкой не будет никогда ни у нас, ни у кого-либо ещё. Если вы посмотрите в интернете на цену индустриальной вычислительной техники, производимой за рубежом, например компании General Electric, то будете приятно удивлены. Когда, к примеру, стоимость индустриальной видеокарты составляет 7 тысяч евро. И это только одна видеокарта, обратите внимание. Если речь идёт о каком-то массовом рынке вычислительной техники, то здесь всё упирается в серийность изготовления. Если есть возможность выйти на серию свыше 10 тысяч штук, то можно достичь вполне конкурентоспособной цены», — заявил Воробушков.

*Архитектура — основная компоновка частей компьютера и связь между ними.

**Аппаратная закладка — устройство, которое способно вмешаться в работу вычислительной системы. Результатом её работы может быть как полное выведение системы из строя, так и нарушение её нормального функционирования, например несанкционированный доступ к информации, её изменение или блокирование. К примеру, военная техника, использующая иностранный микропроцессор, в какой-то момент может полностью отключиться, получив команду на запуск соответствующей «программы-закладки». В документах, опубликованных Сноуденом, в Агентстве национальной безопасности США имеется специальное подразделение Tailored Access Operations (TAO), которое занимается различными методами наблюдения за компьютерами с использованием «закладок».

***Такт процессора, или такт ядра процессора — промежуток между двумя импульсами тактового генератора, который синхронизирует выполнение всех операций процессора.

**** Фортран-77 и Фортран-90 (Formula Translator или же «переводчик формул») — стандарт язык программирования, имеет несколько стандартов, основными из которых являются 77 и 90. Фортран-77 был принят в апреле 1978 года, Фортран-90 утверждён в 1992 году.

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



    Эльбрус-8С - новый 8-ядерный процессор МЦСТ с VLIW-архитектурой. Мы тестировали инженерный образец с частотой 1.3 ГГц. Возможно, в серийном выпуске она еще возрастет.



    Приведем сравнение характеристик Эльбрус-4С и Эльбрус-8С.


    Эльбрус-4С Эльбрус-8С
    Тактовая частота, МГц 800 1300
    Число ядер 4 8
    Число операций за такт (на ядро) до 23 до 25
    L1 кэш, на ядро 64 Кб 64 Кб
    L2 кэш, на ядро 2 Мб 512 Кб
    L3 кэш, общая - 16 Мб
    Организация оперативной памяти До 3 каналов DDR3-1600 ECC До 4 каналов DDR3-1600 ECC
    Технологический процесс 65 нм 28 нм
    Количество транзисторов 986 млн. 2730 млн.
    Ширина SIMD инструкции 64 бита 64 бита
    Поддержка многопроцессорных систем до 4 процессоров до 4 процессоров
    Год начала производства 2014 2016
    Операционная система ОС “Эльбрус” 3.0-rc27 ОС “Эльбрус” 3.0-rc26
    Версия компилятора lcc 1.21.18 1.21.14

    В Эльбрус-8С более чем в полтора раза повысились тактовая частота, вдвое увеличилось число ядер, а также произошло усовершенствование самой архитектуры.


    Так, например, Эльбрус-8С может исполнять до 25 инструкций за 1 такт без учета SIMD (против 23 у Эльбрус-4С).


    Важно : нами не проводилось никакой специальной оптимизации под Эльбрус-8С. Была задействована библиотека EML, однако объем оптимизаций под Эльбрус в наших проектах сейчас явно меньше, чем под другие архитектуры: там он постепенно наращивался в течение нескольких лет, а платформой Эльбрус мы занимаемся не так давно и не столь активно. Основные времязатратные функции, конечно же, были оптимизированы, но вот до остальных пока не дошли руки.

    Распознавание паспорта РФ

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


    Предоставленная нам версия ОС Эльбрус и компилятора lcc не потребовали никаких специальных изменений в исходном коде и мы без каких-либо трудностей собрали наш проект. Отметим, что в новой версии появилась полная поддержка С++11 (она также появилась и в свежих версиях lcc для Эльбрус-4С), что не может не радовать.


    Для начала мы решили проверить, как работает распознавание паспорта РФ, о котором мы уже писали , на Эльбрус-8С. Мы провели тестирование в двух режимах: поиск и распознавание паспорта на отдельном кадре (anywhere-режим) и на видеоролике, снятом с веб-камеры (webcam-режим). В anywhere режиме распознавание разворота паспорта выполняется на одном кадре, причем паспорт может находиться в любой части кадра и быть произвольным образом ориентированным. В режиме webcam выполняется распознавание только страницы паспорта с фото, причем обрабатывается серия кадров. При этом предполагается, что строки паспорта горизонтальны и паспорт слабо смещается между кадрами. Полученная с разных кадров информация интегрируется для повышения качества распознавания.


    Для тестирования мы взяли по 1000 изображений для каждого из режимов и замеряли среднее время работы распознавания (т.е. время без учета загрузки картинки) при запуске в 1 поток и запуске с распараллеливанием. Полученное время работы приведено ниже в таблице.



    Результаты для однопоточного режима вполне соответствуют ожидаемым: помимо ускорения за счет повышения частоты (а кратность частот 4С и 8С равна 1300 / 800 = 1.625), заметно небольшое ускорение за счет усовершенствования архитектуры.


    В случае запуска на максимальном числе потоков ускорение для обоих режимов составило 1.7. Казалось бы, число ядер в Эльбрус-8С вдвое больше, чем в 4С. Так где же ускорение за счет дополнительных 4 ядер? Дело в том, что наш алгоритм распознавания активно задействует только 4 потока и слабо масштабируется дальше, поэтому прирост производительности совсем незначительный.


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



    Для anywhere-режима полученное ускорение приблизилось к ожидаемому ускорению в ~3.6 раза, не дотянув до него из-за того, что мы учитывали время загрузки картинки из файла. В случае с webcam-режимом влияние времени загрузки еще больше и поэтому ускорение получилось более скромным - 2.5 раза.

    Детекция автомобилей

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


    Для нашего примера мы решили взять задачу детекции автомобилей, движущихся в попутном направлении. Подобный детектор может использоваться в системах автоматического управления транспортными средствами, в системах распознавания автомобильных номеров и т.д. Не долго думая, мы отсняли видео для обучения и тестирования с помощью авторегистратора неподалеку от нашего офиса. В качестве детектора мы использовали каскадный классификатор Виолы-Джонса . Дополнительно мы применили экспоненциальное сглаживание положений найденных автомобилей для тех из них, которые мы наблюдаем несколько кадров подряд. Стоит отметить, что детектирование выполняется только в прямоугольнике ROI (region of interest), который занимает не весь кадр, поскольку малоосмысленно пытаться детектировать внутренности нашего автомобиля, а также машины, не полностью попадающие в кадр.


    Таким образом, наш алгоритм состоял из следующих шагов:

    1. Вырезание прямоугольника ROI по центру кадра.
    2. Преобразование цветного изображения ROI в серое.
    3. Предпосчет признаков Виолы-Джонса.
      На этом этапе изображение подвергается масштабированию, строятся карты вспомогательных признаков (например, направленных границ), а также вычисляются кумулятивные суммы по всем признакам для быстрого подсчета хааровских вэйвлетов.
    4. Запуск классификатора Виолы-Джонса на множестве окон.
      Здесь с некоторым шагом перебираются прямоугольные окна, на которых запускается классификатор. Если классификатор выдал положительный ответ, то произошла детекция объекта, т.е. изображение внутри окна соответствует автомобилю. В этом случае выполняется уточнение области изображения, в которой находится объект: в окрестности первичной детекции выделяются окна того же размера, но с меньшим шагом и также подаются на вход классификатора. Все найденные объекты сохраняются для дальнейшей обработки. Данная процедура повторяется для нескольких масштабов входного изображения.
      Этот этап собственно и составляет основную вычислительную сложность задачи и распараллеливание было произведено именно для него. Мы использовали библиотеку tbb для автоматического выбора эффективного числа потоков.
    5. Обработка массива детекций, полученного после применения детектора. Поскольку ряд полученных детекций могут быть очень близкими и отвечать одному и тому же объекту, мы объединяем детекции, имеющие достаточно большую площадь пересечения. В результате получаем массив прямоугольников, которые указывают положение обнаруженных автомобилей.
    6. Сопоставление детекций на предыдущем и текущем кадрах. Мы считаем, что был задетектирован один и тот же объект, если площадь пересечения прямоугольников составляет больше половины от площади текущего прямоугольника. Выполняем сглаживание положения объекта по формулам:
      x i = x i + (1-α)x i -1
      y i = y i + (1-α)y i -1
      w i = w i + (1-α)w i -1
      h i = h i + (1-α)h i -1
      где (x , y )--- координаты верхнего левого угла прямоугольника, w и h - его ширина и высота соответственно, а α - постоянный коэффициент, подобранный экспериментально.


    Здесь и далее для оценки fps (frame per second) использовалось среднее время работы по 10 запускам программы. При этом учитывалось только время обработки изображений, поскольку сейчас мы работали с записанным роликом, и изображения просто загружались из файла, а в реальной системе они могут, например, поступать с камеры. Оказалось, что детекция работает с весьма приличной скоростью, выдавая 15.5 fps на Эльбрус-4С и 35.6 fps на Эльбрус-8С. На Эльбрус-8С загрузка процессора оказывается далеко не полной, хотя в пике задействованы все ядра. Очевидно, это связано с тем, что не все вычисления в этой задаче были распараллелены. Например, перед применения детектора Виолы-Джонса мы выполняем достаточно тяжеловесные вспомогательные преобразования каждого кадра, а эта часть системы работает последовательно.


    Теперь пришло время демонстрации. Интерфейс приложения и отрисовка выполнены с помощью стандартных средств Qt5. Никакой дополнительной оптимизации не проводилось.


    Эльбрус-4С



    Эльбрус-8С


    Визуальная локализация

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


    Сначала мы обработали базу панорам с GPS-координатами. Мы взяли 660 изображений, покрывающих приблизительно 0.4 км^2 московских улиц:




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

    1. Нашли особые точки для 3 масштабов кадра (сам кадр, уменьшенный в 4/3 раза кадр и уменьшенный вдвое кадр) алгоритмом YAPE (Yet Another Point Detector) и посчитали для них RFD-дескрипторы .
    2. Сохранили его координаты, набор особых точек, их дескрипторы. Поскольку затем мы будем сравнивать дескрипторы особых точек текущего кадра со значениями дескрипторов из нашей базы, удобно хранить дескрипторы в дереве, используя расстояние Хэмминга в качестве метрики. Общий размер сохраненных данных оказался чуть больше 15 Мб.

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

    1. Преобразование цветного изображения в серое.
    2. Выполнение автоконтраста.
    3. Поиск особых точек для трех масштабов кадра (также с коэффициентами 1, 0.75 и 0.5) с помощью алгоритма YAPE и подсчет для них RFD-дескрипторов. Эти алгоритмы частично распараллелены, однако довольно большая часть вычислений осталась последовательной. Кроме того, они пока не оптимизировались под платформу Эльбрус.
    4. Для полученного набора дескрипторов выполняется поиск похожих дескрипторов среди сохраненных в дереве, и происходит определение несколько наиболее похожих кадров. Для различных дескрипторов поиск в дереве распараллелен с помощью tbb. При этом для первых 5 кадров видео мы выбираем 10 ближайших кадров, а затем берем только 5 кадров.
    5. Выбранные кадры проходят дополнительную фильтрацию, чтобы убрать “выбросы”, ведь траектория транспортного средства обычно непрерывна.

    Входные данные: последовательность цветных кадров размера 800х600 пикселей.


    Такая система выдает 3.0 fps на Эльбрус-4С и 7.2 fps на Эльбрус-8С.


    Покажем, как же оно работает:


    Эльбрус-4С



    Эльбрус-8С


    Заключение

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



    Результаты для распознавания паспорта получились довольно скромные, поскольку наше приложение в своем текущем виде не может эффективно задействовать более 4 потоков. Похожая ситуация с детекцией автомобилей и визуальной локацией: алгоритмы имеют нераспараллеленные участки, поэтому не приходится ожидать линейного масштабирования при росте числа ядер. Однако там, где нет ограничений на загрузку приложениями всех ядер процессора, мы наблюдаем рост в 3.2 раза, это близко к теоретическому пределу в 3.6 раз. В среднем разница производительности между поколениями процессоров МЦСТ на нашем наборе задач составляет порядка 2-3 раз, и это очень радует. Только за счёт увеличения частоты и совершенствования архитектуры мы наблюдаем выигрыш более чем в 1.7 раза. МЦСТ быстро нагоняет Intel с ее стратегией в добавлении 5% в год.


    В процессе тестов под полной нагрузкой мы не испытывали проблем с зависаниями и падениями, что говорит о зрелости процессорной архитектуры. Подход VLIW, развиваемый в Эльбрусах-8С, позволяет добиваться работы в реальном времени различных алгоритмов компьютерного зрения, а библиотека EML содержит весьма солидный набор математических функций, которые позволяют экономить время тем, кто не собирается оптимизировать код сам. В заключение мы провели еще один эксперимент, запустив сразу 3 демонстрации (локализацию, поиск машин и поиск лиц) на одном процессоре Эльбрус-8С и получив среднюю загрузку процессора около 80%. Тут уж без комментариев.



    Хотим сказать большое спасибо компании и сотрудникам МЦСТ и ИНЭУМ Брука за возможность попробовать Эльбрус-8С и поздравить их - восьмерка более чем достойный процессор и пожелать им успехов!

  • ocr-технологии
  • Добавить метки




    

    2024 © gtavrl.ru.