Ускорение CRC32C с помощью AVX-512: новые горизонты производительности в PostgreSQL
В PostgreSQL 18 внедрена поддержка AVX-512 для вычислений CRC32C, что значительно ускоряет обработку данных. Нововведение обеспечивает до 50% и 3x ускорение на процессорах Intel Tiger Lake и обещает еще большие преимущества на новых моделях Intel и AMD. Это важный шаг в развитии производительности популярной открытой базы данных.

Ускорение CRC32C с помощью AVX-512: новые горизонты производительности в PostgreSQL
В мире баз данных постоянно идет борьба за производительность и эффективность. Одним из последних нововведений в PostgreSQL 18 стало использование инструкций AVX-512 для вычислений CRC32C. Это изменение обещает значительное ускорение обработки данных, что особенно важно для пользователей, работающих с большими объемами информации.
Что такое CRC32C и почему это важно?
CRC32C (Cyclic Redundancy Check 32-bit Castagnoli) — это алгоритм контрольной суммы, используемый для проверки целостности данных. В контексте баз данных, таких как PostgreSQL, CRC32C играет ключевую роль в обеспечении надежности и быстродействия операций с данными.
Ранее в PostgreSQL для вычисления CRC32C использовались инструкции SSE 4.2, которые обрабатывали до 8 байт за раз. Однако новое решение с использованием AVX-512 позволяет обрабатывать до 64 байт за итерацию цикла, что значительно ускоряет процесс.
Преимущества использования AVX-512
Инструкции AVX-512 доступны на процессорах Intel начиная с 2019 года и на процессорах AMD с 2022 года. Использование этих инструкций позволяет достичь впечатляющих результатов:
- На процессорах Intel Tiger Lake (2020) производительность CRC32C увеличилась на 50% для входных данных размером от 64 до 112 байт.
- Для входных данных размером 256 байт ускорение составило в три раза.
Эти улучшения особенно заметны на процессорах с поддержкой AVX-512, таких как новые модели Intel Xeon и AMD Zen 4 и Zen 5. Ожидается, что на этих процессорах производительность будет еще выше.
Реализация и проверка на практике
Для использования AVX-512 в PostgreSQL теперь требуется проверка на наличие поддержки этих инструкций во время выполнения программы. Это не влияет на производительность в критически важных случаях, таких как работа с WAL (Write-Ahead Logging), поскольку с коммита e2809e3 финальные вычисления с 20-байтовым заголовком WAL выполняются встроенным и развернутым образом при использовании расширения SSE 4.2.
Тестирование показало, что производительность при использовании косвенного вызова функции на нескольких десятках байт, за которым следуют встроенные инструкции на постоянном входе в 20 байт, либо равна, либо немного превышает производительность при двух прямых вызовах функций.
Влияние на пользователей PostgreSQL
Для пользователей PostgreSQL это нововведение означает значительное улучшение производительности при работе с большими объемами данных. Это особенно актуально для приложений, требующих высокой скорости обработки и проверки данных, таких как системы аналитики больших данных, облачные хранилища и другие.
Кроме того, это обновление является частью более широкого спектра улучшений в PostgreSQL 18, включая поддержку IO_uring и асинхронного ввода-вывода в пакетном режиме. Все эти изменения делают PostgreSQL еще более привлекательным выбором для пользователей, ищущих высокую производительность и надежность.
Перспективы для будущего
С внедрением AVX-512 для вычислений CRC32C PostgreSQL продолжает развиваться в направлении повышения производительности и эффективности. Ожидается, что будущие версии базы данных будут еще больше оптимизированы для работы с новейшими процессорами и технологиями.
Для пользователей, заинтересованных в использовании новейших технологий, стоит обратить внимание на НайсОС — перспективный российский Linux-дистрибутив, который также может предложить интересные решения для оптимизации производительности и безопасности.
В заключение, внедрение AVX-512 для вычислений CRC32C в PostgreSQL 18 — это важный шаг вперед, который обещает значительные улучшения производительности и открывает новые возможности для пользователей этой популярной открытой базы данных.
- GIMP: Мощный инструмент, а не просто альтернатива Photoshop
- GNOME 48: Новые возможности и улучшения рабочего процесса
- Ubuntu на NVIDIA Jetson: новые возможности для ИИ и робототехники
- Возвращение легенды: новые умные часы Pebble с открытым ПО
- Обзор OpenJDK Java 24: новшества и оптимизации
- Fedora Linux 42 Beta: Новые возможности и перспективы
- Ubuntu 25.10: Переход на Rust и новые лицензии
- Новый релиз elementary OS 8.0.1: ускорение поиска и улучшения в AppCenter
- Discord Social SDK: Новый уровень интеграции для геймеров
- Новые камеры OpenMV AE3 и N6: Прорыв в AI на краю сети