NVIDIA cuPhoton.xBeam prenosi korelaciju interferometrijskih podataka crnih rupa na GPU

  • PublicPublic
  • 14 Nov, 2026
NVIDIA cuPhoton.xBeam prenosi korelaciju interferometrijskih podataka crnih rupa na GPU

Snimiti crnu rupu znači razlučiti nešto sićušno: opaženi prsten M87* obuhvaća samo 42 mikrolučne sekunde. Teleskop horizonta događaja (EHT) povezuje 13 radiopostaja, među ostalima na Havajima, u Čileu, Španjolskoj, Meksiku i na Južnom polu, metodom interferometrije s vrlo dugim bazama (VLBI). Svaka postaja bilježi dvije polarizacije brzinom do 64 Gbit/s, pa se na kraju prikupe petabajti podataka o naponu. Korelacija parova teleskopa daje vidljivosti. To su rijetki Fourierovi uzorci svjetline neba duž tragova koje iscrtava rotacija Zemlje. Iz tih uzoraka algoritmi rekonstrukcije rješavaju inverzni problem. Kod promjenjivih izvora poput Sgr A*, koji se mijenjaju tijekom same sesije promatranja, zadatak postaje još teži. U EHT-u sljedeće generacije (ngEHT) planira se dodati nove postaje kako bi se poboljšala kvaliteta slika i pratile promjene kroz vrijeme.

Slika 2. Sintetički primjer u duhu EHT-a koji prikazuje uzorkovanje prostornih frekvencija, amplitude vidljivosti,
Slika 2. Sintetički primjer u duhu EHT-a koji prikazuje uzorkovanje prostornih frekvencija, amplitude vidljivosti, "prljavu" sliku i model u obliku polumjeseca

NVIDIA cuPhoton.xBeam je FX korelator na GPU-u. Iz sirovih zapisa dobiva po jednu kompleksnu vidljivost za svaki par stanica, frekvencijski kanal i kratak vremenski interval. Korelator je razvijen zajedno s Harvard-Smithsonian Center for Astrophysics i opservatorijem MIT Haystack Observatory. Na sustavu NVIDIA Vera Rubin NVL72 obradio je skup podataka od 10 TB za 70 sekundi. Za to su bila potrebna 64 GPU-a i GPUDirect Storage u načinu kompatibilnosti. To je otprilike 460 puta brže nego na x86 procesoru, kojem je trebalo 31 992 sekunde, odnosno 8,89 sati. Naknadna kalibracija i izrada slika, primjerice trodimenzionalni modeli plina temeljeni na Gaussovom splattingu, nisu dio cuPhotona. xBeam ne izračunava kašnjenja iz koordinata stanica niti prati putanje svjetlosti. Rezultati se provjeravaju u odnosu na DiFX, CPU korelator otvorenog koda, a izlazne podatke koriste alati kao što su HOPS, rPICARD i eht-imaging.

Slika 4. Ubrzanje cuPhoton.xBeam u usporedbi s osnovnom izvedbom na x86 procesoru (lijevo) i propusnost učitavanja podataka (desno) pri različitom broju GPU-ova na NVIDIA Vera Rubin NVL72
Slika 4. Ubrzanje cuPhoton.xBeam u usporedbi s osnovnom izvedbom na x86 procesoru (lijevo) i propusnost učitavanja podataka (desno) pri različitom broju GPU-ova na NVIDIA Vera Rubin NVL72

Cjevovod se sastoji od pet faza. U fazi unosa svaki VDIF okvir postavlja se na svoje točno mjesto u vremenu. Uz njega se stvara datoteka .vdix koja indeksira okvire prema vremenskoj oznaci, niti i fizičkoj lokaciji, bez kopiranja samih podataka. Pritom se nedostajući i neispravni podaci izričito označavaju. U fazi korekcije kašnjenja i faze interferencije podaci se prije FFT-a poravnavaju s točnošću od cijelog uzorka te se na njih primjenjuje rotacija faze interferencije. Preostalo razlomljeno kašnjenje kompenzira se frekvencijski ovisnom korekcijom faze.

Kašnjenje se preuzima iz datoteke zadatka. Sastoji se od geometrijskog polinoma oko t0, pomaka i drifta sata svake stanice te pomaka sata za svaki pojas. Unutar jednog FFT-a kašnjenje može biti konstantno, linearno ili parabolično, što određuje parametar fringe_approximation_order (0, 1 ili 2). U fazi kanalizacije za svaku se stanicu izvodi FFT. U fazi množenja s akumulacijom spektar jedne stanice množi se kompleksno konjugiranim spektrom druge. Neispravni ulazni podaci se maskiraju, a rezultat se normalizira prema težinama ekspozicije. Izlaz je u formatu DiFX SWIN ili xbeam-v1.

Verzija 0.1.3 prihvaća normalizirani zadatak u JSON formatu (verzija sheme 1) ili podržanu DiFX .input datoteku. U njoj su navedene stanice, satovi, frekvencije, VDIF tokovi podataka, baze i skenovi. Izlazni direktorij mora biti nov. Naredba cuphoton xbeam inspect-vdif RECORDING.vdif --json čita samo zaglavlja. Naredba build-vdif-sidecar s parametrima --index-dir, --backend cufile (ili posix, ako GPUDirect Storage nije dostupan) i --devices stvara indekse za ponovnu upotrebu, a izvorne datoteke ostaju nepromijenjene. Naredba cuphoton xbeam correlate JOB.json s --backend cupy pokreće korelaciju na GPU-u. Prema zadanim postavkama podaci se čitaju putem POSIX-a u prikvačenu memoriju domaćina, a s --vdif-io cufile - putem GPUDirect Storage. Među parametrima su --scan, --first-integration i --integration-count. Iz Pythona se mogu pozvati load_job i correlate s CorrelationWindow i dobivati zapise jedan po jedan, ali zapisivanje u SWIN dostupno je samo iz CLI-ja.

Za snimke s prazninama postoji profil --profile interop-real-usb-buffered-window-replay-v1. S njim se uzorci unutar zadržanog međuspremnika nastavljaju čitati s postojećom vremenskom referencom dok se ne pojavi nova referentna točka. Profil također određuje koji blokovi FFT-a doprinose i kako se prikazuju težine. Izgubljene uzorke ne vraća, a puna težina ne jamči potpunost podataka. Bez profila okviri se poravnavaju prema vremenskim oznakama u zaglavljima, a prazna mjesta označavaju se kao nevažeća, pa se vidljivosti i težine mogu razlikovati. Pri skaliranju se sken dijeli po vremenu. Na jednom čvoru --devices 0,1,2,3 pokreće po jedan proces za svaki GPU, zapisuje rezultate u RUN/shards/ i spaja ih. Na više čvorova svaki proces dobiva --shard-count i --shard-index, na primjer 64 s indeksima 0-63, uz iste postavke skeniranja i integracija. Zatim merge-shards spaja djelomične SWIN rezultate u cjelinu.

Slika 1. Radioteleskopi bilježe signale koji se koreliraju u vidljivosti za rekonstrukciju slike. Konceptualna ilustracija
Slika 1. Radioteleskopi bilježe signale koji se koreliraju u vidljivosti za rekonstrukciju slike. Konceptualna ilustracija
Slika 3. cuPhoton.xBeam pretvara snimke teleskopa u vidljivosti za kasniju izradu slika
Slika 3. cuPhoton.xBeam pretvara snimke teleskopa u vidljivosti za kasniju izradu slika