GPZ: GPU-ориентированный лоссовый компрессор для массивных наборов частиц
GPZ — GPU-оптимизированный лоссовый компрессор для данных в виде точек, который обеспечивает значительно более высокую скорость и лучшие коэффициенты сжатия, сохраняя научную точность.
Почему частичные (point-cloud) данные трудно сжать
Наборы частиц представляют собой не регулярную сетку, а множество отдельных точек в пространстве. Отсутствие регулярной пространственной структуры и низкая корреляция во времени делают такие данные бедными на избыточность — именно на это ориентированы классические алгоритмы без потерь и многие универсальные лоссовые методы. В результате простые решения вроде даунсемплинга жертвуют точностью и воспроизводимостью, а компрессоры для сеток показывают плохие соотношения и низкую производительность на GPU при работе с point-cloud.
Примеры масштаба проблемы: один снимок космологической симуляции на Summit занял 70 ТБ, а общенациональные массивы точек рельефа превосходят сотни терабайт. Обработка, хранение и анализ таких объёмов без узких мест на GPU — серьёзная задача для космологии, геологии, молекулярной динамики и 3D-визуализации.
Конвейер GPZ: четыре стадии, оптимизированные под GPU
GPZ разработан как полностью устройственно-параллельный пайплайн, учитывающий особенности данных частиц. Основные этапы:
- Пространственная квантизация: координаты в плавающей точке переводятся в целочисленные идентификаторы сегментов и оффсеты в рамках заданной погрешности. Используется арифметика FP32 для максимальной производительности, а размеры сегментов подбираются с учётом occupancy.
- Пространственная сортировка: в каждом блоке (маппированном на CUDA warp) частицы сортируются по ID сегмента с помощью warp-level операций, что сокращает синхронизацию. Блочная сортировка балансирует между степенью сжатия и потреблением shared memory.
- Безпотерьное кодирование: параллельные run-length и delta-кодирование устраняют избыточность у отсортированных ID сегментов и квантизованных оффсетов. Дополняется бит-плейн кодированием для удаления нулевых битов с оптимизированными для GPU шаблонами доступа к памяти.
- Компактирование: трёхшаговая стратегия на устройстве собирает сжатые блоки в сплошной выходной буфер с минимальными синхронизациями, достигая пропускной способности памяти, близкой к теоретическому пику (авторы указывают 809 ГБ/с на RTX 4090).
Декомпрессия выполняет обратные операции: извлечение, декодирование и восстановление позиций в рамках заданных погрешностей, что позволяет выполнять качественный постфактум-анализ.
Оптимизации с учётом аппаратуры
GPZ выделяется агрессивной настройкой под микросхему GPU. Основные приёмы:
- Коализация доступа к памяти и выравнивание по 4 байта для максимального DRAM-пропускания.
- Контроль использования регистров и shared memory для поддержания высокой occupancy; там, где можно, применяется FP32 без нарушения границ ошибки.
- Сопоставление один-warp-на-блок, явное применение CUDA-интринсиков (например, FMA) и развертывание циклов для повышения вычислительной пропускной способности.
- Замена медленных операций деления/модуля на предвычисленные обратные и битовые маски.
Такие решения позволяют GPZ использовать параллелизм и подсистемы памяти GPU эффективнее, чем универсальные компрессоры.
Сравнение и результаты на реальных данных
Авторы протестировали GPZ на шести реальных наборах частиц из космологии, геологии, плазменной физики и молекулярной динамики на трёх классах GPU: потребительском RTX 4090, дата-центровом H100 SXM и edge-устройстве L4. В качестве базовых инструментов использовались cuSZp2, PFPL, FZ-GPU, cuSZ и cuSZ-i — многие из них ориентированы на структурированные сетки.
GPZ оставался стабильным там, где другие инструменты либо падали, либо теряли качество на наборах свыше нескольких гигабайт. Основные показатели:
- Скорость: до 8× быстрее ближайшего конкурента, средние скорости сжатия — 169 ГБ/с (L4), 598 ГБ/с (RTX 4090) и 616 ГБ/с (H100). Скорости распаковки ещё выше.
- Коэффициент сжатия: до 600% лучше в сложных сценариях и устойчиво выше по экспериментации. Даже когда конкуренты были чуть лучше по ratio, GPZ сохранял преимущество в скорости 3×–6×.
- Качество данных: графики "rate–distortion" показывают более высокий PSNR при меньших битрейтах, а визуальные сравнения (включая 10× увеличение) показывают практически неотличимые реконструкции у GPZ, тогда как у других методов видны артефакты.
Значение для научных рабочих процессов
GPZ поднимает практический порог для инсуitu и последующего сжатия частичных данных на GPU. Для специалистов это означает:
- Лоссовое сжатие с гарантией погрешности, которое сохраняет научную пригодность для анализа и визуализации.
- Работоспособность на потребительских и HPC-GPU, что снижает потребность в агрессивных упрощениях данных или огромных хранилищах.
- Шаблон проектирования компрессоров, ориентированных на устройство: приоритет аппаратно-дружелюбных примитивов, минимизация синхронизаций и осознанные компромиссы по точности ради пропускной способности.
По мере роста объёмов данных GPU-ориентированные решения вроде GPZ будут становиться ключевыми компонентами инфраструктуры научных вычислений и управления большими данными.
Источник: https://arxiv.org/abs/2508.10305
Для подробностей — смотрите статью и GitHub проекта с кодом, туториалами и ноутбуками.
Switch Language
Read this article in English