Post Thumbnail

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

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

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

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

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

Похожее

Post Thumbnail

Треды в Zig

Автор разбирает устройство std.Io.Threaded в Zig - реализации интерфейса ввода-в...

Post Thumbnail

Zig на примерах

Это интерактивное введение в язык Zig через примеры программ, оформленное в стил...