LINUX.ORG.RU

Вышла первая партия процессоров Эльбрус-8С

 ,


8

12

Первая партия инженерных образцов процессора Эльбрус-8С и южного моста КПИ-2 готова к тестированию.


Архитектура процессора: «Эльбрус»
Количество ядер: 8
Кэш-память 2го уровня: 8 * 512 КБ (4 МБ)
Кэш-память 3го уровня: 16 МБ
Рабочая частота: 1.3 ГГц
Производительность: 250 ГФлопс (FP32)
Тип контроллеров памяти: DDR3-1600 (ECC)
Кол-во контроллеров памяти: 4
Процессоров на плате: 4
Технологический процесс: 28 нм

>>> Фото



Проверено: Shaman007 ()
Последнее исправление: Shaman007 (всего исправлений: 1)

Ответ на: комментарий от anonymous

Что ты называешь «архитектурой»?

Processor_design.

Ок.

В данном случае, именно архитектуру Эльбрус (ELBRUS - ExpLicit Basic Resources Utilization Scheduling).

Ахаха. Эта расшифровка появилась довольно поздно в 90-е годы и то как backronym.

Разработку первого поколения завершили в 1991. Это отправная точка. Вы бы появились на свет, не будь ваших родителей?

Ну то есть архитектура какого-то прототипа нынешнего e2k была разработана в 1991. Это больше похоже на правду, хотя тоже не очень согласуется со здравым смыслом.

Бабаян писал в 2002.

Бабаян написал столько фантастики, что ссылки на него вызывают только смех.

tailgunner ★★★★★
()

нет такого естественно. NOP 3 это три отдельных последовательных команды, а у них NOP внутри одной команды сидят.

Упаковка инструкций влечёт за собой как минимум попадалово на выравнивание и распаковку перед непосредственным выполнением. Выравниванием они не занимались, уповая на качественную оптимизацию ЕМНИП.

frost_ii ★★★★★
()
Ответ на: комментарий от tailgunner

Бабаян написал столько фантастики, что ссылки на него вызывают только смех.

Однако-ж по словам разработчика из вышеприведённой стенограммы, с уходом Бабаяна прежний курс разработки был продолжен как ни в чём не бывало. Выходит, не так уж и неправ был Бабаян?

frost_ii ★★★★★
()
Ответ на: комментарий от tailgunner

в 2014 году и если доверять словам разработчика.

Я не думаю что есть смысл им врать, их процессоры хоть и ограниченно доступны, но люди с ними дело имели.

Они опубликовали книженцию, просто те кто сечёт в этих делах могли бы посмотреть и сообщить общественности. Но сюда по тому что его то SPARCом называю то ARMом рассчитывать на это не приходится. Тут делают космические выводы, не обращась даже к гуглу, ибо западло.

Ну вот кое что на эту тему

Таким образом, параллельная структура микропроцессорного ядра «Эльбрус» позволяет в различных сочетаниях дешифровать в каждом такте:
до десяти арифметико-логических операций;
до четырех операций обращений в память (до четырех — на чтение, до двух — на запись);
до трех операций обработки булевых значений;
до четырех операций формирования литералов;
условную передачу управления;
операцию приращения счетчика цикла;
до двух групповых операций подкачки элементов массива с продвижением адресов;
до четырех операций считывания подкачанных элементов массива;
до шести операций вычисления условий, управляющих условным выполнением команд.
В результате в одной ШК может содержаться до 23 операций для программы,
обрабатывающей массивы, и до 14 операций для скалярных программ.

ReadWrite
() автор топика
Ответ на: комментарий от frost_ii

Однако-ж по словам разработчика из вышеприведённой стенограммы

Какой стенограммы? O_o

с уходом Бабаяна прежний курс разработки был продолжен как ни в чём не бывало

Бабаян возглавлял МЦСТ в 1992-2004 годах; за это время они произвели SPARC-совместимый Эльбрус-90микро и мегатонны обещаний о том, как они всех порвут своим E2k. Через 3 года после ухода Бабаяна МЦСТ выкатил настоящий E2k. Вопрос - каким курсом двигался Бабаян, если, по его словам, «архитектура» у него была готова аж в 1991?

tailgunner ★★★★★
()
Ответ на: комментарий от frost_ii

то большинство инструкций будет NOP

Команды в эльбрусе кодируются слогами. Первым слогом идёт заголовок. HS + ALS0 - так будет выглядеть команда которая выполнит арифметическую операцию на первом АЛУ, замёт в памяти 8 байт. Дальше микроархитектура расшифровывает команду в длинную, в которой будут NOP.

anonymous
()

Я не думаю что есть смысл им врать

Реклама всегда лжет настолько, насколько ей это сходит с рук.

их процессоры хоть и ограниченно доступны

Приличного независимого тестирования и анализа архитектуры я не видел.

Они опубликовали книженцию, просто те кто сечёт в этих делах могли бы посмотреть и сообщить общественности

Сообщить общественности что именно? Реальную производительность?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Читайте стенограмму, там немного была описана жизнь предприятия эпохи разработки. С Бабаяном и без

frost_ii ★★★★★
()
Ответ на: комментарий от tailgunner

Бабаян написал столько фантастики, что ссылки на него вызывают только смех.

С 2004 г. вместе с частью коллектива, разрабатывавшего проект Эльбрус, перешёл в структуру корпорации Intel. Бабаян стал первым европейским ученым, удостоенным титула Intel Fellow (заслуженный инженер-исследователь Intel).

В настоящее время Борис Бабаян является директором по архитектуре подразделения Software and Solutions Group корпорации Intel, а также научным советником научно-исследовательского центра Intel в Москве.

Скажите каких успехов добились вы? И вохможно я поверю вам, а не Бабаяну.

anonymous
()
Ответ на: комментарий от frost_ii

Вот так, по крупицам и собираем информацию

Книгу почитай. Ссылка болтается на ЛОР уже года 2-3, все, кому интересно, ее уже прочитали. А остальные «собирают информацию по крупицам», ага.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

Скажите каких успехов добились вы?

Я ждал этого вопроса %)

И вохможно я поверю вам, а не Бабаяну.

Ты, главное, побольше читай его творчества. Оно увлекательно.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Вопрос - каким курсом двигался Бабаян, если, по его словам, «архитектура» у него была готова аж в 1991?

Вам напомнить, что с 1948 года ИТМиВТ работает на правительство и военных. Как прекращалось финансирование, вывозился капитал и интеллектуальная собственность после развала союза? Это вообще чудо, что они хоть что-то выпустили, спустя столько лет.

anonymous
()
Ответ на: комментарий от tailgunner

Я ждал этого вопроса %)

Ждали, но не ответили.

Ты, главное, побольше читай его творчества. Оно увлекательно.

Я не увлекаюсь его творчеством.

anonymous
()
Ответ на: комментарий от anonymous

Вам напомнить

Мне не надо ничего напоминать, я помню на собственном опыте.

Как прекращалось финансирование, вывозился капитал и интеллектуальная собственность после развала союза?

Какое отношение это имеет к E2k? У которого, напомню, к 1991 году была готовая архитектура? Почему SPARC, готовой архитектуры которого в 1991 году не было, тем не менее был выпущен в 1998 году (в «лихие 90-е», да), а e2k - в 2007?

Это вообще чудо, что они хоть что-то выпустили, спустя столько лет.

Шапки долой и не сметь пикнуть на e2k!!!111

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

Скажите каких успехов добились вы?

Я ждал этого вопроса %)

Ждали, но не ответили.

Не ответил, хотя не раз отвечал на этот вопрос на ЛОР. А ты даже не представился.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Какое отношение это имеет к E2k? У которого, напомню, к 1991 году была готовая архитектура?

Архитектура - не есть реализация в железе.

Почему SPARC, готовой архитектуры которого в 1991 году не было, тем не менее был выпущен в 1998 году (в «лихие 90-е», да), а e2k - в 2007?

Потому, что он SPARC, а не какая-то непонятная сов. разработка. Для него не нужен новый компилятор, бинарный транслятор, новая ОС. Если бы было достаточно финансирования, скорее всего выпустили и e2k. В тот момент они пытались хоть как-то выжить.

Шапки долой и не сметь пикнуть на e2k!!!111

Я с вами веду нормальную беседу.

anonymous
()
Ответ на: комментарий от tailgunner

Не ответил, хотя не раз отвечал на этот вопрос на ЛОР. А ты даже не представился.

Я на ЛОРе не частый гость. Давайте вернёмся в прежнее русло нашей дискуссии.

anonymous
()
Ответ на: комментарий от anonymous

Какое отношение это имеет к E2k? У которого, напомню, к 1991 году была готовая архитектура?

Архитектура - не есть реализация в железе.

М? Еще раз: 1991 год - у МЦСТ есть готовая архитектура E2k и нет готовой архитектуры SPARC; 1998 год - Э-90микро реализован в железе и проходит госиспытания, E2k по-прежнему не существует в природе.

Для него не нужен новый компилятор, бинарный транслятор, новая ОС

Песни о готовности двоичного транслятора (и компилятора) я слышал еще в 90-х; своей ОС у Эльбрус нет до сих пор (и слава ТНБ).

В тот момент они пытались хоть как-то выжить.

В какой «тот»? Период жесткого выживания у ВПК вообще закончился к началу 2000-х, а МЦСТ всегда работал на иностранных заказчиков и жил если и не роскошно (по сравнению с другими), то комфортно.

tailgunner ★★★★★
()
Ответ на: комментарий от PIV

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

anonymous
()
Ответ на: комментарий от anonymous

говно есть говно

Говно у тебя в голове, иметь собственный процессор - вопрос национальной безопасности.

anonymous
()
Ответ на: комментарий от tailgunner

нет готовой архитектуры SPARC;

SPARC - открытая архитектура, купите лицензию и делайте свою реализацию. Хотя можете купить и реализацию, если деньги позволяют.

своей ОС у Эльбрус нет до сих пор (и слава ТНБ).

Тогда ещё не был так популярен линукс, они думали над своей ОС.

Период жесткого выживания у ВПК вообще закончился к началу 2000-х

И в 2005 году был представлен e2k.

anonymous
()

Ещё раз.
Статья CNEWS с результатом тестирования Эльбрус-2С, Эльбрус-4С и i7 2600.


7-zip, произхводительность почти точно пропорциональна тактовой частоте. При распаковке ситуация чуть лучше: в самом деле, если частоты Core i7 и «Эльбрус-2С+» различаются в 3400/500=6,8 раза, то результаты теста лишь в 33,437/6,296=5,31 раза, что говорит о том, что работая на той же частоте, что и процессор Intel, «Эльбрус» смог бы его обойти!

С фильтрацией видеосигнала наш кристалл справляется лучше. Здесь «Эльбрус-2С+» медленнее лишь в 2,5 раза (тест измеряет время выполнения одной и той же задачи, так что здесь лучшей производительности соответствует меньшее число). «Эльбрус-4С» практически подобен своему собрату, выдавая результат во столько раз лучше него, во сколько раз различаются их тактовые частоты).

Но самый выигрышный результат оказался при шифровании по алгоритму ГОСТ, недаром он тоже разрабатывался нашими специалистами. Здесь «Эльбрус-2С+» выполнил задачу на 30% быстрее, несмотря на почти семикратную разницу в частоте, а «Эльбрус-4С» — почти в 2 раза быстрее! Что говорит о том, что эффективность отечественной архитектуры на подобных задачах лучше почти в 9 раз.


>>>

ReadWrite
() автор топика
Ответ на: комментарий от anonymous

нет готовой архитектуры SPARC;

SPARC - открытая архитектура, купите лицензию и делайте свою реализацию

Период жесткого выживания у ВПК вообще закончился к началу 2000-х

И в 2005 году был представлен e2k.

Ыыы... еще раз, последний: лицензия на SPARC у них появилась _позже_ «реализации» E2k, а реальный процессор - почти на 10 лет раньше (я считаю не момент «представления», а прохождение госиспытаний).

они думали над своей ОС.

Судя по тому, что на Э-90микро стоит Solaris, ни о чем таком они не думали.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

еще раз, последний: лицензия на SPARC у них появилась _позже_ «реализации» E2k

Ещё раз, появилась архитектура Эльбрус, не реализация, я уже в сотый раз это повторяю.

я считаю не момент «представления», а прохождение госиспытаний

Можно узнать, где вы узнали про прохождение госиспытаний Эльбрус-3?

Судя по тому, что на Э-90микро стоит Solaris, ни о чем таком они не думали.

Там SPARC, он совместим с любым ПО для SPARC V8. Я ещё раз повторю, что ОС им нужна была для архитектуры Эльбрус.

anonymous
()
Ответ на: комментарий от anonymous

еще раз, последний: лицензия на SPARC у них появилась _позже_ «реализации» E2k

Ещё раз, появилась архитектура Эльбрус, не реализация, я уже в сотый раз это повторяю.

Недавно ты назвал архитектурой processor design. Это означает как минимум завершенность ISA, проектирование этого самого design и какую-то проработку на симуляторах. Со SPARC у них и этого не было.

я считаю не момент «представления», а прохождение госиспытаний

Можно узнать, где вы узнали про прохождение госиспытаний Эльбрус-3?

Не Эльбрус-3, а Эльбрус-3М1. Узнал, естественно, на ЛОР: Завершение государственных испытаний ВК Эльбрус-3М1

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

Во-первых, это никак не мешало им выпустить чип (хотя бы запускать на нем готовые ОС для x86, как и было заявлено); во-вторых, у них сейчас там совершенно обычный Linux, без всяких изысков из ОС для Эльбрус-[12], которая и в самом деле была оригинальной.

Там SPARC, он совместим с любым ПО для SPARC V8

Этот - не с любым. ОС им пришлось дорабатывать.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Это означает как минимум завершенность ISA, проектирование этого самого design и какую-то проработку на симуляторах. Со SPARC у них и этого не было.

Московский центр SPARC-технологий (МЦСТ), март 1992 года. Они сменили акцент на сотрудничество с Sun.

SPARC у них появилась _позже_ «реализации» E2k, а реальный процессор - почти на 10 лет раньше

Не Эльбрус-3, а Эльбрус-3М1. Узнал, естественно, на ЛОР: Завершение государственных испытаний ВК Эльбрус-3М1

2007? SPARC они в 2017 выпустили? Если серьёзно, то образец Эльбрус-3 у них был в 1992 году. Но госиспытаний он не проходил, по понятным причинам.

Во-первых, это никак не мешало им выпустить чип (хотя бы запускать на нем готовые ОС для x86, как и было заявлено); во-вторых, у них сейчас там совершенно обычный Linux, без всяких изысковх из ОС для Эльбрус-[12], которая и в самом деле была оригинальной.

Я где-то утверждал обратное?

Этот - не с любым. ОС им пришлось дорабатывать.

Обычная практика.

anonymous
()
Ответ на: комментарий от anonymous

SPARC у них появилась _позже_ «реализации» E2k, а реальный процессор - почти на 10 лет раньше
Не Эльбрус-3, а Эльбрус-3М1. Узнал, естественно, на ЛОР: Завершение государственных испытаний ВК Эльбрус-3М1

2007? SPARC они в 2017 выпустили?

Если серьёзно, то образец Эльбрус-3 у них был в 1992 году

Хм. Похоже, ты совсем вообще не в теме... Э-90микро (SPARC) прошел госиспытания в 1998. Эльбрус-3 - это совсем другая машина, чем всё основанное на Э-3М1.

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

там совершенно обычный Linux, без всяких изысковх из ОС для Эльбрус-[12], которая и в самом деле была оригинальной.

Я где-то утверждал обратное?

Ты сказал «ОС для архитектуры Эльбрус». Ты не понимаешь, но это очень «нагруженная» фраза. ОС для оригинальных МВК Эльбрус были очень специфичными (и ОС для E2k тоже могла бы быть такой).

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Хм. Похоже, ты совсем вообще не в теме... Э-90микро (SPARC) прошел госиспытания в 1998. Эльбрус-3 - это совсем другая машина, чем всё основанное на Э-3М1.

Ещё раз процитирую.

Работы над архитектурой «Эльбрус» начались в 1986 г. в коллективе Института точной механики и вычислительной техники (ИТМ и ВТ) им. С.А. Лебедева, в котором до этого были созданы советские высокопроизводительные комплексы «Эльбрус-1» и «Эльбрус-2». Разработка вычислительного комплекса «Эльбрус-3», которая велась под руководством Б.А. Бабаяна, была завершена в 1991 г. В этом вычислительном комплексе впервые были воплощены в жизнь идеи явного управления параллелизмом операций с помощью компилятора.

Ты сказал «ОС для архитектуры Эльбрус». Ты не понимаешь, но это очень «нагруженная» фраза. ОС для оригинальных МВК Эльбрус были очень специфичными (и ОС для E2k тоже могла бы быть такой).

С самого начала, мы с вами беседуем именно о том, то было сделано в Эльбрус-3. У вас такая короткая память?

anonymous
()
Ответ на: комментарий от anonymous

С самого начала, мы с вами беседуем именно о том, то было сделано в Эльбрус-3

С самого начала мы с тобой беседовали об истории E2k. Если ты ставишь знак равенства между Эльбрус-3, Эльбрус-3М1 и E2k, или хотя бы считаешь их близкими родственниками, это просто говорит о твоем невежестве.

У вас такая короткая память?

С памятью у меня всё нормально. Но распознать уровень знаний оппонента получается не всегда.

tailgunner ★★★★★
()
Ответ на: комментарий от soomrack

Тот факт, что определенный контингент товарищей, разрабатывавших Эльбрус переманили в Intel, доказывает, что там как минимум не только распилы

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Не, я не спорю, что там были и, наверное, есть классные специалисты. Россия действительно умеет разрабатывать процессоры, неизвестно только как они соотносятся с флагманами рынка. Просто пока их не выдали в свободную (путь и ограниченную) продажу — это все вещь в себе. Может есть, может нет, может такая как говорят, может другая, неизвестно. Это касается и процессора из топика, и его предыдущих моделей.

soomrack ★★★★
()
Ответ на: комментарий от tailgunner

С самого начала мы с тобой беседовали об истории E2k. Если ты ставишь знак равенства между Эльбрус-3, Эльбрус-3М1 и E2k, или хотя бы считаешь их близкими родственниками, это просто говорит о твоем невежестве.

Я утверждал, что Эльбрус-3 прародитель e2k.

И ещё раз напомню, Эльбрус-3М1 - вычислительный комплекс. Это не процессор! В нём стоят два e2k.

С памятью у меня всё нормально. Но распознать уровень знаний оппонента получается не всегда.

Вы простите за эти цитаты, вырванные из контекста, но мне кажется вы меня троллите или ...

tailgunner

Эльбрус-3 была традиционная CISC-архитектура (нет VLIW)

Первый e2k - это Эльбрус-3М1 (Эльбрус-3М1 - вычислительная комплекс, e2k - это Эльбрус 2000)

нет готовой архитектуры SPARC (в 1986 году в Sun закончили работу над этой архитектуры, вы же утверждаете что в 1991 году её не было)

лицензия на SPARC у них появилась _позже_ «реализации» E2k (да, но не раньше реализации архитектуры Эльбрус в 1992 году)

Не Эльбрус-3, а Эльбрус-3М1 (название вам намекает)

Эльбрус-3 - это совсем другая машина, чем всё основанное на Э-3М1. (название вам намекает)

anonymous
()
Ответ на: комментарий от ReadWrite

Мой тест показал что этот проц (2С+) лишь в 1.5 раза медленее чем рабочий Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz, и это при 6+ кратной разнице по частоте...

Есть доступ...

-bash-4.2$ uname -a
Linux monocub-1 2.6.33-elbrus.033.6.21.rt #1 SMP PREEMPT RT Tue Oct 7 18:55:40 MSD 2014 e2k E2C+DSP MONOCUB GNU/Linux

-bash-4.2$ cat /proc/cpuinfo
processor       : 0
vendor_id       : MONOCUB
cpu family      : 4
model           : 4
model name      : E2C+DSP
revision        : 1
cpu MHz         : 499.986890
...
У кого есть предложения по тестированию - кидайте код (один файл чтоб gcc лишь запустить).

g++ -O3 -ffast -C++ ./<source>.cpp -o <executable>.e2k -fno-inline -mcpu=elbrus-2c+

Кста...

uptime
 15:30:36 up 20 days, 18:48 ...

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 2)
Ответ на: комментарий от I-Love-Microsoft

А на нём есть java?
SPECjvm2008 V1.01
http://www.spec.org/jvm2008/

Хотелось бы увидеть ещё ассемблерный листинг. Ну какой-то простой код. Для примера.

#include <stdio.h>
int main(){
long double Sum=0;
unsigned long long i,n;
n = 100000000;
for (i=0;i<n;i++){
Sum+=(1.0/(1.0+2.0*i))*((i%2==0) ? 1:(-1));
}
Sum*=4;
printf(«%.10Lf\n»,Sum);
return 0;
}

ReadWrite
() автор топика
Ответ на: комментарий от soomrack

Доведение изделия до состояния продукта - ещё та задачка.

Deleted
()
Ответ на: комментарий от ReadWrite

Используй тэги CODE чтобы постить код:

#include <stdio.h>
int main(){
long double Sum=0;
unsigned long long i,n;
n = 100000000;
for (i=0;i<n;i++){
Sum+=(1.0/(1.0+2.0*i))*((i%2==0) ? 1:(-1));
}
Sum*=4;
printf("%.10Lf\n",Sum);
return 0;
}

Как у gcc попросить вывалить листинг? А заодно напиши как вызывать результат? Так?

-bash-4.2$ time ./test001.e2k
3.1415926436

real    0m1.024s
user    0m1.000s
sys     0m0.010s
-bash-4.2$ time ./test001.e2k
3.1415926436

real    0m1.023s
user    0m1.010s
sys     0m0.000s

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 2)
Ответ на: комментарий от ReadWrite

на компе так:

g++ -O3 ./test001.cpp -o test001.x64 -fno-inline
time ./test001.x64
3.1415926436

real    0m0.963s
user    0m0.963s
sys     0m0.000s

Забавно что i5-4570 CPU @ 3.20GHz работает столько же времени как и Elbrus-2C+, а ведь частота в 6 раз ниже.

Итак, как вывалить ассемблерный листинг? Сори, я не знаю.

А жабы там нет конкретно на этой системе, хотя жабку МЦСТ как раз говорят сделал.

Кстати

file test001.e2k 
test001.e2k: ELF 64-bit LSB executable, MCST Elbrus, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.33, not stripped

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от ReadWrite

На всякий случай, вдруг ынтэл на пониженной частоте работает (добавил нолик к n):

cpufreq-info | grep "current CPU" ; time ./test001.x64 ; cpufreq-info | grep "current CPU"
  current CPU frequency is 800 MHz.
  current CPU frequency is 800 MHz.
  current CPU frequency is 1.50 GHz.
  current CPU frequency is 800 MHz.
3.1415926526

real    0m9.538s
user    0m9.544s
sys     0m0.000s
  current CPU frequency is 2.00 GHz.
  current CPU frequency is 3.20 GHz.
  current CPU frequency is 800 MHz.
  current CPU frequency is 800 MHz.
Как видно из «frequency is 3.20 GHz», проц действительно напрягся на полную.

Соответственно на эльбрусе тоже после добавления нуля к n стало работать в 10 раз дольше:

-bash-4.2$ time ./test001.e2k 
3.1415926526

real    0m10.066s
user    0m10.030s
sys     0m0.010s

Времена сопоставимы. Это круто я считаю.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Меня тоже интересует асм.

#include <float.h>

float
array_max_f(const float *p, int l)
{
  float m = FLT_MIN;
  int i = l;
  
  while (i-- > 0)
    if (p[i] > m)
      m = p[i];
  
  return m;
}
gcc -mcpu=elbrus-2c+ -O2 -S -c max.c
less max.s
anonymous
()
Ответ на: комментарий от anonymous
-bash-4.2$ cat test002.s
        .file   "test002.c"

.section ".text"
.global $array_max_f
$array_max_f:
.ignore ld_st_style
.ignore strict_delay
 {
   disp %ctpr1, $#__local_label_in_array_max_f__88
   setwd wsz = 0x7, nfx = 0x1
   setbn rsz = 0x1, rbs = 0x5, rcur = 0x0 
   setbp psz = 0x0
   subs,1 %r1, 0x1, %g16
   addd,2,sm 0x0, %dr0, %dr4
   adds,3 0x0, _f32s,_lts2 0x800000, %r8
 }
 {
   return %ctpr3
   cmplesb,0 %r1, 0x0, %pred0
   cmplesb,1,sm %g16, _f16s,_lts0lo 0xffff, %pred1
   sxt,2,sm 0x2, %r1, %dg16
   addd,3,sm 0x0, _f64,_lts1 0xff2000000000, %dr7
 }
   shld,1,sm %dg16, 0x2, %dr6
 {
   merges,0,sm 0x1, %r1, %g16,  ~ %pred1
   scrs,1 0x1, 0x9, %r0 ? %pred0
 }
   sxt,0,sm 0x6, %g16, %dr5
 {
   ct %ctpr1 ? ~ %pred0
   ipd 3
 }
   nop
 {
   ct %ctpr3 ? %pred0
   ipd 3
 }
$#__local_label_in_array_max_f__88:
 {
   disp %ctpr1, $#__local_label_in_array_max_f__d0
   setwd wsz = 0x7, nfx = 0x1
   setbn rsz = 0x1, rbs = 0x5, rcur = 0x0 
   setbp psz = 0x0
   insfd,0 %dr7, _f32s,_lts1 0x800, %dr5, %dg16
   subd,1,sm %dr6, 0x4, %dg17
   adds,2,sm 0x0, %r8, %r0
 }
 {
   nop 2
   return %ctpr3
   rwd,0 %dg16, %lsr
   subd,1,sm %dg17, 0x4, %db[2]
   ldw,2,sm %dr4, %dg17, %b[3]
 }
   nop
$#__local_label_in_array_max_f__d0:
 {
   loop_mode
   fcmpltsb,1,sm %r0, %b[3], %pred0
 }
   loop_mode
 {
   loop_mode
   nop 1
   ldw,2,sm %dr4, %db[2], %b[1]
   subd,5,sm %db[2], 0x4, %db[0]
 }
 {
   loop_mode
   ct %ctpr1 ? #NOT_LOOP_END
   ipd 3
   abn abnf=1, abnt=1
   abp abpf=1, abpt=1 
   alc alcf=1, alct=1 
   merges,2,sm %r0, %b[3], %r0, %pred0
 }
 {
   setwd wsz = 0x7, nfx = 0x1
   setbn rsz = 0x1, rbs = 0x5, rcur = 0x0 
   setbp psz = 0x0
   adds,0,sm 0x0, %r0, %g16
 }
 {
   ct %ctpr3
   ipd 3
   adds,0 0x0, %g16, %r0
 }
.size $array_max_f, . - $array_max_f
.type $array_max_f, @function

        .weak   $elbrus_optimizing_compiler_v1.19.10_Oct_15_2014
        .set    $elbrus_optimizing_compiler_v1.19.10_Oct_15_2014, 0

-bash-4.2$

Выхлоп оказался во много раз длинее чем на интеле:

cat test002.s 
        .file   "test002.c"
        .text
        .p2align 4,,15
        .globl  array_max_f
        .type   array_max_f, @function
array_max_f:
.LFB0:
        .cfi_startproc
        movslq  %esi, %rax
        movss   .LC0(%rip), %xmm0
        leaq    -4(%rdi,%rax,4), %rax
        jmp     .L2
        .p2align 4,,10
        .p2align 3
.L4:
        movss   (%rax), %xmm1
        subl    $1, %esi
        maxss   %xmm0, %xmm1
        subq    $4, %rax
        movaps  %xmm1, %xmm0
.L2:
        testl   %esi, %esi
        jg      .L4
        rep ret
        .cfi_endproc
.LFE0:
        .size   array_max_f, .-array_max_f
        .section        .rodata.cst4,"aM",@progbits,4
        .align 4
.LC0:
        .long   8388608
        .ident  "GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2"
        .section        .note.GNU-stack,"",@progbits

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Само собой SIMD. Такое надо прятать под спойлер. Походу без пояснения некоторых моментов, ничего не понять. (

anonymous
()
Ответ на: комментарий от I-Love-Microsoft

Благодарю. gcc -S in.c -o out.asm А можно и асм листинг и бинарник кинуть куда-нибудь? На память :) У меня при n = 1000000000 7-8 сек на i7 3770

3.1415926436

real	0m0.796s
user	0m0.796s
sys	0m0.000s

Ну и какие выводы. Получается реально рвёт. Скорость примерно на процентов 20-30 у 500 мгц камня, чем у 4 ггц. У новых камней ещё 2 FP блока. Так что результат может быть и лучше.

ReadWrite
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Благодарю ещё раз. Теперь надо подождать товарищей, которые хотели независимого тестирования. Где же они?

ReadWrite
() автор топика
Ответ на: комментарий от ReadWrite

Теперь надо подождать товарищей, которые хотели независимого тестирования. Где же они?

Мы здесь. О чем ты хотел спросить?

tailgunner ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Кстати в листинге встречаются команды nop 4 nop 3 nop 2 nop

Выше я писал: «А может у них команды вида «NOP 3» есть, вместо «NOP NOP NOP».» Не оно ли это?

ReadWrite
() автор топика
Ответ на: комментарий от tailgunner
Я? Я уже провёл свой тест. Если хотите, можете провести свой. Сравнить.
Вам нужно было независимое тестирование. Проводите.
Или вы не доверяете I-Love-Microsoft?

Я результатом весьма удовлетворён, не ожидал такой прыти.
ReadWrite
() автор топика
Ответ на: комментарий от ReadWrite

Ну и какие выводы. Получается реально рвёт. Скорость примерно на процентов 20-30 у 500 мгц камня, чем у 4 ггц. У новых камней ещё 2 FP блока. Так что результат может быть и лучше.

Спасибо за тест! Будут идеи, подкидывайте свои тесты - всё с огромнейшим интересом запущу и выложу результаты. Кроме того, если знаете как, присылайте тесты и для встроенных их DSP, в 2С+ есть 2 обычных ядра и 4 DSP - было бы интересно и для них тест какой-нибудь. Надеюсь мне удастся продвинуть внедрение этих процессоров, правда Эльбрус-4С и 8С интересует.

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

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от ReadWrite

Как я понимаю, компилятор для эльбруса использует все особенности архитектуры. Для интела стоило бы скомпилировать с opencl.

greenman ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.