ARM процессор - мобильный процессор для смартфонов и планшетов. ARM процессор - мобильный процессор для смартфонов и планшетов Сравнение процессоров гигафлопс

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

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

С самых ранних пор для того чтобы измерять производительность того или иного компьютера, решили использовать количество выполняемых операций с плавающей точкой за 1 секунду времени. На практике это оказалось действительно весьма показательным результатом. Единицу измерения 1 операции назвали Flops (Флопс). Однако компьютеры являются весьма производительными устройствами, поэтому перед флопс используется приставка кило/мега/Гига/Пета/Экса и тд. Каждая перечисленная операция больше предыдущей в 1000 раз. Для конечной оценки выдаются результаты Флопс/с, т.е. флопс в секунду. Если вы хотите почитать про Flops больше, то вам сюда .

Замер производительности персонального ПК

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

Из возможных интерфейсов есть анализ производительности через командную строку, через компиляторы Фортран и С++ и тд. Но мы пойдём более лёгким путём и будем использовать уже скомпилированный exe файл программв Linpack, которая является самой популярной в замерах производительности компьютеров на Windows.

Ниже мы представляем вашему вниманию 2 версии программы Linpack, которая поможет вам определить сколько ваш компьютер делает операций с плавающей точкой в секунду времени.

Как проверить?

Сначала распакуйте архив и запустите программу (файл LinX.exe). Интерфейс программы очень прост и вы легко с ним разберётесь. Для начала зайдите в настройки и дайте пргграмме самый высокий приоритет. После этого постарайтесь выключить ресурсоёмие программы. В интерфейсе LinX вы можете выбрать сколько раз или минут проводить тест и каким объёмом данных орудовать во время его проведения. Когда все настройки выставлены - жмите Тест . После завершения вы скорее всего увидите результат в GFlops/s (Гигафлопсов в секунду).

Для того чтобы представлять сколько это: 1 Флопс=1 Операция с плавающей точкой; 1ГФлопс= 1 000 000 000 Операций с плавающей точкой.

Несмотря на то, что VTune имеет множество встроенных профилей, специального профиля для измерения FLOPS у него пока нет. Но никто не мешает нам создать наш собственный пользовательский профиль за 30 секунд. Не утруждая вас основами работы с интерфейсом VTune (их можно изучить в прилагающимся к нему Getting Started Tutorial), сразу опишу процесс создания профиля и сбора данных.

  1. Создаем новый проект и указываем в качестве target application наше приложение matrix .
  2. Выбираем профиль Lightweight Hotspots (который использует технологию сэмплирования счетчиков процессора Hadware Event-based Sampling) и копируем его для создания пользовательского профиля. Обзываем его My FLOPS Analysis.
  3. Редактируем профиль, добавляем туда новые процессорные счетчики событий процессора Sandy Bridge (Events). На них остановимся чуть подробнее. В их названии зашифрованы исполнительные устройства (x87, SSE, AVX) и тип данных, над которыми выполнялась операция. Каждый такт процессора счетчики складывают количество вычислительных операций, назначенных на исполнение. На всякий случай мы добавили счетчики на все возможные операции с FP:
  • FP_COMP_OPS_EXE. SSE_PACKED_DOUBLE – векторы (PACKED) данных двойной точности (DOUBLE)
  • FP_COMP_OPS_EXE. SSE_PACKED_SINGLE – векторы данных одинарной точности
  • FP_COMP_OPS_EXE. SSE_SCALAR_DOUBLE – скалярые DP
  • FP_COMP_OPS_EXE. SSE_ SCALAR _SINGLE – скалярные SP
  • SIMD_FP_256.PACKED_DOUBLE – векторы AVX данных DP
  • SIMD_FP_256.PACKED_SINGLE – векторы AVX данных SP
  • FP_COMP_OPS_EXE.x87 – скалярые данные x87
Нам остается только запустить анализ и подождать результатов. В полученных результатах переключаемся в Hardware Events viewpoint и копируем количетво events, собранных для функции multiply3 : 34,648,000,000.

Далее мы просто подсчитываем значения FLOPS по формулам. Данные у нас были собраны для всех процессоров, поэтому умножение на их количество здесь не требуется. Операции данными двойной точности выполняются одновременно над четырмя 64-битными DP операндами в 256-битном регистре, поэтому умножаем на коэффициент 4. Данные с одинарной точностью, соответственно, умножаем на 8. В последней формуле не умножаем количество инструкций на коэффициент, так как операции сопроцессора x87 выполняются только со скалярными величинами. Если в программе выполняется несколько разных типов FP операций, то их количество, умноженное на коэффициенты, суммируется для получения результирующего FLOPS.

FLOPS = 4 * SIMD_FP_256.PACKED_DOUBLE / Elapsed Time
FLOPS = 8 * SIMD_FP_256.PACKED_SINGLE / Elapsed Time
FLOPS = (FP_COMP_OPS_EXE.x87) / Elapsed Time

В нашей программе выполнялись только AVX инструкции, поэтому в результатах есть значение только одного счетчика SIMD_FP_256.PACKED_DOUBLE.
Удостоверимся, что данные события собраны для нашего цикла в функции multiply3 (переключившись в Source View):

FLOPS = 4 *34.6Gops/7s = 19.7 GFlops
Значение вполне соответствует оценочному, подсчитанному в предыдущем пункте. Поэтому с достаточной долей точности можно говорить о том, что результаты оценочного метода и измерительного совпадают. Однако, существуют случаи, когда они могут не совпадать. При определенном интересе читателей, я могу заняться их исследованием и рассказать, как использовать более сложные и точные методы. А взамен очень хочется услышать о ваших случаях, когда вам требуется измерение FLOPS в программах.

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

ARM процессор - мобильный процессор для смартфонов и планшетов.

В этой таблице представлены все известные на сегодняшний день ARM процессоры. Таблица ARM процессоров будет дополнятся и модернизироваться по мере появления новых моделей. В данной таблице используется условная система оценки производительности CPU и GPU. Данные о производительности ARM процессоров были взяты из самых разных источников, в основном исходя из результатов таких тестов, как: PassMark , Antutu , GFXBench .

Мы не претендуем на абсолютную точность. Абсолютно точно ранжировать и оценить производительность ARM процессоров невозможно, по той простой причине, что каждый из них, в чем-то имеет преимущества, а в чем-то отстает от других ARM процессоров. Таблица ARM процессоров позволяет увидеть, оценить и, главное, сравнить различные SoC (System-On-Chip) решения. Воспользовавшись нашей таблицей, Вы сможете сравнить мобильные процессора и достаточно точно узнать, как позиционируется ARM-сердце Вашего будущего (или настоящего) смартфона или планшета.

Вот мы провели сравнение ARM процессоров. Посмотрели и сравнили производительность CPU и GPU в различных SoC (System-оn-Chip). Но у читателя может возникнуть несколько вопросов: Где используются ARM процессора? Что такое ARM процессор? Чем отличается архитектура ARM от x86 процессоров? Попробуем разобраться во всем этом, не сильно углубляясь в подробности.

Для начала определимся с терминологией. ARM - это название архитектуры и одновременно название компании, ведущей ее разработку. Аббревиатура ARM расшифровывается как (Advanced RISC Machine или Acorn RISC Machine), что можно перевести как: усовершенствованная RISC-машина. ARM архитектура объединяет в себе семейство как 32, так и 64-разрядных микропроцессорных ядер, разработанных и лицензируемых компанией ARM Limited. Сразу хочется отметить, что компания ARM Limited занимается сугубо разработкой ядер и инструментария для них (средства отладки, компиляторы и т.д), но никак не производством самих процессоров. Компания ARM Limited продает лицензии на производство ARM процессоров сторонним фирмам. Вот неполный список компаний, получивших лицензию на производство ARM процессоров сегодня: AMD, Atmel, Altera, Cirrus Logic, Intel, Marvell, NXP, Samsung, LG, MediaTek, Qualcomm, Sony Ericsson, Texas Instruments, nVidia, Freescale ... и многие другие.

Некоторые компании, получившие лицензию на выпуск ARM процессоров, создают собственные варианты ядер на базе ARM архитектуры. Как пример можно назвать: DEC StrongARM, Freescale i.MX, Intel XScale, NVIDIA Tegra, ST-Ericsson Nomadik, Qualcomm Snapdragon, Texas Instruments OMAP, Samsung Hummingbird, LG H13, Apple A4/A5/A6 и HiSilicon K3.

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

ARM процессор представляет из себя SoC , или "систему на чипе". SoC система, или "система на чипе", может содержать в одном кристалле, помимо самого CPU, и остальные части полноценного компьютера. Это и контроллер памяти, и контроллер портов ввода-вывода, и графическое ядро, и система геопозиционирования (GPS). В нем может находится и 3G модуль, а также многое другое.

Если рассматривать отдельное семейство ARM процессоров, допустим Cortex-A9 (или любое другое), нельзя сказать, что все процессоры одного семейства имеют одинаковую производительность или все снабжены GPS модулем. Все эти параметры сильно зависят от производителя чипа и того, что и как он решил реализовать в своем продукте.

Чем же отличается ARM от X86 процессоров ? Сама по себе RISC (Reduced Instruction Set Computer) архитектура подразумевает под собой уменьшенный набор команд. Что соответственно ведет к очень умеренному энергопотреблению. Ведь внутри любого ARM чипа находится гораздо меньше транзисторов, чем у его собрата из х86 линейки. Не забываем, что в SoC-системе все периферийные устройства находится внутри одной микросхемы, что позволяет ARM процессору быть еще более экономным в плане энергопотребления. ARM архитектура изначально была предназначена для вычисления только целочисленных операций, в отличии от х86, которые умеют работать с вычислениями с плавающей запятой или FPU. Нельзя однозначно сравнивать эти две архитектуры. В чем-то преимущество будет за ARM. А где-то и наоборот. Если попробовать ответить одной фразой на вопрос: в чем разница между ARMи X86 процессорами, то ответ будет таким: ARM процессор незнает того количества команд, которые знает х86 процессор. А те, что знает, выглядят гораздо короче. В этом его как плюсы, так и минусы. Как бы там ни было, в последнее время все говорит о том, что ARM процессора начинают медленно, но уверенно догонять, а кое в чем и перегонять обычные х86. Многие открыто заявляют о том, что в скором времени ARM процессоры заменят х86 платформу в сегменте домашних ПК. Как мы уже , в 2013 году уже несколько компаний с мировым именем полностью отказались от дальнейшего выпуска нетбуков в пользу планшетных пк. Ну а что будет на самом деле, время покажет.

Мы же будем отслеживать уже имеющиеся на рынке ARM процессоры.

Практически все юзеры, которые понимают что-то в SoC вступают в кровопролитные споры о том, чей смартфон, процессор, GPU круче. Собственно, мощность GPU измеряют в FLOPS- специальной единице, которая показывает, сколько операций с плавающей запятой может выполнить GPU(и не только) в секунду. Кому интересно, прошу под кат!

Начнем с самого популярного GPU- Mali-400. Этот GPU завоевал немалую славу за счет своей производительности и энергопотребления. Одновременно мощный и экономный по отношению к заряду аккумулятора чип использовался во многих процессорах- от NovaThor U8500 до Exynos 4412. Существует множество разновидностей этого GPU, которые отличаются кол-вом ядер. Ниже привожу несколько сматфонов, в которые внедрен этот GPU и кол-во GFLOPS.

Samsung Galaxy Ace 2- Mali-400MP- 275MHz- 2.48Gflops
Samsung Galaxy S3- Mali-400MP4- 533MHz- 19.2Gflops

Довольно большая разница, не правда ли?
Также развожу миф о том, чем больше частота, тем мощнее чип

Mali-450MP4- 700MHz, который стоит в MT6592, и который, по заверениям нескольких пользователей Трешбокса должен побить даже ещё не вышедший Adreno 420. Результат- 41.8Gflops. Довольно большой шаг вперед по сравнению с Mali-400MP4, но Adreno 330- 450MHz набирает целых 129.6Gflops, что нереально много. Причем его частота ниже, чем на Mali-450MP4 на 250MHz. Для сравнения топовый PowerVR G6430- 450MHz, который стоит в IPhone 5S и IPad Air набирает 115.2Gflops.Самый мощный Mali-628MP6- 533MHz, который стоит в Octa версии Samsung Galaxy Note 3 набирает 102.4Gflops.

Также не стоит забывать Tegra 4 и Tegra 4i. GeForce ULP x72, который стоит в Tegra 4 набирает 96.8Gflops, а его LTE-брат с GeForce ULP x60- 79.2

Но тут происходит самое интересное, ведь Adreno 330 имеет и 550MHz версию(которую в скором будущем можно будет получить при помощи кастомных ядер) и эта самая разогнанная версия набирает целых 158.4Gflops! Это рекорд.

Давайте посмотрим и на более старые GPU, такие как Adreno 320, Adreno 225, GeForce ULP x12 и PowerVR SGX544MP3 и SGX554MP4, также не стоит забывать и о простом SGX544MP, который стоит в сверхпопулярном чипе MT6589.

Также, давайте рассмотрим видео процессоры Adreno 203, Adreno 205, Adreno 200, Adreno 220 и Adreno 305.Первые 4 видео процессора набирают следующие оценки: Adreno 200- 3.92Gflops при частоте 245MHz, Adreno 203- 7.84Gflops при той-же частоте 245MHz. Как видим: двукратный результат при одинаковой частоте.
Adreno 205- продолжение 203-го. Он набирает 8.5Gflops, что не очень много, но следующий GPU, под названием Adreno 220 ломает стереотипы не самых топовых GPU: невероятные 18Gflops- уровень Mali-400MP4 533MHz, который стоит в топовом Samsung Galaxy S3. Теперь рассмотрим Adreno 305, который является упрощённой версией Adreno 320. Данный GPU стоит в таких процессорах, как Snapdragon S4 Plus и Snapdragon 400. Так вот, данный ускоритель набирает 21.6Gflops при частоте 450MHz.

Adreno 320 разделяется на два разряда: который стоит в S4 Pro, и который стоит в Snapdragon 600. Отличаются они кол-вом блоков: если у S4 Pro версии их 64, то у 600 версии их 96. Adreno 320 S4 Pro набирает 57Gflops, а его S600 версия целых 97.2 при частоте 450MHz. Это даже больше, чем GeForce ULP x72, поэтому в Snapdragon 600 1.9GHz более мощный GPU, чем в Tegra 4. Шокирующий результат.

Давайте посмотрим на Adreno 225. При частоте в 400MHz он набирает 25.6Gflops. Для сравнения GeForce ULP x12, который стоит в Tegra 3 набирает 12.5Gflops при частоте 520MHz. Adreno 225 мощнее чем GeForce ULP x12… Мда… Но если по делу, то у GeForce ULP x12 производительность на уровне… На 4.5Gflops ниже, чем на Adreno 220…

Теперь перейдем к PowerVR SGX544MP3, который стоит в Exynos 5410 или, проще говоря в Samsung Galaxy S4. Его производительность составляет 51.1Gflops. Не самый мощный. Более топовый SGX554MP4, который послужил игровой основой для IPad 4 выдает 76.8Gflops. Значительно больше.

Но как только я узнал производительность SGX544MP, который стоит в MT6589 и MT6589T я… неважно. У MT6589 версия с частотой 286MHz. Он выдает всего 9.2Gflops. Это очень мало, но всеравно больше, чем у его младшего брата MT6589M. У него граф. ускоритель работает на частоте всего 156MHz. Честно говоря мне не хочется говорить о этом процессоре, но придется. Так вот, он выдает всего 4.9Gflops. Это немногим лучше, чем на Adreno 200. Турбированный MT6589T владеет ускорителем с частотой 357MHz и это дает ему 11.4Gflops.

А теперь по поводу консолей. Многими любимый PSP выдает всего 2.6Gflops. Вы помните невероятную графику PSP игр? А то, как они плавно шли на нем? Adreno 330 более чем в 50 раз мощнее, чем PSP. Но 50-кратного прироста не ощущается. PSVita- это серьезное развитие железа. Он обладает PowerVR SGX543MP4+ и это дает внушительные 51.2Gflops.

А теперь по поводу PS и Xbox. PS3 обладает производительностью в 228.8Gflops и я верю, что следующее поколение GPU будет мощнее, чем любимая многими приставка, но до уровня PS4, который набирает 1840Gflops еще, как раком до Китая. Кстати, сверхмощная видеокарта Nvidia GeForce GTX Titan набирает 4500Gflops, а новый GTX 780Ti примерно 4800Gflops. До компа, как до Луны:D

О, забыл о видео ускорителе Vivante GC6400, который работает на частоте 800MHz. Этот видеоускоритель- единственный конкурент адскому Adreno 330: его производительность составляет 128!!!Gflops, что всего на 1.6Gflops меньше, чем у Adreno 330, но мы знаем, что разработчики не сильно хотят оптимизировать игры под этот редкий ускоритель. Я, например, не знаю ни одного устройства с данным ускорителем. Кто знает: напишите, пожалуйста, в комментариях