Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Однострочное изменение в GCC привело к ускорению на 12% в одном тесте и замедлению на 14% в другом"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Однострочное изменение в GCC привело к ускорению на 12% в одном тесте и замедлению на 14% в другом"  +/
Сообщение от opennews (??), 24-Июн-26, 19:03 
Инженер из компании Intel внёс в набор компиляторов GCC однострочное изменение, увеличивающее вес неверного предсказания ветвления на процессорах x86. Изменение позволило повысить производительность генерируемого кода при прохождении теста 544.nab_r  на  12.7% при включении в  оптимизаций "-O2 -mtune=graniterapids" для CPU Intel Granite Rapids/Xeon 6 и на 12.1% при включении в оптимизаций "-O2 -mtune=znver5" на CPU AMD Zen5...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=65757

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

2. Сообщение от Аноним (2), 24-Июн-26, 19:14   –13 +/
Инженер из интел ускорил интел и замедлил амд? It's fine.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3

3. Сообщение от Аноним (3), 24-Июн-26, 19:17   +20 +/
Вы хоть осильте прочитать то, "комментаторы".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #4, #5, #10, #19

4. Сообщение от Аноним (2), 24-Июн-26, 19:20   +4 +/
-mtune=znver5

what seems to be the officer, problems?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #8

5. Сообщение от Аноним (5), 24-Июн-26, 19:20   +1 +/
Но именно это там и написано.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #6, #7

6. Сообщение от Аноним (6), 24-Июн-26, 19:21   +1 +/
Нет
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #22

7. Сообщение от Аноним (3), 24-Июн-26, 19:23   +1 +/
Повышение для CPU Intel Granite Rapids/Xeon 6 на 12.7%
Повышение на 12.1% при включении в оптимизаций на CPU AMD Zen5
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #9

8. Сообщение от Rev (ok), 24-Июн-26, 19:24   +/
А ещё замедлило и дженерик x86:
-mtune=generic -march=x86-64-v3
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #21

9. Сообщение от Аноним (2), 24-Июн-26, 19:39   +1 +/
это для теста 544.nab_r, прочитайте про тест Hint в третьем абзаце
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #11

10. Сообщение от Аноним (10), 24-Июн-26, 19:48   +2 +/
Да, автор изначального комментария не прочитал текст полностью, но я в голосину проорал с его комментария
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #14

11. Сообщение от Аноним (3), 24-Июн-26, 19:48   –1 +/
Да я всё прочитал и заголовок и четыре абзаца текста.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #18

13. Сообщение от хрю (?), 24-Июн-26, 20:33   +/
>struct processor_costs i386_cost = {    /* 386 specific costs */
>struct processor_costs i486_cost = {    /* 486 specific costs */
>struct processor_costs pentium_cost = {

Внушает +)))

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #17, #20

14. Сообщение от Аноним (14), 24-Июн-26, 20:37   +1 +/
Автор читал оригинальную переписку. Проблема обнаружилась на AMD, где представитель компании ответил, что они OK с этим.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #36

17. Сообщение от Аноним (17), 24-Июн-26, 20:56   +4 +/
> Внушает +)))

Да не, там еще и высокоуровневые оптимизации есть, правда на диалекте лиспа:


/* Optimize (X + (X >> (prec - 1))) ^ (X >> (prec - 1)) into abs (X).  */
(simplify
(bit_xor:c (plus:c @0 (rshift@2 @0 INTEGER_CST@1)) @2)
(if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (@0))
      && !TYPE_UNSIGNED (TREE_TYPE (@0))
      && wi::to_widest (@1) == element_precision (TREE_TYPE (@0)) - 1)
  (abs @0)))

и высокоуровневое описание железок на нем же:
https://github.com/gcc-mirror/gcc/blob/master/gcc/config/gcn...
https://github.com/gcc-mirror/gcc/blob/master/gcc/config/arm...
и промежуточные представления типа GIMPLE и RTL с оптимизацией там же.

Вот на этом фоне особенно з̵а̵б̵а̵в̵л̵я̵ю̵т̵ внушают классические опеннетные разглагольствования на тему "сишечка потому и быстрая, потому что простая и любой настоящий ш̵о̵т̵л̵а̵н̵д̵е̵ц̵ погроммист может предсказать геренируемый машинный код!" 😀

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #54

18. Сообщение от Аноним (2), 24-Июн-26, 20:59   +/
тогда в чём претензии к тому, что амд замедлился?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #31

19. Сообщение от Аноним (21), 24-Июн-26, 21:06   +1 +/
> на 30% медленнее при сборке с опциями "-march=generic -mtune=znver5"
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

20. Сообщение от Аноним (3), 24-Июн-26, 21:07   +/
https://en.wikipedia.org/wiki/GNU_Compiler_Collection#Archit...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13

21. Сообщение от Аноним (21), 24-Июн-26, 21:07   +4 +/
> А ещё замедлило и дженерик x86

Какое необычное нововведение от инженера интела!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #24

22. Сообщение от Аноним (21), 24-Июн-26, 21:08   +1 +/
... на 30% медленнее при сборке с опциями "-march=generic -mtune=znver5"
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #29, #34

23. Сообщение от Bottle (?), 24-Июн-26, 21:09   +2 +/
То есть аппаратура стала настолько сложной, что в ней неспособны досконально разобраться даже штатные инженеры?
Как мы должны читать эту новость?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #25, #26, #32, #47, #53

24. Сообщение от Аноним (3), 24-Июн-26, 21:10   +/
А вы представитель сообщества и уже предложили свои изменения ?
Думали комментарием отделаться, нет уж идите пишите!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #44

25. Сообщение от Ivan_83 (ok), 24-Июн-26, 21:35   +3 +/
Проблема в том что процессоры сильно разные, и что на одном даёт ускорение на другом приводит в замедлению.
В итоге авторы софта если совсем упарываются то могут кучу оптимизированных версий кода иметь под разные процы, а авторы компиляторов стараются делать как в среднем лучше.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #27, #51

26. Сообщение от Аноним (21), 24-Июн-26, 22:11   +1 +/
> неспособны досконально разобраться даже штатные инженеры

Да, эта тенденция возникла достаточно давно уже.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

27. Сообщение от Аноним (21), 24-Июн-26, 22:13   +/
> стараются делать как в среднем лучше

В итоге видим бенчи, в которых интел - быстрые, а амд - медленные.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #30

28. Сообщение от Tron is Whistling (?), 24-Июн-26, 22:37   +/
> имеется только одна условная конструкция, преобразуемая GCC в представление на базе CMOV. Данная конструкция выполняется достаточно редко (в 3%) и её оптимизация не влияет на производительность. При этом изменение режима генерации кода привело к побочному эффекту, замедлившему выполнение более часто выполняемого кода

Если проще: ускорение одной конструкции, характерной для одного теста, привело к замедлению всех остальных, и вылезет где попало. Вот такие "оптимизации" надо выпиливать не глядя.

Ответить | Правка | Наверх | Cообщить модератору

29. Сообщение от Аноним (6), 24-Июн-26, 23:02   +/
Читайте внимательнее. Ускорило intel и amd в одном тесте + замедлило intel и amd в другом.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #48

30. Сообщение от Ivan_83 (ok), 24-Июн-26, 23:59   +3 +/
Ага, особенно эпичной была история с бенчами на проце VIA, который позволял выдавать что угодно в CPUID, в итоге один и тот же бенч когда проц был "интол" работа быстрее, а когда "амудэ" то медленее.
Но всё конечно ради потребителей было сделано, ибо оптимизированный код был протестирован только на интелах, поэтому для остальных выполнялся generic код...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

31. Сообщение от Аноним (31), 25-Июн-26, 00:01   +1 +/
Просто он тоже инженер Intel
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

32. Сообщение от Аноним (32), 25-Июн-26, 00:04   +/
> То есть аппаратура стала настолько сложной, что в ней неспособны досконально разобраться даже штатные инженеры?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

34. Сообщение от Аноним (-), 25-Июн-26, 03:46   +/
и "-march=generic -mtune=graniterapids"
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

35. Сообщение от Аноним (35), 25-Июн-26, 07:48   +/
Что пора новые процессоры покупать?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #55

36. Сообщение от Аноним (36), 25-Июн-26, 08:02   –1 +/
Ну с одной стороны - это даже по-корпоратски логично.
С другой - а где представители амд с ихними фиксами?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

38. Сообщение от Аноним (38), 25-Июн-26, 09:09   +/
А если "включить" голову и, невзирая на боль, подумать, то можно уяснить, что регресия наблюдается в тестах на скорость компиляции исходных кодов, что не отменяет результирующего прогресса в скорости выволнения сгенерированного кода. Это вполне логично. Если мы запускаем, например, архиватор с максимальной степенью компресии, то в скорости сжатия у нас будет регрессия, а в уменьшении размера полученного архива - прогрессия. Но и код мы компиоируем не для скорости этой компиляции, а для скорости работы этого кода, так же как и сжатие архивов мы делаем для уменьшения размера этих архивов.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #50

39. Сообщение от Аноним (39), 25-Июн-26, 10:52   +/
А, неважно! Главное, что задачки в системе закрываются и работа работается.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #41

41. Сообщение от Аноним (41), 25-Июн-26, 11:09   +/
Конечно неважно. Иначе мы бы всегда имели топовое оборудование, сделанное в текущем году, а не сидели на 10 летнем старье и в х. не дули.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39

43. Сообщение от Аноним (43), 25-Июн-26, 11:56   +/
> тест "Hint" стал выполняться у одного из разработчиков GCC на 30% медленнее
> в коде теста Hint ... конструкция выполняется достаточно редко (в 3%) и её оптимизация не влияет на производительность.
> При этом изменение режима генерации кода привело к побочному эффекту, замедлившему выполнение более часто выполняемого кода.

Вывод неправильный? Наоборот, замедлился редко выполняемый код? И, надо полагать, ускорился часто выполняемый. Значит фикс всё-таки хороший?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #49

44. Сообщение от Аноним (44), 25-Июн-26, 12:22   +/
Предложили: не ломать работающее.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24

46. Сообщение от Аноним (46), 25-Июн-26, 14:07   +/
Это ускорение - чьё надо ускорение, поэтому вопросов быть не должно?
Ответить | Правка | Наверх | Cообщить модератору

47. Сообщение от Талгатemail (?), 25-Июн-26, 15:37   +/
вы должны были это понять наверное со времен титаника.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

48. Сообщение от Аноним (21), 25-Июн-26, 15:58   +/
Ускорило на 12, замедлило на 30 :) В среднем - ухудшило результаты.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #52

49. Сообщение от Аноним (21), 25-Июн-26, 16:00   +/
> Значит фикс всё-таки хороший?

Хороший, но "на 30% медленнее"

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43

50. Сообщение от Аноним (55), 25-Июн-26, 17:30   +/
Гентушники не согласятся. Сколько будет браузер компилироваться с зависимостями имеет значение. Это из ядра можно выкинуть лишнее, а из браузера браузерный движок не выкинешь. Собирать два часа или собирать три часа это все же разница.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

51. Сообщение от Аноним (51), 25-Июн-26, 17:39   +/
Так там и интеловские процы разные и опции под каждый проц. А в итоге не хотят писать опции под каждый проц и добавляют "+3" при развёртывании макроса (хз, может там и не макрос, но не суть).

ИМХО, следующая новость будет о том, что надо ввести ещё один макрос, в котором это "+3" будет учтено для правильных случаев/архитектур.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

52. Сообщение от mickvav (?), 25-Июн-26, 20:28   +/
А средняя температура по больнице, с учетом морга, не изменилась
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48

53. Сообщение от mickvav (?), 25-Июн-26, 20:31   +/
Там как бы нет мотивации на то, чтобы разбираться всерьез, с одной стороны, и есть мотивация не особо афишировать доступ к документам, позволяющим реально разобраться - с другой.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

54. Сообщение от didok (?), 25-Июн-26, 21:03   +/
Хорошее чувство юмора назвать препроцессорный ад диалектом Самого-Самого.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17

55. Сообщение от Аноним (55), 25-Июн-26, 22:17   +/
Мне пока 12900К за глаза хватает. Вот память не вовремя поднялась в цене. Ее бы на 8000 Мгц заменить стоило бы. Приходится на 64 гигах торчать,а память тоже помогает в быстродействии.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2026 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру