The OpenNET Project / Index page

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



"Обновление операционной системы MenuetOS 1.50, написанной на ассемблере "
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Отдельный RSS теперь доступен для каждого обсуждения в форуме и каждого минипортала.
. "Обновление операционной системы MenuetOS 1.50, написанной на..." +/
Сообщение от n00by (ok), 02-Мрт-24, 21:47 
>> Я верно понимаю, отвечает тот же эксперт, что писал в #29 вот это:
> Нет.

Жаль, эксперимент провалился. #29, #42 и #90 писал точно один, эксплуатируя нумератор Анонимов сайта.

Впрочем, 90 написано позже 81, значит ответить он не смог.

>> Действительно, понять, что делает патч можно по выдаче perf stat и без знания ассемблера.
>> Ответа, что примечательно, нет.
> Патч добавляет несколько строк и исходнику - с такой формулировкой поспорить сложно.
> Зачем он это делает и как интерпретировать изменение в счетчиках - тут
> уже могут быть разночтения.
> Очевидно что добавление инструкции перехода, который никогда не выполняется, увеличивает
> % верных предсказаний.

То есть патч увеличивает % верных предсказаний. Это очевидно из чисел в выдаче perf рядом с %. Это мог бы любой ответить, а значит и тот эксперт тем более.

С инструкцией как раз не очевидно и требует знаний, например сходу я не нашёл в Optimization Manual подходящего правила.

> Это увеличение branch-hit приводит к тому, что предсказатель считает контекст истории переходов
> связанный с этим фрагментов ценным и сохраняет его дольше, а также
> пытается реже выкидывать из uos-cache целевые адреса косвенного перехода.
> Соответственно, могут быть условия (особенно на синтетических тестах), когда такая "оптимизация"
> в целом работает в плюс.
> Но на другой модели ЦПУ и/или на другом коде/данных, как правило все
> подобные плюсы становятся отрицательным.

+;    Переход никогда не происходит. Предотвращает предсказания следующего
+;    косвенного перехода, во многих случаях некорректные.

> --
> На всякий уточню - меня расстраивает, что за подобное "штопанье чужих носков"
> мне не только платят деньги, но и настойчиво хотят сделать это
> "еще более", вместо того чтобы хотя-бы теже деньги вложить в разработку
> чего-то собственного (но не в полировку даренных стеклянных бус в виде
> RISC-V).

На всякий случай извинюсь, мне надо было обуздать именно того знатока правильно писать на ассемблере.

В данном случае пришлось штопать свои носки, когда оптимизированный код на асме без той инструкции позорно проиграл коду после транслятора Си, где конкретно в этом месте была ещё одна лишняя косвенность. То есть процессор заточили под типовой код (таблицу переходов), он спокойно лишний раз читал память, что мешало ему делать лишние предсказания, на чём и обыграл человека.

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

Оглавление
Обновление операционной системы MenuetOS 1.50, написанной на ассемблере , opennews, 02-Мрт-24, 12:31  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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