Я продолжил умножать на ноль недоязычки. Сектанты там атакуют со всех сторон. Сидел в окопе всё это время.
Пару дней назад я вернулся и родил концепт победной реализации. Сейчас нужны бенчмарки. Всем, кто желает помочь - нужно взять это: https://pastebin.com/raw/LvRK05uQ собрать:
g++ main.cpp -Ofast -march=native -fwhole-program -std=gnu++2a -Wall -Wextra -fno-tree-vectorize
И запостить сюда результаты. А так же, желательно, написать lscpu и выкласть выхлоп: gcc -S
Пару дней назад я вернулся и родил концепт победной реализации. Сейчас нужны бенчмарки. Всем, кто желает помочь - нужно взять это: https://pastebin.com/raw/LvRK05uQ собрать:
g++ main.cpp -Ofast -march=native -fwhole-program -std=gnu++2a -Wall -Wextra -fno-tree-vectorize
И запостить сюда результаты. А так же, желательно, написать lscpu и выкласть выхлоп: gcc -S
https://pastebin.com/UjZ8XsqZ
ОтветитьУдалитьСпасибо. Добавь, пж, модель cpu и gcc -S.
Удалитьhttps://pastebin.com/raw/z6u7dYNf
Удалить>gcc -S
это что такое? перезапустить компиляцию с этим флагом, и выложить выхлоп?
>https://pastebin.com/raw/z6u7dYNf
УдалитьСпс.
>это что такое? перезапустить компиляцию с этим флагом, и выложить выхлоп?
Да.
http://ge.tt/4zDM5Xz2
Удалитьlast.asm - это как у анона ниже команда
main.s - с -S
Странную дристню тебе gcc нагенерил какую-то. Ты точно флажки нужные использовал? Потому как непонятно. Ну попробую ещё воспроизвести твои результаты.
Удалитьда, все те что в посте. могу запускать с любыми если надо
УдалитьА как же ссылку на коллекцию всех бенчей на benchmarksgame? Где ссылка на тред, где "сектанты атакуют со всех сторон"?
ОтветитьУдалитьИ достаточно ли всего лишь "time executable-file" или какая-то особая команда запуска? Как из баша просто вывести скорость оперативы (влияет же на mmap, не зависит от модели cpu).
Ничего не понял. Про сектантов - напишу позже. Пока некогда. Мне нужно допилить это. На сектантов и говнобенчмарк говна тоже.
УдалитьДостаточно для чего? Никакой команды ненужно - оно само напечает необходимые результаты. Скорость оперативы в данном случае вообще не причём. Как и mmap. Про mmap и прочее я так же как-нибудь напишу. А то похоже многим интересно читать херню идиотов из интернетов, вместо матчасти. Будем исправлять это.
Бенч, версии gcc и boost, lscpu - https://pastebin.com/7VRh5W64
Удалитьgcc -S - https://pastebin.com/LtVysiHz Если бы не подсказка fsb4000, то не выложил бы.
Ещё интересно "самый старый проц, который тебя удовлетворит". Ты писал, что core 2 duo и первое поколение i7 слишком стары. Есть ли смысл от бенча на моём ноутбучном ivy bridge? Также интересно твоё мнение о роли цпу от амд в бенчах. У них же некоторые наборы инструкций вендороспецифичные, что даёт вроде как разную картину производительности при -march=native против бинарных сборок того же линукса, гцц, хрома для "широкого круга".
Странные результаты, конечно. Там скорее всего он зажат по частотам и не разгоняется. Потому как слишком всё плохо. Я бенчил на ноутбучном нехалеме(это первый i5/i7, который появились) - там всё более-менее нормально.
Удалить>Ещё интересно "самый старый проц, который тебя удовлетворит". Ты писал, что core 2 duo и первое поколение i7 слишком стары.
Да любой. На самом деле в этой задаче даже первое поколение i7 что-то нормальное показывает. Но да, они уже не актуальны.
>Есть ли смысл от бенча на моём ноутбучном ivy bridge?
Есть смысл от любых процессоров. Нам нужно найти оптимальный конфиг для большинства cpu. На самом деле оптимальный итак понять - интересно посмотреть именно на разницу между реализациями.
>Также интересно твоё мнение о роли цпу от амд в бенчах.
Я мало что знаю об амд, но если нам принесут amd - посмотрим. Я не нашел нормальных доков по amd, но судя по тому что я смотрел - последний их зен где-то на уровне хасвела(а может даже выше). Всё остальное слишком устарело. Хотя и появилось недавно. Но и интел со времён хасвела не особо продвинулся.
>У них же некоторые наборы инструкций вендороспецифичные, что даёт вроде как разную картину производительности при -march=native против бинарных сборок того же линукса, гцц, хрома для "широкого круга".
Компилятор не особо что-то уникальное юзает и тут его некуда применить. Хотя на самом деле есть куда. Допустим есть bmi с нормальными трёхоперандными инструкция для манипуляции битами. Они и называются так. И здесь от них был бы профит, но компилятор не осилил.
Но потом в будущем мы разберёмся со всем этим. Нужно добить этот бенчмарк говна "по правилам", а потом мы уже забьём на правила. И там всё будет.
Также интересно твоё мнение о роли цпу от амд в бенчах.
>Также интересно твоё мнение о роли цпу от амд в бенчах.
УдалитьВ плане технических аргументов здесь я могу только ретранслировать пропаганду. Увы.
Лично я хочу при покупке дескопа (не ноута) купить цпу + гпу на амд, чтобы поддержать конкуренцию кошельком. Сколько возгласов я читал "амд со своим райзеном заставила интел шевелиться". И "не дадим интел чувствовать себя монополистом и думать, что покупатели сожрут любое говно" по мотивам. Лично я согласен с этими тезисами. Но покупку этого ПК я смогу аж через N>=6 месяцев.
Я согласен, что у амд лучше соотношение цена-производительность, но греется так, что нельзя экономить на системе охлаждения.
Я читал, что инженеры интел учавствуют в разработке гцц, но без понятия по поводу инженеров амд. А это ведь влияет на то, как компилятор поддерживает оптимизации именно для амд. Также при сборке тех же бинарных пакетов любых программ и для винды, и для линя, собирают так, чтобы набор инструкций поддерживался и на интел, и на амд, и на не слишком старом говне. Ведь jit для С++ программ не имеет смысла, не так ли?
Какое же говно тут комменты. Я даже не заметил сообщения.
Удалить>Я читал, что инженеры интел учавствуют в разработке гцц, но без понятия по поводу инженеров амд.
Какие-то микроархитектура-специфичные оптимизации итак никто не делает. Почти всё общее. Единственное что там микроархитектурное - это поддержка генерации всяких расширений. Но сама генерация из говнокода подобных расширений не особо работает, вернее не работает почти никогда.
>Также при сборке тех же бинарных пакетов любых программ и для винды, и для линя, собирают так, чтобы набор инструкций поддерживался и на интел, и на амд, и на не слишком старом говне.
Нет, там собирается под самое старое говно. Просто amd64 не совсем(по меркам истинного говна) старое. Там везде есть sse, допустим. Под это и собирается.
>Ведь jit для С++ программ не имеет смысла, не так ли?
Нужно понимать, что когда сектанты говорят про jit - они врут. Им jit нужен не для "собирать софт про таргет" и не для оптимизаций "уникальных для jit" - это всё чушь. Им jit нужен именно для возможности трансформации скриптухи в нормальный код. И там jit неуправляемый.
Управляемый же jit, как и vm - С++ нужны. Но там совершенно другие мотиваторы, нежели у скриптухи.
https://www.youtube.com/watch?v=Vwr_iOQlEQk
ОтветитьУдалитьСобрал и с этими флагами:
ОтветитьУдалитьhttps://pastebin.com/4b5ajm5x
gcc -s:
https://pastebin.com/5C05d5vV
Точнее не 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
Вот ещё на AllWinner H6 протестил (плата OrangePi Lite2)
ОтветитьУдалитьhttps://pastebin.com/J4VDpKES
asm:
https://pastebin.com/cK81N3CH
Выполнение этого бенча на arm имеет особую ценность! Правда сектанты могут игнорировать разницу между архитектурами в своей пропаганде.
УдалитьНа самом деле самым идеальным примером тут будет именно что-то типа влива. Я хотел, да и мне кто-то предлагал уже купить итаник. Но мне не нравится древность. Ждём эльбруса. Хотя судя по всему мы никогда его не дождёмся, т.к. у них фронт говно и нормальный С++ мы вряд-ли там соберём, но возможно к тому времени cbe не особо сдохнет, либо руками код придётся генерировать.
УдалитьНо да, сектанты верят в том, что архитектуры какие-то там разные и оптимизировать ничего нельзя. На самом деле это полная чушь. Физика одна, логика одна - законы мироздания едины для всех. Существуют, конечно, какие-то специфичные вещи, но в целом правила едины для всех.
Особенно смешно слушать сектантов, которые рассказывают о том, что да там инлайн говно. Да на армах. Да кукареку.
https://pastebin.com/T9kXZXfF
ОтветитьУдалитьhttps://pastebin.com/9W5EhmGa
Шома, приди в себя, ты больше не модератор.
ОтветитьУдалитьЦарь, возвращайся на ЛОР. Шома больше не модератор, а простой чешский гей )) Скоро я стану модератором и не буду тебя тереть.
Удалить