1.1, Аноним (1), 16:11, 28/10/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +14 +/– |
> Код реализации CRC32C уменьшен примерно в 10 раз (с 4546 до 418 байт).
Наконец-то правильный академический код добрался до Linux.
| |
|
2.2, swarus (ok), 16:15, 28/10/2024 [^] [^^] [^^^] [ответить]
| +12 +/– |
на старых процессорах не могущих в предсказание-предвыполнение старый код быстрее
| |
|
3.4, нах. (?), 16:17, 28/10/2024 [^] [^^] [^^^] [ответить]
| +3 +/– |
Не исключено что на могущих, но имеющих чуть меньшую глубину очереди - тоже быстрее.
Но мерять вам интел запретил.
| |
|
4.31, Аноним (31), 17:09, 28/10/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> "Но мерять вам интел запретил."
Интел выкладывает весь мёд для повышения капитализации перед продажей Квалкому.
| |
|
|
6.106, Аноним (106), 08:52, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
Обратите внимание на дату публикации. Это показатели задолго до публичного скандала с саморазлагающимися процессорами последних поколений.
| |
|
|
8.179, Аноним (179), 22:15, 29/10/2024 [^] [^^] [^^^] [ответить] | +1 +/– | Да Но публичный скандал разразился после Примерно в июле текущего года До это... текст свёрнут, показать | |
|
9.182, Аноним (182), 02:59, 30/10/2024 [^] [^^] [^^^] [ответить] | +1 +/– | А теперь подъехали тесты последнего их поколения которое на равные с 11 вот не... текст свёрнут, показать | |
|
|
|
|
|
4.46, Аноним (-), 17:51, 28/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Не исключено что на могущих, но имеющих чуть меньшую глубину очереди -
> тоже быстрее.
Вон то должно быть так же или быстрее на почти всем отдаленно напоминающим современный проц, чуть ли не эпохи первопня, уже умевшего спекулятивщину.
| |
|
3.23, Аноним (-), 17:01, 28/10/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
> на старых процессорах не могущих в предсказание-предвыполнение старый код быстрее
Вот и сидите на старых процессорах со старым ядром.
Хлам не должен замедлять прогресс, особенно когда речь идет о +66.8% прироста.
| |
|
4.137, _ (??), 17:37, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> особенно когда речь идет о +66.8% прироста.
Да, но - прироста _только_ в расчёте CRC32 сумм. ... А теперь ты берёшь и смотришь _где_оно_ещё_осталось_?!?! ;-)
И понимаешь что это громогласный анонс об установке на паравоз новейшей карбид-вольфрамовой турбины 8-о Повышает экономичность паровоза серии "овца" аж на "+66.8%"!!!
Ну что - "запануемо"?!? ;-)
PS: Тут вон - всё что меньше sha256 списывают ...
| |
|
5.144, Аноним (144), 18:21, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> А теперь ты берёшь и смотришь _где_оно_ещё_осталось_?!?!
Во всех современных файловых системах, например.
> Тут вон - всё что меньше sha256 списывают ...
Слышал звон, да не знаешь где он. SHA1 спысывают *для задач криптографии*.
| |
5.151, Аноним (-), 19:15, 29/10/2024 [^] [^^] [^^^] [ответить] | +/– | В чертовой куче протоколов, форматов файлов, ФС и проч - как чексумы для обнаруж... большой текст свёрнут, показать | |
|
6.172, _ (??), 21:05, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
А то, для чего ты хочешь его пользовать ... так уже миллион лет есть да хоть blacke* ! , раз уж ты любитель прогресса, то будь последователен, как минимум! :)
Основная фишка CRC32 - что оно реализуется даже на контроллере стиральной машинки :) В линуксе оно быть должно, но пользовать его нынче ... :)
| |
|
7.175, Аноним (-), 21:26, 29/10/2024 [^] [^^] [^^^] [ответить] | +/– | Чего есть Если это чукотское название Blake2 и проч, оно производительное тольк... большой текст свёрнут, показать | |
|
|
|
|
3.36, Аноним (-), 17:19, 28/10/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> на старых процессорах не могущих в предсказание-предвыполнение старый код быстрее
Это каких? 486 чтоли? Они пропатчили x86 реализацию, и если x86 такое не умеет - это что? У вас x86 древнее Haswell?
| |
|
|
5.57, Аноним (-), 18:10, 28/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Haswell - это не x86. Это haswell.
Haswell это микроархитектура одного из x86(-64) процессоров.
| |
|
4.92, _kp (ok), 23:51, 28/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
Ну, у меня ноут на i5-3210.
Конечно не основной, но для 3д печати, интернета и ютубов в гараже - и он годен! На последнем Ubuntu, KDE, и не жужжит.
А производительность, понятие относительное. Вот, Windows планшеты совсем недавно этого старичка по производительности обошли, а Андроид планшеты до сих пор клячи, и ничего, народ радуется флагманам.
А по сравнению с упомянутым i5, и Haswell конфетка.
| |
|
5.94, Аноним (-), 03:08, 29/10/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Ну, у меня ноут на i5-3210.
Я думаю что OoO механика уже и на нем была - в примерно том же виде. Это знание появилось в середине нулевых, когда до народа стало доходить что порой излишний unroll даже все портит, вымывая кеш жирным кодом лишний раз и ничего нового не давая т.к. команду бранча параллельно обсчитали и оверхеда и так особо не было, оно так только для in-order без спекулятивщины и предсказаний. А в x86 это все уже есть очень давно. Ну вот кроме некоторых атомов разве что.
| |
|
4.96, Аноним (-), 03:19, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
Это не тоже самое но, для понимания разницы между процессорами и такое есть. Чтобы увеличить в браузере с прокруткой, нажать на картинку в браузере, в верхнем правом углу закрыть картинку X, только тогда появляется увеличенная картинка с прокруткой - так в Лисе. https://ibb.co/GdfvWHF
| |
|
5.97, Аноним (-), 04:02, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
У современных процессов те что после примерно 2020 разработанных это будет или тысячи МиБ/сек. или десятки тысяч точно не помню.
| |
|
|
3.40, Аноним (40), 17:31, 28/10/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> на старых процессорах не могущих в предсказание-предвыполнение старый код быстрее
В случае x86 это не старый а очень старый.
| |
3.67, старый процессор (?), 19:41, 28/10/2024 [^] [^^] [^^^] [ответить]
| +3 +/– |
Те кто сидят на старых процессорах за производительностью не гонятся. И за новыми не lts ядрами тоже, пройдет ещё 15 лет прежде чем к ним придет этот патч.
Нет никакой логики тормозить новое ради ускорения старого.
| |
3.112, n00by (ok), 13:06, 29/10/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> на старых процессорах не могущих в предсказание-предвыполнение старый код быстрее
То есть процессор неспособен заблаговременно выбрать адрес из таблицы переходов, но исполняться волшебным образом будет быстрее. И это без учёта загрязнения кеша и задержек из-за чтения ОЗУ.
| |
3.129, Аноним (129), 16:15, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
Чего там на страрых? Cortex-A53 же in-order. И их ещё полно, где используется. И в сетевых девайсах тоже, ага, CRC32.
| |
|
2.103, mos87 (ok), 07:27, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
Теперь Linux станет такой же ненужной поделкой, как академические ОС на грантах?
| |
|
3.115, Аноним (115), 13:39, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
Теперь люди будут переходить на академическую ОС и закапывать это ядро.
| |
|
|
1.3, нах. (?), 16:16, 28/10/2024 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– |
> на процессорах AMD Zen 2, 6.4% - Intel Emerald Rapids и 4.8%
> Intel Haswell
а у кого процессор немодный - идет найух.
Не зря Линукса в консультанты интела взяли. Вот, работает человек над повышением продаж.
P.S. я правильно понимаю что они даже не почесались потестировать на каких-то других процессорах?
| |
|
|
3.15, Игорь (??), 16:51, 28/10/2024 [^] [^^] [^^^] [ответить]
| +3 +/– |
> Этим процам больше 5 лет
Ага, особенно Intel Emerald Rapids, которые вышли в декабре 2023г
| |
|
4.42, Аноним (-), 17:38, 28/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Ага, особенно Intel Emerald Rapids, которые вышли в декабре 2023г
Но профит есть и на Haswell который весьма немолодая штука уже. И вообще это оптимизация родом из середины нулевых, а то что всякие похонахи не отпустили тормоз с еще тех пор... а вот эти - уже отпустили! :)
| |
|
|
2.7, Oe (?), 16:33, 28/10/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
А зачем тебе CRC32C на обогревателе со встроенной функцией компьютера?
| |
2.25, Аноним (-), 17:04, 28/10/2024 [^] [^^] [^^^] [ответить]
| –6 +/– |
AMD Zen 2 вышли в 2019 году.
Сейчас их даже бомж в качестве подарка не примет!
> P.S. я правильно понимаю что они даже не почесались потестировать на каких-то других процессорах?
Просто никому нет дела до всякого старья.
| |
|
|
4.41, Аноним (-), 17:37, 28/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> подари мне, пожалуйста?
С радость, но уже остались только Zen 4 и Zen 5.
Придется подождать пару лет.
| |
|
3.119, Ivan_83 (ok), 15:09, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
У меня zen2 работают и менять я их не собираюсь, ибо тот же zen2 не сильно лучше, и в целом на АМ4 платформе разница такая что смысла особо нет менять проц если он у тебя уже есть.
| |
|
2.32, Аноним (32), 17:11, 28/10/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
> я правильно понимаю что они даже не почесались потестировать на каких-то других процессорах?
Как будто другие процессоры кому-то интересны в бизнесе. IBM со своими сам справится, на китайские лонгсуны всем просто плевать (кроме китая, на который всем тоже плевать), а больше ничего особо так и нет. Огороженный Apple silicon? Так на них линукс ставят только энтузиасты, бизнес макось и так устраивает. Так что всё правильно сделали, неча усилия распылять. Кому очень надо — patches are welcome (если это не байКал хехехе).
| |
|
3.38, нах. (?), 17:27, 28/10/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Как будто другие процессоры кому-то интересны в бизнесе.
я и говорю - кто не успел купить последнего поколения - тот л-х педальный, и должен, собака, страдать!
> Кому очень надо — patches are welcome
не, это так не работает. Продажи интел не должны страдать от твоих косоруких патчей!
Иди вон колор на колор поисправляй для начала.
| |
|
4.43, Аноним (-), 17:38, 28/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> я и говорю - кто не успел купить последнего поколения - тот л-х педальный, и должен, собака, страдать!
А что посидеть на старом ядре уже нельзя? Ну типа корона отвалится?
На крайняк есть гентушники, они только рады ядро пересобирать.
> Иди вон колор на колор поисправляй для начала.
Не, сейчас гораздо популярнее проверять цвет пачпорта.
Вот ссаными тряпками выгнали 11 штук и... ядро ускорилось!
Надо провести серию экспериментов - выкидывать по 1 или пачкой, со скандалом или по тихому, говорить прямо "вы №№№№" или "ну вы же понимаете ситуацию"...
В общем простора для исследований просто море.
| |
|
5.45, Аноним (-), 17:50, 28/10/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
> А что посидеть на старом ядре уже нельзя? Ну типа корона отвалится?
> На крайняк есть гентушники, они только рады ядро пересобирать.
Вы издеваетесь чтоли? Вон то дает эффект на почти всех более-менее не ископаемых процах умеющих OoO. Модуль для crc-intel патчили - так что всяким ARM и прочим RISCV где in-order еще бывает местами актуально ради мелкости ядер - это вообше пофиг.
>> Иди вон колор на колор поисправляй для начала.
> Не, сейчас гораздо популярнее проверять цвет пачпорта.
> Вот ссаными тряпками выгнали 11 штук и... ядро ускорилось!
Торвальдс очень понятно объяснил кой-кому что за ними накопился нехилый техдолг.
| |
5.71, нах. (?), 19:59, 28/10/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> А что посидеть на старом ядре уже нельзя?
ну типа без исправлений багов? Можно, разрешаю.
> В общем простора для исследований просто море.
угу, а через недельку расстрелять всех рыжих. И, пожалуй, велосипедистов.
Вдруг ведро ускорится. Причем на вычислении crc32, который придумали когда компьютеры были большие, и специально для того чтоб его было несложно вычислять на любом калькуляторе.
| |
|
|
|
2.39, Аноним (40), 17:29, 28/10/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> а у кого процессор немодный - идет найух.
Что за проц такой?То что столь жесткий unroll циклов не имеет особого смысла на процах с OoO известно с середины нулевых, наверное. Почему до вон тех дошло только в 2024 - загадка, но хорошо что дошло, минус 3 с фигом кило мусора без каких либо потерь и даже вот с профитом.
> Не зря Линукса в консультанты интела взяли. Вот, работает человек над повышением продаж.
Повышением продаж ... чего? OoO с предсказаниями появился еще в первопнях по моему.
> P.S. я правильно понимаю что они даже не почесались потестировать на каких-то других процессорах?
На чем надо было crc32-intel тестировать? На первом пне? 486?
| |
|
3.78, Аноним (78), 20:39, 28/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> На чем надо было crc32-intel тестировать? На первом пне? 486?
На первых atom, они как раз без OoO. С другой стороны, они и 15 лет назад в момент своего выхода были непойми для чего созданы, учитывая, что на них тормозило абсолютно всё.
| |
|
4.81, Аноним (-), 20:55, 28/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> На первых atom, они как раз без OoO. С другой стороны, они
> и 15 лет назад в момент своего выхода были непойми для
> чего созданы, учитывая, что на них тормозило абсолютно всё.
Это наверное единственные x86 которые могут быть как-то затронуты. И то - ждем когда их владельцы забенчат это. Ну, если им оно надо.
| |
|
3.138, _ (??), 17:49, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Почему до вон тех дошло только в 2024 - загадка
Загадка?! :) Да ладно! Просто прикинь кому оно нынче надо это CRC32. Ты бы ещё на драйвер для флоппи пожаловался :)
| |
|
4.153, Аноним (-), 19:20, 29/10/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Загадка?! :) Да ладно! Просто прикинь кому оно нынче надо это CRC32.
> Ты бы ещё на драйвер для флоппи пожаловался :)
На минуточку дефолтовый чексум в btrfs. Обслуживающем всего-то пару миллиардов хомяков фэйсбука. Для обнаружений кривого хардвара - вполне хватает. А вы можете SHA256 считать пытаясь угнаться за энтерпрайзным SSD конечно. Или заякорить перфоманс всего IO счетом SHA256.
| |
|
5.165, _ (??), 19:56, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
Согласно вот этому от самих btrfs: https://btrfs.readthedocs.io/en/latest/Checksumming.html
Digest Cycles/4KiB Ratio Implementation
CRC32C 470 1.00 CPU instruction, PCL combination
BLAKE2b 14500 34 builtin, reference impl.
И если _никто_ не менял, то ... им станет лучше, да :)
Но это много говорит о людях которые не сделали единственное изменение в конфиге чтобы улучшить производительность НА ДВА ПОРЯДКА! 8-)
| |
|
6.176, Аноним (-), 21:37, 29/10/2024 [^] [^^] [^^^] [ответить] | +/– | О, какая милота Гражданин раздававший мне ценные советы - наконец то сам изволи... большой текст свёрнут, показать | |
|
|
|
|
|
1.13, Аноним (48), 16:48, 28/10/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
>Код реализации CRC32C уменьшен примерно в 10 раз (с 4546 до 418 байт).
Там в Линуксе совсем долбанулись? Реализация любого CRC тривиальна и по памяти делается.
| |
|
|
3.28, Аноним (28), 17:07, 28/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
И великолепно показывает, что даже на ассемблере можно написать какой-то "страх и ужас")
Зато как в соседней теме про tinyGO рассказывали "вы бы еще микроконтроллер на питоне писали, бубубу!", "вебассебли замедлит выполнение"..
А вот как оно вышло, Михалыч)
| |
|
4.51, Аноним (-), 17:58, 28/10/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ну так покажите ваши варианты CRC32 на питоне и игогошке которые порвут вон те? :)
| |
|
5.139, _ (??), 17:53, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
Не порвут но там где CRC32 ещё применяется ... окажется что там они _тянут_ ... :)
У меня студень лет 5 назад на питоне сделал, ну да по сравнению с Си-шной тормозит, но для чего он делел оно _успевало_ :) БратЫ Ынежёнегры почесали что положено чесать, сделали смок лоад тест ... выжило 8-) Ну и забили :)
| |
|
6.140, _ (??), 17:54, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
На игогошке - внезапно был быстрее :) Видимо там не ан-ролило. Теперь видимо Си-неый снова быстрее :)
| |
6.177, Аноним (-), 21:45, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Не порвут но там где CRC32 ещё применяется ... окажется что там они _тянут_ ... :)
Тянут что? Питание из питальника? Можете посчитать blake2 для энтерпразйного SSD - посмотрим сколько проца это сожрет. Разложить btrfs на энтерпрайзный SSD - вероятно обычные будни обычного фэйсбука с его 2 млрд юзерей.
> У меня студень лет 5 назад на питоне сделал,
Тут такой уровень что даже комментировать неудобно.
| |
|
|
|
|
2.49, Аноним (-), 17:57, 28/10/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Там в Линуксе совсем долбанулись? Реализация любого CRC тривиальна и по памяти делается.
И, конечно, ты порвешь по перфомансу хотя-бы вариант из Linux? А то когда какая-нибудь ФС на быстром SSD захочет чексумы блоков им например считать, или что там - скорости много не бывает.
В Linux был довольно навороченый вариант, с разворотами циклов от 1 до 127, джампом в нужный и .. и оказалось что нет никакого смысла гонять простыню 127 циклов когда разворот на 4 цикла дает тот же или даже более хороший результат. Получилось дохрена кода - без какого либо профита.
| |
|
3.54, Аноним (48), 18:05, 28/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
>И, конечно, ты порвешь по перфомансу хотя-бы вариант из Linux?
Нет, конечно. Если нужна супер-производительность для брутфорса, я GPU использую. Если нужна супер-производительность на CPU - то SIMD.
| |
|
4.56, Аноним (-), 18:09, 28/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Нет, конечно. Если нужна супер-производительность для брутфорса, я GPU использую.
> Если нужна супер-производительность на CPU - то SIMD.
Ух да, а теперь покажи переключения контекстов с этим всем? А 1000 раз в секунду как тебе? Обычные тики "десктопного" ядра линукс если что. Ты уверен что там оверхед от сохранений контекста не перевесит профит? :)
| |
|
|
6.124, Аноним (124), 15:55, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> А как же tickless?
Как, как... вы там бенчмаркать собрались - ненагруженную систему в вакууме чтоли? Если она не нагружена - то о чем бенч?! Ядро же не считает CRC32 чисто для прикола?! А если нагружена - так ядро нынче heavily threaded, и вообще :)
Так что размер контекста - некий аргумент. Чем он жирнее, тем хуже задачи переключать получается.
| |
|
7.145, Ivan_83 (ok), 18:28, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
Я вам указываю что вероятно уже нет никаких 1000 переключений контекста в секунду.
А в ядре этот CRC32 вообще скорее всего для использования в дровах.
| |
|
8.155, Аноним (-), 19:26, 29/10/2024 [^] [^^] [^^^] [ответить] | +/– | А я указываю что ядро Linux уже давно heavily threaded, даже само по себе А так... большой текст свёрнут, показать | |
|
|
|
|
|
3.141, _ (??), 17:58, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Получилось дохрена кода - без какого либо профита.
Ну просто на CRC32 всем ... А так то давно на всех площадках озвучивают что нынче основной метод оптимизации жто сделать так чтоб твой код влазил в кэш :) Просто до ненужно вот только в 24 году руки дошли. Да никто и не заметит :)
| |
|
|
1.14, Аноним (48), 16:51, 28/10/2024 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
>x86_64 CPUs can predict loops well, so it
is fine to just use a loop instead
То есть на пни болт положили?
| |
|
|
3.125, Аноним (124), 15:56, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Какие, первые? Так давно уже.
> А в 4м это есть из коробки.
Да и 4-е лучше в эту коробку - вернуть уже, или как брелок использовать. Жрет много, считает мало, управление питанием никакое. Это отопитель воздуха со встроенной функцией счета был.
| |
|
|
1.17, Аноним (48), 16:52, 28/10/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Также удивляет то, что написано на асме, вместо сишки. Что там такого, что Clang на -O3 не сможет выоптимизировать?
| |
|
2.52, Аноним (-), 18:02, 28/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Также удивляет то, что написано на асме, вместо сишки. Что там такого,
> что Clang на -O3 не сможет выоптимизировать?
Явный unroll - при том в изначальном варианте дико оверинженернутый, с unroll от 1 до 127 и вычисляемым джампом в нужный из. И тут вдруг оказалось что этот джамп + такие простыни не являются каким-то улучшением. И это известно наверное уже около 15-20 лет так то.
Unroll может как-то помочь на МК и малохольных ядрах типа (low end) in-order апликушников на ARM/RISCV. На всем остальном польза от него весьма варьируется и даже может быть вред.
| |
|
3.142, _ (??), 18:15, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Явный unroll - при том в изначальном варианте дико оверинженернутый
Это для нонешних хм... программерофф он "дико оверинженернутый" :)
В те ремена это был стандартный метод оптимизации, это любой джун с закрытими глазами делел :) Ну можен не на 128 веток, но и не все ведро писали :)
| |
|
4.147, Аноним (-), 18:35, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Это для нонешних хм... программерофф он "дико оверинженернутый" :)
Ну как старые програмизды написяли мы уже видим)
Проблема же не в оверинжениринге, а в том что это лабуда еще и тромознутая.
> В те ремена это был стандартный метод оптимизации, это любой джун с закрытими глазами делел :)
С таким же "качеством" или получше?
> Ну можен не на 128 веток, но и не все ведро писали :)
И слава богу)
| |
|
5.159, Аноним (-), 19:33, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Ну как старые програмизды написяли мы уже видим)
> Проблема же не в оверинжениринге, а в том что это лабуда еще
> и тромознутая.
Такая оптимизация актуальна только для in-order CPU без спекулятивщины, и даже там вымывание кеша такой простыней может внести коррективы. Ибо если мы 100500 циклов ждали оперативу, дальнейшее улучшение счета на 5% мало что меняет. А чем жирнее кот тем менее вероятно что всегда будет только cache hit без ожидания RAM фиг знает сколько (DRAM даже от in-order ядер сильно отстает сейчас).
| |
|
4.158, Аноним (-), 19:28, 29/10/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Это для нонешних хм... программерофф он "дико оверинженернутый" :)
Вон то уже попахивало obsolete повадками - годике так в 2005 наверное. А тут, вот, нашлась какаха которая жрала почти 4 кило ради того чтобы все ... немного притормозить?! :))
А нашлась она поди потому что супер-скоростное IO появилось - и у народа стали появляться вопросы - мол, а чего счет примитивных чексум такой % проца то жрет? Ну вот видимо кто-то запустил профайлер и сделал выводы :)
| |
|
5.167, _ (??), 20:23, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> А нашлась она поди потому что супер-скоростное IO появилось - и у народа стали появляться вопросы - мол, а чего счет примитивных чексум такой % проца то жрет? Ну вот видимо кто-то запустил профайлер и сделал выводы :)
Вот ППКС прям! :)
Держи плюса за трасе-дебаг-интерпрет :)
| |
|
|
|
|
|
2.24, Аноним (-), 17:02, 28/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
Вдруг ты будешь запускать ядро на каком-то умном унитазе, где SIMD нету? А?
У нас же одно ядро для всего, от микроконтроллера до суперкомпьютера.
Туда пихают дрова, блобы и все, чего не жалко.
| |
|
3.50, Аноним (48), 17:58, 28/10/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
CPUID и патчинг никто не отменял. Либа для CRC на сишке, которую я юзал (официальная реализация) умеет в такое. По реализации для каждого набора инструкций, и диспатч через CPUID.
| |
|
|
5.117, Аноним (115), 13:45, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
Оно и так вырасло на хедеры от амд и этого прироста хватило бы на реализацию под каждое семейство 86-х процессоров на асме явно не один раз.
| |
|
6.127, Аноним (124), 15:58, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Оно и так вырасло на хедеры от амд и этого прироста хватило
> бы на реализацию под каждое семейство 86-х процессоров на асме явно
> не один раз.
При том на хидеры от амд - уже покушаются, с идеей децимировать спруту щупальца. Как раз за это.
| |
|
|
|
|
2.55, Аноним (-), 18:06, 28/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Ещё удивляет неиспользование SIMDа.
А сохранение контекста с дохрена регистров тебя не удивляет?
| |
|
|
4.95, Аноним (-), 03:15, 29/10/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Не с "дохрена", а только с задействованных.
А как ты вообше намерен информировать переключалку задач какие регистры задействованы - без огромного овеорхеда от этого, перевешивающего профит?
По примерно тем же причинам, насколько я помню, в ядре и плавучка забанена - чтобы немеряный state FPU не сохранять на каждый пшик.
| |
|
5.174, Аноним (174), 21:21, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
Зачем информировать? Просто отключаем прерывания, сами сохраняем, и сами восстанавливаем, и включаем прерывания обратно. CRC - быстрая операция, подождут.
| |
|
6.178, Аноним (-), 21:53, 29/10/2024 [^] [^^] [^^^] [ответить] | +/– | Затем что переключалка - в non-voluntary preempt приходит сама Берет поток за ш... большой текст свёрнут, показать | |
|
7.180, Аноним (180), 23:53, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
>Быстрая операция по сравнению с чем? И для какого объема?
Для сетевого пакета. Кто обрабатывает в ядре гигабайты, используя его механизмы "доверенной загрузки" для энфорсинга DRM - тот сам виноват, и на его нужды вообще можно забить.
>И точно железо без прерываний столько подождет без нежелательных эффектов типа packet loss и проч?
А железу то что? Оно знай себе в буфер кладёт, без всякого участия процессора. Разумеется, если кольцевой буффер заполнится, то будет потеря пакетов. Но это неизбежно даже при включённых прерываниях. Отключая прерывания на время вычисления и юзая SIMD мы просто торгуем часть гарантированной латентности на в обмен на негарантированную оную (но в большинстве случаев - такую же), зато с высоким throughput.
| |
|
8.183, Аноним (183), 03:02, 30/10/2024 [^] [^^] [^^^] [ответить] | +/– | А в каких пакетах ядро CRC32 для сетевых пакетов оптом само вот именно CRC32 счи... большой текст свёрнут, показать | |
|
|
|
|
|
|
|
3.143, _ (??), 18:18, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
... кому было нужно - те и сделали. Так то вроде любой вариант на SIMD-ы ложится аккуратненько ...
| |
|
|
5.168, _ (??), 20:27, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
Тут судить не берусь.
Оно ж как говорят ындейцы - фор вхум хау!(С) ... Ну разве что - "это красиво"(С) :)
| |
|
|
|
|
1.22, Аноним (-), 17:01, 28/10/2024 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
crc32.c был добавлен в 2.6 19 years ago
crc32c-pcl-intel-asm_64 12 years ago
Т.е все эти годы в ядре, жил код, который был замедленный в 10 раз?!
У миллионов людей по всему миру.
И ведь кто-то сидел, писал 128 развёрнутых циклов...
А потом эти "писаки" бухтят, что другой язык на 0.5% медленнее и на 10 минут дольше собирается *FACEPALM*
| |
|
|
3.33, Аноним (28), 17:13, 28/10/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Айфоны замедляют. Чем linux хуже.
Линуск не хуже, линукс лучше!
Он был замедлен еще тогда, когда айфонов даже в проекте не было.
| |
|
2.84, Аноним (-), 21:00, 28/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Т.е все эти годы в ядре, жил код, который был замедленный в 10 раз?!
Не в 10 разумеется.
> У миллионов людей по всему миру.
> И ведь кто-то сидел, писал 128 развёрнутых циклов...
Генератор внезапно. Руками фигачить привилегия тех кто програмить не умеет.
| |
|
|
2.110, Аноним (110), 10:25, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
а какие претензии? кто-то обещал что они обязательно найдут? может да, а может нет, но шанс сильно больше чем у закрытого кода, это ж просто вероятность
| |
|
1.69, Аноним (69), 19:51, 28/10/2024 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Я похоже тупой, но я перехожу по ссылке и вижу патч, но там удалено далеко 4000 строк кода. ("Код реализации CRC32C уменьшен примерно в 10 раз (с 4546 до 418 байт).").
Я смотрю не туда? Кто-нибудь скиньте ссылку на удаление большого кол-ва кода.
Или имеется ввиду, что в патче убрали макросы развёртывания и кол-во ассемблерных команд(опкодов) в результирующем бинарнике уменьшилось значительно как указано в статье?
| |
|
2.93, Аноним (93), 00:03, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> (с 4546 до 418 байт).").
даже если по букве на строку, то 4000 строк не наберется, должно было смутить
А вообще там по ссылке про сгенерированный бинарный код
| |
2.114, n00by (ok), 13:14, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
с 4546 до 418 байт - это про машинные инструкции, а не строки кода.
| |
|
1.87, Аноним (87), 22:48, 28/10/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +6 +/– |
Ну и кто там топил за отключение защит от Spectre? Вот этот пример ясно показывает полезность защит. Без защит прирост от оптимизации кода каких-то 12%, а с включёнными - сразу аж 67%! Разница очевидна!
| |
1.102, Rock (?), 05:42, 29/10/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
О, наконец-то, обратили внимание, что кэш инструкций даже на самых современных процессорах не безразмерный, измеряется десятками килобайт и его промахи из-за непомерного разворачивания циклов слишком дорого обходятся в многозадачной среде.
| |
|
|
3.107, а (?), 09:13, 29/10/2024 [^] [^^] [^^^] [ответить]
| +4 +/– |
нет, циклы разворачивают, чтобы убрать условные переходы, которые могут останавливать конвеер из-за неправильного предсказания условия.
а маленький цикл на сотню байт гораздо вероятнее целиком поместится в кеш, чем его развернутая версия на десяток килобайт.
| |
|
|
1.113, Аноним (-), 13:07, 29/10/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Спасибо Ubuntu, что я на свой Haswell не могу по человечески установить ванильное ядро как раньше, ибо отвалятся такие приблуды как linux-modules и linux-modules-extra, а с ними и сеть.
| |
|
2.128, Аноним (-), 16:03, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Для себя год назад закрыл тему с CRC32 любого вида на любой
> платформе: https://github.com/rozhuk-im/liblcb/blob/master/include/math/crc32.h
А этому гражданину - пожизенную ссылку в XKCD # 927! И кстати как оно по перфомансу относително воооон того? А то какое-нибудь btrfs им как чексумой ФС пользуется и ваше типичное блеяние о том что и где там в очередном гениально коде не важно - решительно не катит в таких случаях.
| |
|
3.148, Ivan_83 (ok), 18:36, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
Понятия не имею, такой простой код смысла бенчить нет.
Единственное там можно поизвращатся и подобрать порог перехода от маленьких таблиц к большим или вообще отказатся от маленьких или больших таблиц.
BTRFS - может смело юзать реализацию на С, но лучше бы им было юзать сразу ту версию CRC32 что есть в некоторых процах.
В целом CRC32 не является узким местом до достаточно больших значений, и скорее оно упрётся в чтение с диска чем в проц по CRC32, даже для топовых nvme.
| |
|
|
5.170, Ivan_83 (ok), 20:31, 29/10/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Просто CRC32 не существует, их там целый ворох и различаются они по постфиксу, вот crc32c уже весьма конкретное указание на алгоритм/полином.
| |
|
4.163, Аноним (-), 19:51, 29/10/2024 [^] [^^] [^^^] [ответить] | +/– | 1 Я бы не назвал это простым кодом Довольно оверинженернутая конструкция И по... большой текст свёрнут, показать | |
|
3.164, _ (??), 19:51, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> А то какое-нибудь btrfs им как чексумой ФС пользуется
Хмм ... ну да, написано у них в доке что дефаулт - CRC32, но можно поменять ... кто и в-правду бтр гоняет, что скажете, меняете на BLAKE2b или нет?
| |
|
4.185, Аноним (-), 03:17, 30/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
>> А то какое-нибудь btrfs им как чексумой ФС пользуется
> Хмм ... ну да, написано у них в доке что дефаулт -
> CRC32, но можно поменять ... кто и в-правду бтр гоняет, что
> скажете, меняете на BLAKE2b или нет?
Чтобы проц то в 30 раз тормознуть счетом чексум? Всенепременно. Для "обычных" нужд как то заметить гнилой шнурок, проц, планку памяти, девайс, контроллер и проч - CRC32 хватает, в общем то. Единичные битовые ошибки CRC32 вообще гарантировано ловит. Проблемы могут быть только если ожидается откровенная труха оптом, там конечно за энное число попыток - пробьет и пролезет наружу. Если это актуальное соображение, можно и blake2 конечно. Но это достаточно специфичная ситуация.
| |
|
|
2.161, Аноним (-), 19:37, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Для себя год назад закрыл тему с CRC32
Очередной самописный велосипед?
Хотя... это было вполне ожидаемо.
| |
|
3.149, Ivan_83 (ok), 18:38, 29/10/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Вообще то тот код был оптимизирован под тогдашнее железо и отлично работал и работает до сих пор.
Аргументация у вас как у настоящего растиста: обозвать код плохим без аргументации.
| |
|
2.181, Аноним (-), 23:55, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
У тебя какое-то глубоко неверное понимание "растистов", то бишь нас. Я не буду гадать, как тебе удалось впасть в такие заблуждения, но если тебе интересно как, то ты как-нибудь сам разбирайся. Не надо ко мне с глупыми вопросами приставать.
| |
|
1.154, Аноним (156), 19:25, 29/10/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Crc32 и crc32c это разные причем crc32 аппаратно реализована в процах.
В прикладном коде часто используется crc32c?
| |
|
2.171, Аноним (144), 20:57, 29/10/2024 [^] [^^] [^^^] [ответить]
| +/– |
Алгоритм тот же, разные полиномы. Аппаратно в x86 реализован как раз CRC32C.
| |
|
|