Telegram Group & Telegram Channel
Отличный пост сегодня на hn, трюк знакомый, пугающий, и вроде даже в комментариях разобрались.
https://news.ycombinator.com/item?id=42579969
https://tavianator.com/2025/shlx.html

Автор поста обнаружил, что при таком патче в определённых условиях.

LOOP:
- MOV RCX, 1
+ MOV ECX, 1


Инструкция SHLX RAX, RAX, RCX (означающая RAX = RAX << RCX) ускоряется в три раза на Alder Lake.

Почему?

Решение этой загадки скорее всего заключается в том, что в Alder Lake увели много инструкций в стадию rename -- это когда процессор не ждёт регистра и его результата, а выдаёт новый готовый регистр (возможно с метаданными, например, что к нему надо что-то добавить). Например, лучше всего это видно в случаях циклов.

loop:
inc rax
cmp rax, rcx
jb .loop

Существуют две стратегии как переименовывать RAX, например

r1 = rax
r2 = r1 + 1
r3 = r2 + 1
...


Пока не закончатся физические регистры на самом процессоре. Можно слегка по-другому:

r1 = rax
r2 = r1 + 1
r3 = r1 + 2
r4 = r1 + 3
...


Тем самым вы делаете трейдофф между кодированием как выдать новый регистр и параллелизмом (r3 не надо ждать r2 и тд, но зато число 2 надо где-то закодировать). В реальности там скорее всего поддерживается до определённого лимита. Вы удивитесь, но вторую стратегию стали только применять с Alder Lake. Более удивительный вопрос, почему MOVE ECX работает, когда 64 битный RCX нет. Казалось бы :)

Там в целом можно упороться и в процессорах существуют регистры с константами, поэтому mov ecx, 1024будет быстрым, когда как mov ecx, 1023 медленным.

Почитать про этот трюк можно тут

https://www.computerenhance.com/p/the-case-of-the-missing-increment#footnote-anchor-6-149406677

Вот такие сюрпризы бывают.



group-telegram.com/experimentalchill/280
Create:
Last Update:

Отличный пост сегодня на hn, трюк знакомый, пугающий, и вроде даже в комментариях разобрались.
https://news.ycombinator.com/item?id=42579969
https://tavianator.com/2025/shlx.html

Автор поста обнаружил, что при таком патче в определённых условиях.

LOOP:
- MOV RCX, 1
+ MOV ECX, 1


Инструкция SHLX RAX, RAX, RCX (означающая RAX = RAX << RCX) ускоряется в три раза на Alder Lake.

Почему?

Решение этой загадки скорее всего заключается в том, что в Alder Lake увели много инструкций в стадию rename -- это когда процессор не ждёт регистра и его результата, а выдаёт новый готовый регистр (возможно с метаданными, например, что к нему надо что-то добавить). Например, лучше всего это видно в случаях циклов.

loop:
inc rax
cmp rax, rcx
jb .loop

Существуют две стратегии как переименовывать RAX, например

r1 = rax
r2 = r1 + 1
r3 = r2 + 1
...


Пока не закончатся физические регистры на самом процессоре. Можно слегка по-другому:

r1 = rax
r2 = r1 + 1
r3 = r1 + 2
r4 = r1 + 3
...


Тем самым вы делаете трейдофф между кодированием как выдать новый регистр и параллелизмом (r3 не надо ждать r2 и тд, но зато число 2 надо где-то закодировать). В реальности там скорее всего поддерживается до определённого лимита. Вы удивитесь, но вторую стратегию стали только применять с Alder Lake. Более удивительный вопрос, почему MOVE ECX работает, когда 64 битный RCX нет. Казалось бы :)

Там в целом можно упороться и в процессорах существуют регистры с константами, поэтому mov ecx, 1024будет быстрым, когда как mov ecx, 1023 медленным.

Почитать про этот трюк можно тут

https://www.computerenhance.com/p/the-case-of-the-missing-increment#footnote-anchor-6-149406677

Вот такие сюрпризы бывают.

BY Experimental chill


Warning: Undefined variable $i in /var/www/group-telegram/post.php on line 260

Share with your friend now:
group-telegram.com/experimentalchill/280

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

Russians and Ukrainians are both prolific users of Telegram. They rely on the app for channels that act as newsfeeds, group chats (both public and private), and one-to-one communication. Since the Russian invasion of Ukraine, Telegram has remained an important lifeline for both Russians and Ukrainians, as a way of staying aware of the latest news and keeping in touch with loved ones. Pavel Durov, Telegram's CEO, is known as "the Russian Mark Zuckerberg," for co-founding VKontakte, which is Russian for "in touch," a Facebook imitator that became the country's most popular social networking site. Multiple pro-Kremlin media figures circulated the post's false claims, including prominent Russian journalist Vladimir Soloviev and the state-controlled Russian outlet RT, according to the DFR Lab's report. Individual messages can be fully encrypted. But the user has to turn on that function. It's not automatic, as it is on Signal and WhatsApp. Andrey, a Russian entrepreneur living in Brazil who, fearing retaliation, asked that NPR not use his last name, said Telegram has become one of the few places Russians can access independent news about the war.
from us


Telegram Experimental chill
FROM American