NVIDIA cuPhoton ubrzava analizu astronomskih slika pomoću GPU-native cijevovoda
Public- 07 Oct, 2026

Znanstveni instrumenti s visokom propusnošću, poput opservatorija, teleskopa i izvora rentgenskog zračenja, generiraju podatke slika brzinom koja premašuje mogućnosti cijevovoda vezanih na CPU. Izračunsko usko grlo rijetko je samo jedno sporo jezgro, već je to cijeli put od sirovih podataka senzora do znanstvene odluke, koji uključuje čitanje podataka, usklađivanje funkcija raspršenja točke, oduzimanje pozadine, prilagodbu modela i klasifikaciju objekata. Suvremene instalacije akumuliraju petabajte višedimenzionalnih podataka po kampanji, a implementacije s prioritetom CPU-a mogu trajati od sati do mjeseci da bi dale korisne rezultate iz podataka stvorenih u nekoliko sekundi. Ovo kašnjenje ometa pravovremene znanstvene uvide. NVIDIA cuPhoton rješava ovaj problem pružajući GPU-native put koji pokriva svaku fazu od čitanja s senzora do klasifikacije, skraćujući vrijeme čekanja na sekunde i omogućujući istraživačima da rade u uskim interaktivnim petljama.
NVIDIA cuPhoton je alat s otvorenim izvorom iz NVIDIA CUDA-X okvira, koji se sastoji od GPU-ubrzanih gradivnih blokova za spektralnu i optičku astronomiju te za analizu lasera i rendgenskih zraka u vremenskoj domeni. Zadržavanjem podataka slika na GPU-u od početnog očitavanja s senzora do konačne klasifikacije, alat značajno smanjuje latenciju. Na primjer, observatorij Vera C. Rubin (NSF-DOE) bilježi novo izlaganje od 3,2 gigapiksela svakih 39 sekundi nakon zalaska sunca. Njezin pipeline Prompt Processing mora klasificirati otprilike 10.000 detekcija kao astrofizičke tranzijente ili artefakte u roku od 60 do 120 sekundi. Tijekom jedne noći to iznosi do 20 terabajta slika i 10 milijuna kandidatskih objekata. cuPhoton se skalira na sustave s više GPU-ova i više čvorova NVIDIA Grace Blackwell i Vera Rubin, ubrzavajući učitavanje slika do 14.900 puta i obradu signala do 14.550 puta na reprezentativnim opterećenjima koja uključuju stotine terabajta.

Alat uključuje pet glavnih komponenti za radni tijek s slikama: xDataReader, xRep, xPois, xFit i xScan, te xRay za analizu detektora rendgenskog zračenja u vremenskoj domeni. Za postavljanje potrebno je klonirati repozitorij i uspostaviti zaključano Linux okruženje pomoću naredbe uv sync --locked --extra dev --extra gpu --extra viz. Ovo okruženje podržava ekosustav NVIDIA CUDA 13, uključujući CuPy, PyTorch, Numba-CUDA, KvikIO i NVIDIA nvCOMP, uz biblioteke za vizualizaciju poput Bokeh i Pillow. Verzija cuPhoton 0.1.3 podržava Python 3.12 do 3.14 na Linuxu. Izgradnja komponente xDataReader iz izvornog koda zahtijeva C++17 kompajler, razvojne zaglavlja za CUDA i cuFile te reentrantnu instalaciju CFITSIO. Potpuni skript radnog tijeka dostupan je u repozitoriju za automatsko pokretanje ili interaktivnu upotrebu u Jupyter bilježnicama.

Modul xDataReader ubrzava učitavanje datoteka u formatu Flexible Image Transport System (FITS) izravno na GPU, zaobilazeći tradicionalne troškove parsiranja na CPU i prijenosa putem PCIe. On dijeli opterećenje: CFITSIO planira bajtne raspone na CPU, KvikIO ih čita putem GPUDirect Storage (kada je dostupan), a nvCOMP dekomprimira GZIP pločice na GPU. Javna API funkcija batch_to_device vraća naslagane CuPy nizove, podržavajući nekompresirane HDU-ove slika s 2 do 16 osi i dvodimenzionalne slike s pločičnom kompresijom GZIP_1 ili GZIP_2. Rice kompresija i ditherizirana kvantizacija s pomičnim zarezom nisu podržane. Za slike u primarnom HDU korisnici moraju proslijediti hdu_indices=(0,), dok se zadano koristi indeks HDU 1. Datoteke grupirane u jedan poziv moraju se podudarati po obliku i tipu podataka u svakom odabranom HDU.
Modul xRep ponovno uzorkuje dvodimenzionalne slike na zajedničku nebesku mrežu s orijentacijom "sjeverom prema gore" kako bi poravnala posjete koje ne dijele pikselnu mrežu zbog ditheringa, rotacije ili razlika u ljestvici ploče. Funkcija build_stack_spec_from_fits čita rješenja Svjetskog koordinatnog sustava iz FITS zaglavlja kako bi izgradila ciljni otisak, dok reproject_stack distorzira svaki član na tu mrežu. Parametar backend zadano je postavljen na "auto", dajući prednost CuPy, zatim CUDA PyTorch i konačno CPU ako GPU nije dostupan. Interpolacija zadano koristi Lanczos-3. Ovo poravnanje osigurava da statične zvijezde u predlošku i znanstvenim kadrovima zauzimaju iste koordinate, omogućujući izolaciju pokretnog izvora kao jedine promijenjene pozicije na nebu prije oduzimanja.