The OpenNET Project / Index page

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



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

Оглавление

Релиз набора компиляторов LLVM 12.0 , opennews (??), 16-Апр-21, (0) [смотреть все]

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


35. "Релиз набора компиляторов LLVM 12.0 "  –4 +/
Сообщение от adolfus (ok), 16-Апр-21, 16:05 
likely, unlikely ...
Глупости все это -- управление предвыборкой. Не все платформы умеют это делать. ia32 и amd64 в подявляющем большинстве случаев не могут эти хинты эффективно обработать.
Самый действенный метод повысить призводительность вычислений -- писать всю математику на фортране или прямо на ассемблере платформы.
Ответить | Правка | Наверх | Cообщить модератору

37. "Релиз набора компиляторов LLVM 12.0 "  +1 +/
Сообщение от Твой батя (?), 16-Апр-21, 16:45 
А если это не математика, а какой-нибудь обработчик событий в GUI? Тоже на фортране или ассемблере писать?
Ответить | Правка | Наверх | Cообщить модератору

44. "Релиз набора компиляторов LLVM 12.0 "  +1 +/
Сообщение от Аноним (3), 16-Апр-21, 18:10 
> обработчик событий в GUI

Вот уж кому не впёрлись все эти лайки.

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

41. "Релиз набора компиляторов LLVM 12.0 "  +/
Сообщение от Аноним (41), 16-Апр-21, 18:00 
Причём тут, блин, математика?

Вот есть у меня код разбора протокола http. Если первый символ G, то очень даже likely, что второй E, а третий T.

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

45. "Релиз набора компиляторов LLVM 12.0 "  +2 +/
Сообщение от Аноним (3), 16-Апр-21, 18:12 
И причём тут лайки, если ты уже сам составил дерево разбора так, как надо?!
Ответить | Правка | Наверх | Cообщить модератору

63. "Релиз набора компиляторов LLVM 12.0 "  –1 +/
Сообщение от Tim (??), 17-Апр-21, 19:01 
В условии if-else две ветки выполнения. Для компилятора они равновероятны.
Если не повезёт, в коротком цикле окажется сброс конвейера.

На пример с GET, возможен сброс после каждого символа.

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

66. "Релиз набора компиляторов LLVM 12.0 "  +/
Сообщение от Аноним (3), 17-Апр-21, 20:00 
Тебе не повезло с процом, если он у тебя конвейер сбрасывает. Процы уже давно спекулятивно исполняют обе ветки после ветвления, отбрасывая потом ненужную уже фоном. Это появилось вскоре, как сделали переименовку регистров.
Ответить | Правка | Наверх | Cообщить модератору

71. "Релиз набора компиляторов LLVM 12.0 "  +/
Сообщение от Tim (??), 18-Апр-21, 07:47 
Такой ерундой страдал 4-ый пень, и грелся аж песец.
Новые процы спекулятивно выполняют только одну ветку.
Или ведут статистику переходов, ака динамическое предсказание, или эвристика... типа к младшим адресам значит цикл, к старшим значит переход маловероятен.
В общем пользуй PGO либо ставь атрибуты.
Ответить | Правка | Наверх | Cообщить модератору

43. "Релиз набора компиляторов LLVM 12.0 "  –2 +/
Сообщение от Чтото странное ты пишешь (?), 16-Апр-21, 18:06 
Не умеют и не умеют, в чём проблема-то?
Ответить | Правка | К родителю #35 | Наверх | Cообщить модератору

72. "Релиз набора компиляторов LLVM 12.0"  +/
Сообщение от Алкоголик Анон (?), 18-Апр-21, 18:02 
> likely, unlikely ...
> Глупости все это -- управление предвыборкой. Не все платформы умеют это делать.
> ia32 и amd64 в подявляющем большинстве случаев не могут эти хинты
> эффективно обработать.
> Самый действенный метод повысить призводительность вычислений -- писать всю математику
> на фортране или прямо на ассемблере платформы.

При чём тут предвыборка вообще?

Например в каком-то маловероятном случае может требоваться крупный массив.

// ...
if(content_coded) [[unlikely]] {
   int buffer[16*1024*1024];
   /* decode content */
}
return content[0];
// :-)

Ну вот. Без unlikely оптимизирующий компилятор может резервировать память под buffer каждый раз при вызове функции (ещё до проверки чего-либо). Также может влиять на inlining...

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

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

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




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

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