Компоновка сжатия FastLanes: декодирование более 100 миллиардов целых чисел в секунду с использованием скалярного кода
The FastLanes Compression Layout: Decoding > 100 Billion Integers per Second with Scalar Code
2023-05-01
SCID: 54.1/52htx54p
Discuss with AI
компрессионная раскладка FastLanesунифицированная транспонированная раскладкалегковесное сжатиескалярное декодированиевиртуальный 1024-битный набор инструкций
Figures from the paper
Abstract (AI)
Проект 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 может ускорить выполнение запросов, поскольку сжатие данных снижает требования к пропускной способности, а декодирование становится практически бесплатным.
Key Findings
1
FastLanes ускоряет декодирование распространённых схем лёгкого сжатия, включая DICT, FOR, DELTA и RLE, благодаря переработанной компоновке данных.
2
FastLanes поддерживает SIMD-ширины 8, 16, 32 и 64 бита, а также задаёт виртуальный набор инструкций, совместимый со скалярным кодом.
3
Перемежённая и переупорядоченная компоновка ускоряет скалярное декодирование и может полностью автоматически векторизоваться современными компиляторами.
4
Микротесты на процессорах Intel, AMD, Apple и AWS показывают скорость декодирования свыше 100 миллиардов целых чисел в секунду, более 40 значений за такт процессора.
5
Компоновка обобщает перемежение значений для виртуального SIMD-регистра шириной 1024 бита и использует единый транспонированный порядок кортежей во всех столбцах.
Research Object
Макет сжатия FastLanes для колоночных форматов больших данных и хранения данных в базах данных
Research Subject
Высокопроизводительное скалярное и SIMD-декодирование распространённых схем облегчённого сжатия посредством чередующегося кодирования значений и унифицированной транспозиции кортежей
Publication Details
Publication Date
2023-05-01
Journal
Publisher
ISSN
Cited by
35
Open access PDF
Access Type
Author Information
Download PDF
Subscribe to digest