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

The FastLanes Compression Layout: Decoding > 100 Billion Integers per Second with Scalar Code
Peter Boncz, Azim Afroozeh
2023-05-01

компрессионная раскладка FastLanesунифицированная транспонированная раскладкалегковесное сжатиескалярное декодированиевиртуальный 1024-битный набор инструкций
Проект FastLanes с открытым исходным кодом направлен на совершенствование форматов больших данных, таких как Parquet, ORC и форматы колоночных баз данных, по нескольким направлениям. В данной работе существенно ускоряется декодирование всех распространённых схем лёгкого сжатия (LWC) — DICT, FOR, DELTA и RLE — за счёт повышения эффективности параллелизма обработки данных. Для этого компоновка сжатия перерабатывается на основе двух основных идей: (i) обобщения метода чередования значений в базовой операции распаковки и упаковки битов с ориентацией на виртуальный SIMD-регистр размером 1024 бита; и (ii) переупорядочения кортежей во всех столбцах таблицы в соответствии с единой транспонированной компоновкой (Unified Transposed Layout), которая размещает фрагменты кортежей в общем порядке «04261537» (как объясняется в статье), обеспечивая максимальный объём независимой работы для всех возможных базовых ширин SIMD-ланов: 8, 16, 32 и 64 бита. Для решения проблем разработки, сопровождения и долгосрочной совместимости программного обеспечения, обусловленных растущим разнообразием аппаратных средств, определяется виртуальный набор инструкций размером 1024 бита, состоящий из простых операторов, поддерживаемых всеми диалектами SIMD и, что особенно важно, скалярным кодом. Чередующаяся компоновка и переупорядочение кортежей фактически ускоряют скалярное декодирование, позволяя извлекать больше параллелизма обработки данных из современных процессоров с широким выпуском команд. Важно, что скалярная версия может полностью автоматически векторизоваться современными компиляторами, устраняя технический долг в программном обеспечении, вызванный платформенно-зависимыми SIMD-интринсиками. Микротесты на процессорах Intel, AMD, Apple и AWS показывают, что FastLanes ускоряет декодирование более чем до 40 значений за такт процессора. FastLanes может ускорить выполнение запросов, поскольку сжатие данных снижает требования к пропускной способности, а декодирование становится практически бесплатным.
1
FastLanes ускоряет декодирование распространённых схем лёгкого сжатия, включая DICT, FOR, DELTA и RLE, благодаря переработанной компоновке данных.
2
FastLanes поддерживает SIMD-ширины 8, 16, 32 и 64 бита, а также задаёт виртуальный набор инструкций, совместимый со скалярным кодом.
3
Перемежённая и переупорядоченная компоновка ускоряет скалярное декодирование и может полностью автоматически векторизоваться современными компиляторами.
4
Микротесты на процессорах Intel, AMD, Apple и AWS показывают скорость декодирования свыше 100 миллиардов целых чисел в секунду, более 40 значений за такт процессора.
5
Компоновка обобщает перемежение значений для виртуального SIMD-регистра шириной 1024 бита и использует единый транспонированный порядок кортежей во всех столбцах.

Макет сжатия FastLanes для колоночных форматов больших данных и хранения данных в базах данных

Высокопроизводительное скалярное и SIMD-декодирование распространённых схем облегчённого сжатия посредством чередующегося кодирования значений и унифицированной транспозиции кортежей

Publication Details
Publication Date
2023-05-01
Journal
Publisher
ISSN
Cited by
35
Access Type
Author Information
Authors
Peter Boncz
Azim Afroozeh
Explore further
Open the scid.ai AI chat with a ready-made request: it will find papers on a similar topic and help build a literature review.
Find similar papers in the chat
Make a presentation
100%