К основному контенту

Сдвинулось + нужная помощь.

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


Пару дней назад я вернулся и родил концепт победной реализации. Сейчас нужны бенчмарки. Всем, кто желает помочь - нужно взять это: https://pastebin.com/raw/LvRK05uQ собрать:


g++ main.cpp -Ofast -march=native -fwhole-program -std=gnu++2a -Wall -Wextra -fno-tree-vectorize 
И запостить сюда результаты. А так же, желательно, написать lscpu и выкласть выхлоп: gcc -S 

Комментарии

  1. https://pastebin.com/UjZ8XsqZ

    ОтветитьУдалить
    Ответы
    1. Спасибо. Добавь, пж, модель cpu и gcc -S.

      Удалить
    2. https://pastebin.com/raw/z6u7dYNf

      >gcc -S
      это что такое? перезапустить компиляцию с этим флагом, и выложить выхлоп?

      Удалить
    3. >https://pastebin.com/raw/z6u7dYNf
      Спс.

      >это что такое? перезапустить компиляцию с этим флагом, и выложить выхлоп?
      Да.

      Удалить
    4. http://ge.tt/4zDM5Xz2

      last.asm - это как у анона ниже команда

      main.s - с -S

      Удалить
    5. Странную дристню тебе gcc нагенерил какую-то. Ты точно флажки нужные использовал? Потому как непонятно. Ну попробую ещё воспроизвести твои результаты.

      Удалить
    6. да, все те что в посте. могу запускать с любыми если надо

      Удалить
  2. А как же ссылку на коллекцию всех бенчей на benchmarksgame? Где ссылка на тред, где "сектанты атакуют со всех сторон"?

    И достаточно ли всего лишь "time executable-file" или какая-то особая команда запуска? Как из баша просто вывести скорость оперативы (влияет же на mmap, не зависит от модели cpu).

    ОтветитьУдалить
    Ответы
    1. Ничего не понял. Про сектантов - напишу позже. Пока некогда. Мне нужно допилить это. На сектантов и говнобенчмарк говна тоже.

      Достаточно для чего? Никакой команды ненужно - оно само напечает необходимые результаты. Скорость оперативы в данном случае вообще не причём. Как и mmap. Про mmap и прочее я так же как-нибудь напишу. А то похоже многим интересно читать херню идиотов из интернетов, вместо матчасти. Будем исправлять это.

      Удалить
    2. Бенч, версии gcc и boost, lscpu - https://pastebin.com/7VRh5W64

      gcc -S - https://pastebin.com/LtVysiHz Если бы не подсказка fsb4000, то не выложил бы.

      Ещё интересно "самый старый проц, который тебя удовлетворит". Ты писал, что core 2 duo и первое поколение i7 слишком стары. Есть ли смысл от бенча на моём ноутбучном ivy bridge? Также интересно твоё мнение о роли цпу от амд в бенчах. У них же некоторые наборы инструкций вендороспецифичные, что даёт вроде как разную картину производительности при -march=native против бинарных сборок того же линукса, гцц, хрома для "широкого круга".

      Удалить
    3. Странные результаты, конечно. Там скорее всего он зажат по частотам и не разгоняется. Потому как слишком всё плохо. Я бенчил на ноутбучном нехалеме(это первый i5/i7, который появились) - там всё более-менее нормально.

      >Ещё интересно "самый старый проц, который тебя удовлетворит". Ты писал, что core 2 duo и первое поколение i7 слишком стары.
      Да любой. На самом деле в этой задаче даже первое поколение i7 что-то нормальное показывает. Но да, они уже не актуальны.

      >Есть ли смысл от бенча на моём ноутбучном ivy bridge?
      Есть смысл от любых процессоров. Нам нужно найти оптимальный конфиг для большинства cpu. На самом деле оптимальный итак понять - интересно посмотреть именно на разницу между реализациями.

      >Также интересно твоё мнение о роли цпу от амд в бенчах.
      Я мало что знаю об амд, но если нам принесут amd - посмотрим. Я не нашел нормальных доков по amd, но судя по тому что я смотрел - последний их зен где-то на уровне хасвела(а может даже выше). Всё остальное слишком устарело. Хотя и появилось недавно. Но и интел со времён хасвела не особо продвинулся.

      >У них же некоторые наборы инструкций вендороспецифичные, что даёт вроде как разную картину производительности при -march=native против бинарных сборок того же линукса, гцц, хрома для "широкого круга".
      Компилятор не особо что-то уникальное юзает и тут его некуда применить. Хотя на самом деле есть куда. Допустим есть bmi с нормальными трёхоперандными инструкция для манипуляции битами. Они и называются так. И здесь от них был бы профит, но компилятор не осилил.

      Но потом в будущем мы разберёмся со всем этим. Нужно добить этот бенчмарк говна "по правилам", а потом мы уже забьём на правила. И там всё будет.

      Также интересно твоё мнение о роли цпу от амд в бенчах.

      Удалить
    4. >Также интересно твоё мнение о роли цпу от амд в бенчах.

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

      Лично я хочу при покупке дескопа (не ноута) купить цпу + гпу на амд, чтобы поддержать конкуренцию кошельком. Сколько возгласов я читал "амд со своим райзеном заставила интел шевелиться". И "не дадим интел чувствовать себя монополистом и думать, что покупатели сожрут любое говно" по мотивам. Лично я согласен с этими тезисами. Но покупку этого ПК я смогу аж через N>=6 месяцев.

      Я согласен, что у амд лучше соотношение цена-производительность, но греется так, что нельзя экономить на системе охлаждения.

      Я читал, что инженеры интел учавствуют в разработке гцц, но без понятия по поводу инженеров амд. А это ведь влияет на то, как компилятор поддерживает оптимизации именно для амд. Также при сборке тех же бинарных пакетов любых программ и для винды, и для линя, собирают так, чтобы набор инструкций поддерживался и на интел, и на амд, и на не слишком старом говне. Ведь jit для С++ программ не имеет смысла, не так ли?

      Удалить
    5. Какое же говно тут комменты. Я даже не заметил сообщения.

      >Я читал, что инженеры интел учавствуют в разработке гцц, но без понятия по поводу инженеров амд.

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

      >Также при сборке тех же бинарных пакетов любых программ и для винды, и для линя, собирают так, чтобы набор инструкций поддерживался и на интел, и на амд, и на не слишком старом говне.

      Нет, там собирается под самое старое говно. Просто amd64 не совсем(по меркам истинного говна) старое. Там везде есть sse, допустим. Под это и собирается.

      >Ведь jit для С++ программ не имеет смысла, не так ли?
      Нужно понимать, что когда сектанты говорят про jit - они врут. Им jit нужен не для "собирать софт про таргет" и не для оптимизаций "уникальных для jit" - это всё чушь. Им jit нужен именно для возможности трансформации скриптухи в нормальный код. И там jit неуправляемый.

      Управляемый же jit, как и vm - С++ нужны. Но там совершенно другие мотиваторы, нежели у скриптухи.

      Удалить
  3. https://www.youtube.com/watch?v=Vwr_iOQlEQk

    ОтветитьУдалить
  4. Собрал и с этими флагами:
    https://pastebin.com/4b5ajm5x

    gcc -s:
    https://pastebin.com/5C05d5vV

    ОтветитьУдалить
    Ответы
    1. Точнее не gcc -s, а так команда выглядела, если кто-то не знает как листинги получать:

      g++-9 -Ofast -march=native -fwhole-program -std=gnu++2a -Wall -Wextra -fno-tree-vectorize -lstdc++fs -c -S last.cpp -o - | c++filt | grep -vE '\s+\.' > last.asm

      Удалить
  5. Вот ещё на AllWinner H6 протестил (плата OrangePi Lite2)

    https://pastebin.com/J4VDpKES

    asm:
    https://pastebin.com/cK81N3CH

    ОтветитьУдалить
    Ответы
    1. Выполнение этого бенча на arm имеет особую ценность! Правда сектанты могут игнорировать разницу между архитектурами в своей пропаганде.

      Удалить
    2. На самом деле самым идеальным примером тут будет именно что-то типа влива. Я хотел, да и мне кто-то предлагал уже купить итаник. Но мне не нравится древность. Ждём эльбруса. Хотя судя по всему мы никогда его не дождёмся, т.к. у них фронт говно и нормальный С++ мы вряд-ли там соберём, но возможно к тому времени cbe не особо сдохнет, либо руками код придётся генерировать.

      Но да, сектанты верят в том, что архитектуры какие-то там разные и оптимизировать ничего нельзя. На самом деле это полная чушь. Физика одна, логика одна - законы мироздания едины для всех. Существуют, конечно, какие-то специфичные вещи, но в целом правила едины для всех.

      Особенно смешно слушать сектантов, которые рассказывают о том, что да там инлайн говно. Да на армах. Да кукареку.

      Удалить
  6. https://pastebin.com/T9kXZXfF
    https://pastebin.com/9W5EhmGa

    ОтветитьУдалить
  7. Шома, приди в себя, ты больше не модератор.

    ОтветитьУдалить
    Ответы
    1. Царь, возвращайся на ЛОР. Шома больше не модератор, а простой чешский гей )) Скоро я стану модератором и не буду тебя тереть.

      Удалить

Отправить комментарий