Информация об изменениях

Сообщение Re[9]: i7-12700 vs M1 от 02.02.2022 17:09

Изменено 02.02.2022 17:11 netch80

Re[9]: i7-12700 vs M1
Здравствуйте, koandrew, Вы писали:

N>>Чуть больше десяти. В командах это всё равно будет меньше ~8 для x86.

K>А остальные? А адрес возврата?
N>>Ну расскажи, сколько. Только учти, что по sysenter (syscall) только вход облегчается. А дальше всё равно надо все регистры сохранять и возвращать что-то только в RAX (иногда RDX, иначе его обнулять), потому что иначе утекут данные ядра.
K>Всё равно в ARM намного больше.

А у слона хобот длиннее.
Открываем AArch64 ABI, видим: callee-saved registers: r19...r28. 10 регистров — 5 пар.
Смотрим x86-64 ABI (Linux/Itanium style): callee-saved registers: rbx, rbp, r12-r15. Уже 6 штук.
А теперь ещё учтём, что большее количество регистров, доступных для функции, означает больше возможностей уложить алгоритм в них и не занимать callee-saved.

K>Вот уж не ожидал, что тебе нужно объяснять, что команды в коде и команды исполненные — это не одно и то же. Может всё же голову включишь?


Приведи тогда реальную статистику их использования. А про "голову включишь" — сам не пробовал первым включить?
Я хотя бы опираюсь на количество команд в целом в коде, а у тебя вообще не то святой дух, не то справочник Стеля.

N>>Подбери аналог, скомпилирую и сравню специально по запросу. Я тут пытался со squid это сделать, но у него configure хочет странного. Есть идеи что проверить? Нужен выходной бинарник в 0.5-1MB без сложной плагинной структуры.

K>А мне-то оно зачем? Ты выдвинул тезис — тебе и доказывать. Я-то ответ и так знаю.

Ага, только доказать никак не можешь. Только классовое чутьё тебе что-то шепчет.

N>>Второе, что у него сейчас начинаются собственные... мнэээ... странные решения. Например, ABI с global pointer. Страничная система типа Sv32 с тем, что 2**34 физических бит, зато 10 бит на все свойства страниц — серьёзно?

N>>Уже на 1.5GB RAM надо переходить на 64-битку, а они физические 2**34 придумывают, будто мало фейла с x86 PSE.
N>>Ну и так далее.

K>32 бита не актуальны для PC, этот стандарт больше для микроконтроллеров, потому там важно экономить ресурсы, и страничная адресация не нужна от слова "вообще".


Ну так незачем было тогда такое вводить, раз экономить ресурсы надо.
Re[9]: i7-12700 vs M1
Здравствуйте, koandrew, Вы писали:

N>>Чуть больше десяти. В командах это всё равно будет меньше ~8 для x86.

K>А остальные? А адрес возврата?
N>>Ну расскажи, сколько. Только учти, что по sysenter (syscall) только вход облегчается. А дальше всё равно надо все регистры сохранять и возвращать что-то только в RAX (иногда RDX, иначе его обнулять), потому что иначе утекут данные ядра.
K>Всё равно в ARM намного больше.

А у слона хобот длиннее.
Открываем AArch64 ABI, видим: callee-saved registers: r19...r28. 10 регистров — 5 пар.
Смотрим x86-64 ABI (Linux/Itanium style): callee-saved registers: rbx, rbp, r12-r15. Уже 6 штук.
А теперь ещё учтём, что большее количество регистров, доступных для функции, означает больше возможностей уложить алгоритм в них и не занимать callee-saved.

K>Вот уж не ожидал, что тебе нужно объяснять, что команды в коде и команды исполненные — это не одно и то же. Может всё же голову включишь?


Приведи тогда реальную статистику их использования. А про "голову включишь" — сам не пробовал первым включить?
Я хотя бы опираюсь на количество команд в целом в коде, а у тебя вообще не то святой дух, не то справочник Стеля.

N>>Подбери аналог, скомпилирую и сравню специально по запросу. Я тут пытался со squid это сделать, но у него configure хочет странного. Есть идеи что проверить? Нужен выходной бинарник в 0.5-1MB без сложной плагинной структуры.

K>А мне-то оно зачем? Ты выдвинул тезис — тебе и доказывать. Я-то ответ и так знаю.

Ага, только доказать никак не можешь. Только классовое чутьё тебе что-то шепчет.
И по поводу "выдвинул тезис" — это чьи слова

K>> Поскольку инструкции ARM в среднем более примитивны, чем x86, первые должны выполнить больше инструкций для выполнения одной и той же задачи.


мои, что ли?

N>>Второе, что у него сейчас начинаются собственные... мнэээ... странные решения. Например, ABI с global pointer. Страничная система типа Sv32 с тем, что 2**34 физических бит, зато 10 бит на все свойства страниц — серьёзно?

N>>Уже на 1.5GB RAM надо переходить на 64-битку, а они физические 2**34 придумывают, будто мало фейла с x86 PSE.
N>>Ну и так далее.

K>32 бита не актуальны для PC, этот стандарт больше для микроконтроллеров, потому там важно экономить ресурсы, и страничная адресация не нужна от слова "вообще".


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