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: |

The picture was mixed overseas. Hong Kong’s Hang Seng Index fell 1.6%, under pressure from U.S. regulatory scrutiny on New York-listed Chinese companies. Stocks were more buoyant in Europe, where Frankfurt’s DAX surged 1.4%. "Like the bombing of the maternity ward in Mariupol," he said, "Even before it hits the news, you see the videos on the Telegram channels." Following this, Sebi, in an order passed in January 2022, established that the administrators of a Telegram channel having a large subscriber base enticed the subscribers to act upon recommendations that were circulated by those administrators on the channel, leading to significant price and volume impact in various scrips. Crude oil prices edged higher after tumbling on Thursday, when U.S. West Texas intermediate slid back below $110 per barrel after topping as much as $130 a barrel in recent sessions. Still, gas prices at the pump rose to fresh highs. These administrators had built substantial positions in these scrips prior to the circulation of recommendations and offloaded their positions subsequent to rise in price of these scrips, making significant profits at the expense of unsuspecting investors, Sebi noted.
from de


Telegram Experimental chill
FROM American