Post Thumbnail

Митчелл Хашимото утверждает, что SIMD незаслуженно считается сложным.

Он на примере из своего терминала Ghostty показывает, что "обработка N значений за раз" всегда сводится к одному и тому же шаблону из пяти шагов: размножить константы в вектор, загружать по одному вектору за итерацию, выполнить операцию сразу над всеми линиями, свернуть векторный результат в скаляр и дообработать остаток обычным циклом. Звучит просто, неправда ли?

Он демонстрирует это на сканировании массива. 12 строк SIMD-кода дают ускорение до 5×, при этом компиляторы плохо справляются с авто-векторизацией таких циклов.

Каждый разработчик должен узнавать ситуации, где применим SIMD, и не бояться его, потому что типовой паттерн осваивается быстро и не требует знания ассемблера или конкретных инструкций процессора

А ты уже используешь SIMD?

Похожее

Post Thumbnail

Revo

На эту пятницу у меня вас новый язык программирования, написанный на Zig Revo...

Post Thumbnail

Zig IO

В Zig 0.16 появился std.Io - кроссплатформенный интерфейс для ввода-вывода и кон...