TGViewer
📓 Записки программера 📓 Записки программера @notes_of_programmer · 1.1K subscribers
Post #224 315
Ещё один всрато-тест - считаем StdDev.

Разница между обычным LINQ и Vector256 - в разы на маленькой коллекции и два порядка на большой (gist, .net 7)

Для тех кто не понял что делается на примере Average:
* загружается по 4 double в вектор (256 бит / 8 байт (64 бита) один double = 4 штуки влезает в 1 вектор)
* над ними одновременно делается операция Avx.Add - добавляем к вектору-аккумулятору такой же вектор с 4 следующими double (Vector256.Load возвращает вектор со следующими 4 double по адресу pointer)
* после прохода по всем элементами - складываем 4 штуки double из vsum - получаем полную сумму всех элементов
* делим на src.Count - получаем среднее из чего формируем новый вектор vectorMean - он получает 4 идентичных значения в своих элементах.

Аналогичным образом по 4 элемента - делается операция Sum( (p-mean) * (p-mean) )
результат которой потом делится на src.Count и получаем Average.

Если бы операция была над float - можно было бы в 256 бит уложить сразу по 8 float'ов: 256 бит / 4 байта (32 бита) float

#csharp #avx
  • 👍 2
More from @notes_of_programmer
  1. Sep 30, 2026WSL containers is now generally available есть и морда к ним wslcontainerdesktop #windows
  2. Sep 24, 2026Надеюсь что не пригодится, но вдруг... Creating a memory dump in C# а заодно как его посмо…
  3. Sep 15, 2026А вот уже и мануалы подвезли для Dual-Screen layout вёрстки #css
  4. Sep 14, 2026Забавная штука для того чтобы накидать частично интерактивный мокап. От этого же автора ес…
  5. Sep 2, 2026Оказывается Clickhouse есть в виде wasm версии, смотрел презентации 26.8 и узнал об этом.…
  6. Aug 25, 2026Со времени этого поста плагин перестал работать т.к. в хроме поменяли версию манифеста и у…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →