В статье приведён анализ производительности недавно ставшей популярной [1] реализации сортировки Intel AVX-512.Intel опубликовала невероятно быструю библиотеку сортировки для AVX-512, Numpy переходит на неё, чтобы ускорить сортировку в 10-17 разВ этом анализе мы рассмотрим производительность…
Предыдущая часть вызвала бурную дискуссию, в ходе которой выяснилось, что AVX/AVX2 на самом деле есть в десктопных CPU, нет только AVX512. Поэтому продолжаем знакомиться с SIMD, но уже с современной его частью — AVX. А так же разберём некоторые комментарии: медленнее ли _mm256_load_si256, чем прямое обращение к памяти? влияет ли на скорость использование AVX команд над SSE регистрами? действительно ли так плохо использовать _popcnt? Читать дальше →
В Go 1.11 значительно обновлён ассемблер под платформу x86. У программистов появится возможность использовать AVX-512 — новейшие инструкции, доступные в процессорах Intel. Под катом: Самые значительные обновления в cmd/asm (go tool asm) Как был внедрён новый набор инструкций в Go ассемблер Использование новых инструкций и специальных возможностей EVEX префикса Уровень интеграции в тулчейн (рецепты обхождения текущих ограничений) Читать дальше →
Некоторые из последних процессоров Intel поддерживают семейство векторных инструкций AVX-512. Они выполняются блоками по 512 бит (64 байта). Преимущество аппаратной поддержки таких больших инструкций в том, что за один такт процессор обрабатывает больше данных. Если код загружается 64-битными словами (8 байт), то теоретически, если не брать в учёт другие факторы, можно ускорить его выполнение в восемь раз, если использовать инструкции AVX-512. Читать дальше →