170 похожих чатов

Почему бенчмарки гоняют на маках везде? я сервера не на

маках держу, а разница на epyc-е каком-нибудь может быть в другую сторону

21 ответов

30 просмотров

там есть бенчмарки на Ryzen 5 3600 и i7 3930k если у вас есть возможность запустить на условном Epyc или Xeon то с радостью приму 🙂

Alexey-Ermakov Автор вопроса
Roman Sharkov
там есть бенчмарки на Ryzen 5 3600 и i7 3930k есл...

я на ржавом себе когда парсер выбирал - гонял тесты на целевом железе на aws в 4-5 долларов уложился :)

Alexey Ermakov
я на ржавом себе когда парсер выбирал - гонял тест...

в любом случае с удовольствием приму результаты на другом железе) но в целом глобальной разницы быть не должно

Alexey-Ermakov Автор вопроса
Roman Sharkov
в любом случае с удовольствием приму результаты на...

у меня были прям кардинально разные, но это специфично для моего случая, возможно

Alexey Ermakov
у меня были прям кардинально разные, но это специф...

тут в целом идёт оптимизация на instruction-level parallelism, сокращение branch misprediction до минимума и удаление всего возможного жира включая минимизацию вызова функций

Roman Sharkov
там есть бенчмарки на Ryzen 5 3600 и i7 3930k есл...

закинул пр с результатами бенча на 2 х E5-2667 v2

Anton
закинул пр с результатами бенча на 2 х E5-2667 v2

спасибо! как и предполагалось, соотношения практически не отличаются. я конечно не могу убедиться что бенчмарк был проведён корректно (потенциальные источники шумов были исключены до максимуму, throttling'а не было, и т.д.)

маки априори так себе платформа для бенчмарков

Alexey-Ermakov Автор вопроса
Павλо 🇺🇦
маки априори так себе платформа для бенчмарков

ну, пока сервера на армах не распространены - да я об этом и написал

Alexey Ermakov
я на ржавом себе когда парсер выбирал - гонял тест...

А кто то запускает софт на bare metal и результаты тестов на условном aws им ничего не дадут

А можно не брать и на одном железе сравнить библиотеки, чтобы увидеть разницу )

Alexey-Ermakov Автор вопроса
Павλо 🇺🇦
маки априори так себе платформа для бенчмарков

osx очень много иногда документированной магии имеет внутри - например на М1 тот же шедулер имеет свою логику раскидывания задач по ядрам, на которую невозможно повлиять и которая может вызывать много приколов если вдруг у тебя нагрузка стала странной. То есть есть задачи когда 4 потока казалось бы идеально распаралеливающегося кода (где каждый тред не зависит от работы соседа) могут оказаться быстрее чем 8 (на М1, точнее быстрее чем 5, 6, 7 и скорее всего 8). И логика этого всего меняется от версии ОС (в 12-ой макоси поведение было чуть другим чем в 13-ой)

Anton
А можно не брать и на одном железе сравнить библио...

а зачем, если мы получим де-факто лишь разные циферки, соотношение останется примерно прежним

Павλо 🇺🇦
а зачем, если мы получим де-факто лишь разные цифе...

ну окей, это верно лишь в рамках го. В рамках нормальных языков с нормальными оптимизаторами и -march=native флагом, могут всплыть новые детали, связанные со специфичными инструкциями, недоступными ранее

Павλо 🇺🇦
тем более

это все о том, что бенчмарки проводить сложно и можно случайно получить мусор в качестве результата, если ты случайно сделал что-то не то. Другой пример - в osx есть системный blas, который на самом деле интерфейс к Accelerate Framework’у везде, где это возможно. И если цель побенчмаркать только процессор - можно на этом погореть и получить странные результаты. Притом на всем коде, что линкуется с blas’ом.

Павλо 🇺🇦
ну окей, это верно лишь в рамках го. В рамках норм...

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

Vladimir Smirnov
Надо еще помнить, что native не определяет ничего,...

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

Павλо 🇺🇦
говоря про корнер-кейсы, мы можем дойти до неточно...

Ну корнер кейс или нет, а Zen 4 появился только в gcc 13.1, который вышел в апреле. А вот процессор вышел в сентябре прошлого года. И все это время тюнить надо было вручную хотя бы по набору инструкций. А так еще нужно правильно расставлять цену каких-то инструкций.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта