Вход на сайт

Просмотр новости

Найдите то, что Вас интересует

В Go появился SIMD без ассемблера: скалярный цикл обгоняют в ...

Дата публикации: 20-10-2026 18:13:29

В Go появился SIMD без ассемблера: скалярный цикл обгоняют в 9 раз ⚡
Джесус Эспино разобрал, как устроена поддержка SIMD в Go 1.27 (пока экспериментальная, включается через GOEXPERIMENT=simd, основной фокус на amd64).
Есть два уровня. Пакет simd/archsimd из Go 1.26 даёт низкоуровневые типы фиксированной ширины вроде Float32x8 и привязан к архитектуре. Новый пакет simd в Go 1.27 портабельный: типы Float32s и Int8s не знают ширину регистра, количество lane выбирается при старте программы, и один и тот же цикл работает на 128, 256 и 512 битах.
Под капотом методы вроде Add это интринсики компилятора без тела, они превращаются в инструкции вроде VADDPS. Для портабельного пакета компилятор строит по копии функции под каждую ширину плюс чистый Go-фолбэк, а диспетчер выбирает нужную при запуске. Принудительно выбрать путь можно через GODEBUG=simd.
Замер на AMD Ryzen AI Max+ 395: скалярное скалярное произведение двух массивов по 4096 float32 занимает около 3,9 мкс, версия на SIMD около 0,41 мкс. Выигрыш примерно в 9 раз, и автор оговаривает, что это близко к лучшему случаю для длинных непрерывных данных.
Подводные камни. API экспериментальный, имена могут поменяться. Archsimd не проверяет поддержку CPU, поэтому без проверки AVX2 и FMA программа упадёт с illegal instruction. Float32x8 не компилируется на ARM. На ветвистом коде, разбросанном доступе к памяти и коротких входах выигрыш может быть небольшим или нулевым.
Вывод автора: профилируйте и мерьте, а SIMD применяйте только в горячих циклах.
Источник: https://internals-for-interns.com/posts/go-simd/
Подписывайтесь: https://t.me/ai_machinelearning_big_data

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1В Go появился SIMD без ассемблера: скалярный цикл обгоняют в ...012.620-10-2026
2В Go 1.27 завезли SIMD011.7725-07-2026
3[Перевод] Вы можете победить бинарный поиск5715-06-2026
4От скалярной тоски к SIMD-эйфории: как подружить IDA Pro с инструкциями RISC-V P Extension010.6104-03-2026
5Новый процессор IBM для мейнфреймов умеет выполнять код IBM Z и Arm одновременно и без эмуляции05.8725-08-2026
6ggml-cpu x86_64048.8914-07-2026
7RISC-V RVV Vector Performance Benchmarks With The SpacemiT K3 SoC2702-07-2026
8Intel Posts Initial GCC Compiler Patches For AI Compute Extensions "ACE"0702-07-2026
9Rusticl Now Supports cl_ext_float_atomics011.2311-08-2026
10AVX-512 xor_gen Continues To Look Exciting For Helping Linux RAID With Modern CPUs010.1316-08-2026

Классификация: Пресс-релизы. Схожих патентов: 0. Схожих новостей: 10. Тональность: 0. Информативность: 12.6. Источник: vk.com.