NVIDIA cuPhoton прискорює аналіз астрономічних зображень за допомогою GPU-нативного конвеєра

  • PublicPublic
  • 07 Oct, 2026
NVIDIA cuPhoton прискорює аналіз астрономічних зображень за допомогою GPU-нативного конвеєра

Наукові прилади з високою пропускною здатністю, такі як обсерваторії, телескопи та джерела рентгенівського випромінювання, генерують дані зображень зі швидкістю, що перевищує можливості конвеєрів, прив'язаних до CPU. Обчислювальне вузьке місце рідко полягає в одному повільному ядрі; скоріше, це весь шлях від сирих даних датчика до наукового рішення, що включає читання даних, узгодження функцій розсіювання точки, віднімання фону, підгонку моделей та класифікацію об'єктів. Сучасні установки накопичують петабайти багатовимірних даних за одну кампанію, а реалізації з пріоритетом CPU можуть займати від годин до місяців, щоб дати корисні результати з даних, створених за секунди. Ця затримка заважає отриманню своєчасних наукових інсайтів. NVIDIA cuPhoton вирішує цю проблему, надаючи GPU-нативний шлях, що охоплює кожен етап від читання з датчика до класифікації, скорочуючи час очікування до секунд і дозволяючи дослідникам працювати в тісних інтерактивних циклах.

NVIDIA cuPhoton - це відкритий інструментарій NVIDIA CUDA-X, що складається з блоків з прискоренням на GPU для спектральної та оптичної астрономії, а також аналізу лазерів та рентгенівських променів у часовій області. Зберігаючи дані зображень на GPU від початкового зчитування з датчика до фінальної класифікації, інструментарій значно зменшує затримку. Наприклад, обсерваторія Vera C. Rubin (NSF-DOE) записує нове 3,2-гігапіксельне зображення кожні 39 секунд після настання темряви. Її конвеєр Prompt Processing має класифікувати приблизно 10 000 детекцій як астрофізичні транзиєнти або артефакти протягом 60-120 секунд. За одну ніч це становить до 20 терабайт зображень і 10 мільйонів кандидатів об'єктів. cuPhoton масштабується на багатогігапіксельні та багатовузлові системи NVIDIA Grace Blackwell і Vera Rubin, прискорюючи завантаження зображень до 14 900 разів та обробку сигналів до 14 550 разів на репрезентативних навантаженнях, що включають сотні терабайт.

Компоненти пакета NVIDIA cuPhoton
Компоненти пакета NVIDIA cuPhoton

Інструментарій містить п'ять основних компонентів для робочого процесу з зображеннями: xDataReader, xRep, xPois, xFit та xScan, а також xRay для аналізу детекторів рентгенівського випромінювання у часовій області. Для налаштування необхідно клонувати репозиторій та розгорнути закріплене середовище Linux за допомогою команди uv sync --locked --extra dev --extra gpu --extra viz. Це середовище підтримує екосистему NVIDIA CUDA 13, включаючи CuPy, PyTorch, Numba-CUDA, KvikIO та NVIDIA nvCOMP, а також бібліотеки візуалізації, такі як Bokeh і Pillow. Версія cuPhoton 0.1.3 підтримує Python 3.12-3.14 на Linux. Збірка компонента xDataReader з початкового коду вимагає компілятора C++17, заголовків для розробки CUDA та cuFile, а також реентерабельної встановленої версії CFITSIO. Повний скрипт робочого процесу доступний у репозиторії для автоматичного запуску або інтерактивного використання в Jupyter-ноутбуках.

(Верхня панель) Кожної ночі телескоп обсерваторії Вера Рубін фіксує 20 ТБ даних (Джерело: початкові зображення з NSF-DOE Vera C. Rubin Observatory/NOIRLab/SLAC/AURA, модифіковані за допомогою ШІ).
(Верхня панель) Кожної ночі телескоп обсерваторії Вера Рубін фіксує 20 ТБ даних (Джерело: початкові зображення з NSF-DOE Vera C. Rubin Observatory/NOIRLab/SLAC/AURA, модифіковані за допомогою ШІ).

Модуль xDataReader прискорює завантаження файлів у форматі Flexible Image Transport System (FITS) безпосередньо на GPU, уникаючи традиційні накладні витрати на розбір на CPU та передачу через PCIe. Він розподіляє навантаження так: CFITSIO планує байтові діапазони на CPU, KvikIO читає їх через GPUDirect Storage (якщо доступно), а nvCOMP розпаковує GZIP-плитки на GPU. Публічна функція API batch_to_device повертає стопки масивів CuPy, підтримуючи нестиснуті HDU зображень з 2–16 осями та двовимірні зображення з плитковою стисненням GZIP_1 або GZIP_2. Стиснення Rice та дитеризоване квантування з рухомою комою не підтримуються. Для зображень у головному HDU користувачі повинні передавати hdu_indices=(0,), тоді як за замовчуванням використовується індекс HDU 1. Файли, згруповані в один виклик, повинні збігатися за формою та типом даних у кожному вибраному HDU.

Модуль xRep пересемплює двовимірні зображення на спільну небесну сітку з орієнтацією «північ угору», щоб вирівняти візити, які не мають спільної піксельної сітки через дитеринг, обертання або різницю в масштабі пластини. Функція build_stack_spec_from_fits читає рішення системи світових координат із заголовків FITS для побудови цільового сліду, а reproject_stack виконує проєкціювання кожного елемента на цю сітку. Параметр backend за замовчуванням встановлено в "auto", що віддає перевагу CuPy, потім CUDA PyTorch і, нарешті, CPU, якщо GPU недоступне. Інтерполяція за замовчуванням використовує Lanczos-3. Таке вирівнювання забезпечує, що статичні зорі в шаблоні та наукових кадрах займають однакові координати, що дозволяє ізолювати рухоме джерело як єдину змінну позицію на небі перед відніманням.