u128

Mar. 12th, 2021 10:59 pm
amarao: (Default)
[personal profile] amarao
u128 (без всяких доп.трюков) сделало почти чудо, да.

На форуме мне показали bytemuck, позволяющий сделать "запретное" в расте и кастануть [u8] к [u128] с правильным пересчётом размера.

Итог:

noise fill 2560x1440    time:   [2.2220 ms 2.2227 ms 2.2239 ms]                                  
                        change: [-88.993% -88.989% -88.984%] (p = 0.00 < 0.05)
                        Performance has improved.


2.2ms на полное наполнение 2560х1440 (x4), это 454 раз за секунду, более чем достаточно для практических задач шума.

Собственно, это же подтверждается и практическим замером: 100% шума в каждом кадре даёт 260 FPS.

Итого:

1) u128
2) #[inline(always)]

... И ещё одно доказательство тезиса, что не-многопроцессные оптимизации лучше. От 6 тредов я бы получил максимум 5x улучшение, а тут - 9-кратное, причём, практически, без крупноархитектурных усложнений.

Сам код тут: https://github.com/amarao/sdl_random

Date: 2021-03-13 08:57 am (UTC)
ufm: (Default)
From: [personal profile] ufm
А если не трудно - можно еще чуть сверху/снизу показать?

Date: 2021-03-13 10:43 am (UTC)
ufm: (Default)
From: [personal profile] ufm
Там не только инлайны, там еще и оптимизация. Я, честно говоря, не ожидал, что нынешние компиляторы умеют на столько суровую оптимизацию.

Date: 2021-03-13 09:58 am (UTC)
ufm: (Default)
From: [personal profile] ufm
Впрочем - не надо. Я сам позаморачивался...

Profile

amarao: (Default)
amarao

December 2025

S M T W T F S
 12 3456
78910111213
14151617181920
212223242526 27
28293031   

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 30th, 2025 11:27 pm
Powered by Dreamwidth Studios