елементів то воно може полізти в неалоковану памʼять, так?
якщо так то як оптимально завантажити N елементів у SIMD, при цьому sizeof(N елементів) < sizeof(SIMD)?
на скільки я розумію SIMD це ж просто той же регістр, але великий якщо мені треба меньше елементів я можу просто скопіювати меньше і ігнорити сміття яке було у ньому?
якщо в тебе менше елементів ніж довжина вектору - то ніяк, IIRC на AVX512 та SVE2 були наче т.зв. masked reads але цього в дотнеті нема зараз (бо все одно нішова штука в вже досить специфічному функціоналі інтринсиків)
технічно кажучи так, але з точки зору практики тому в сі й знаходять різні DoS весь час
просто напиши скалярний tail handler як всі роблять)
тоді перф від створити буфер sizeof(SIMD), скопіювати туди, закинути в Vector, порахувати, буде меньше ніж просто руками порахувати у тому ж форі?
так, ну хіба що там в тебе не Vector512<byte> (але він не використовується для Vector<byte>)
я ще не дуже шарю) тільки почитав на гх https://github.com/CBGonzalez/SIMDPerformance?tab=readme-ov-file#vectors
Обсуждают сегодня