李浩,羅近濤,潘之辰,孫鵬飛,姜金辰,5
一種基于DSPSR和GPU的脈沖星相干消色散基帶數據處理技術
李浩1,2,羅近濤1,3,潘之辰4,孫鵬飛1,姜金辰4,5
(1. 中國科學院 國家授時中心,西安 710600;2. 中國科學院大學,北京 100049; 3. 中國科學院 精密導航定位與定時技術重點實驗室,西安 710600;4. 中國科學院 國家天文臺,北京 100101;5. 北京大學,北京 100871)
相比于非相干消色散,相干消色散具有色散消除更徹底、可保留原始數據相位、時間分辨率信息等優勢,但同時具有運算量大、數據處理耗時長等問題。為實現脈沖星基帶數據相干消色散處理,對數據處理流程進行加速,開發一種以DSPSR(digital signal processing software for pulsar)和GPU(graphics processing unit)為數據處理核心的脈沖星數據處理技術。利用高速共享內存實現對環形緩存區兩路極化基帶數據的讀取,結合圖形處理器高性能計算技術,使用DSPSR對基帶數據進行相干消色散處理。數據處理結果表明,相比于多線程非相干消色散系統,此數據處理技術在數據處理速度方面具有更好的優越性,并可獲得更精細的脈沖輪廓。
脈沖星;相干消色散;脈沖星數字信號處理程序包;圖形處理器;脈沖星分布式采集和數據分析處理軟件
脈沖星信號在傳播過程中由于受到星際介質(interstellar medium,ISM)影響產生色散現象,導致觀測到的脈沖輪廓展寬,需采用消色散技術對脈沖星數據進行處理。脈沖星消色散方法主要分為非相干消色散和相干消色散兩種。非相干消色散在時域進行,多通道濾波器將脈沖星信號等分為若干通道的窄帶信號,再將每個通道的信號經過平方檢波后在時域上對齊相加,補償因色散而產生的時間延遲,但是同一通道內色散無法消除[1]。相干消色散核心算法為快速傅里葉變換,將時域數字信號變換到頻域,再使用星際介質傳輸函數進行處理,消除整個通帶內的色散。相比于非相干消色散,相干消色散可消除帶內色散,效果更徹底,并能夠保留原始數據的相位關系、時間分辨率。已有學者研究表明,在一定的觀測頻率之內,相干消色散的效果優于非相干消色散[2]。
目前主流脈沖星數字終端系統由現場可編程門陣列(field programmable gate array,FPGA)、圖形處理器(graphics processing unit,GPU)、中央處理器(central processing unit,CPU)三部分組成,FPGA平臺主要用于ADC(analog to digital converter)控制、數據流控制和信號預處理,GPU負責消色散等核心算法的完成,CPU用于數據傳輸、邏輯控制和文件讀寫[3]。FPGA端輸出的基帶數據可保留脈沖星信號原始信息,結合相干消色散技術可開展超高時間分辨率脈沖星輻射特性研究,對于持續時間極短的快速射電暴(fast radio burst,FRB)搜尋以及脈沖星超短時標脈沖等研究有著重要意義。以中國FAST 500 m望遠鏡①http://www.cas.cn/zt/kjzt/fast/、澳大利亞Parkes 64 m望遠鏡[4]、德國100 m口徑Effelsberg望遠鏡[5]等為代表的大口徑射電望遠鏡以脈沖星觀測為主要科學目標,寬帶寬、超高時間分辨率和高頻率分辨率數字終端技術成為發展趨勢。
國內脈沖星數字化終端系統的研制已取得一系列進展。中國科學院新疆天文臺依托25 m射電望遠鏡和VLBI記錄終端MK5A系統,開展脈沖星相干消色散觀測系統研究[6]。中國科學院云南天文臺以ROACH2平臺和脈沖星數字信號處理程序包(digital pulsar signal processing for pulsars,DSPSR)為數據處理核心構建相干消色散觀測系統[7]。中國科學院上海天文臺65 m射電望遠鏡配備脈沖星數字化終端(digital backend system,DIBAS),同時具備相干與非相干消色散功能[3]。中國科學院國家天文臺面向FAST開發了基于ROACH2平臺的非相干數字化脈沖星終端[8]。中國科學院國家授時中心40 m射電望遠鏡HRT脈沖星觀測系統使用FPGA+GPU架構,可實現非相干消色散與相干消色散兩種觀測模式[9]。國際上,美國NRAO(National Radio Astronomy Observatory)在GUPPI(green bank ultimate pulsar processing instrument)系統的基礎上,研制硬件平臺和性能指標更為先進的VEGAS(versatile GBT astronomical spectrometer),基本系統由ADC,ROACH系列FPGA平臺與GPU處理集群組成②http://www.cas.cn/zt/kjzt/fast/。德國Effelsberg射電望遠鏡PSRIX后端采用ROACH系列平臺實現,GPU集群進行數據處理[10]。澳大利亞Parkes射電望遠鏡的BPSR(Berkeley Parkes Swinburne Recorder)脈沖星數字終端系統采用FPGA平臺和CPU+GPU架構,數據處理后端采用開源軟件PSRDADA(processing software for pulsar distributed acquisition and data analysis)實現數據緩沖區、DSPSR實現實時相干消色散和RFI處理[11]。
結合相干消色散脈沖星觀測系統發展趨勢,本文基于CPU+GPU架構,開發一種以GPU和DSPSR為數據處理核心的相干消色散基帶數據處理技術。利用高速共享內存原理實現最高兩路極化基帶數據輸入,后續解碼、消色散、折疊等數據處理流程采用脈沖星數字信號處理程序包DSPSR結合GPU加速技術進行處理。數據處理結果以PSRFITS格式存儲。面向FAST脈沖星觀測系統海量數據相干消色散處理需求,將此數據處理流程在FAST基帶數據服務器集群上進行部署測試,驗證流程的正確性與可行性,為后續寬帶實時相干消色散脈沖星觀測系統的開發提供技術儲備。





脈沖星數據進行相干消色散處理需進行大量的浮點運算,相比于非相干消色散算法,對計算機的性能和運算能力要求更高,隨著圖形處理器高性能計算的發展,數字化相干消色散脈沖星終端技術研究成為新的趨勢。本文構建的相干消色散數據處理流程如圖1所示,利用高速共享內存,即環形緩存區(ringbuffer)實現基帶數據的讀寫,包括數據輸入、數據處理、數據輸出3個部分。

圖1 數據處理流程
首先從磁盤中讀取基帶數據、header文件并寫入環形緩存區,環形緩存區由兩部分組成:Data buffer和Header buffer,Data buffer用于存放基帶數據,Header buffer用于存放觀測信息以及基帶數據基本信息。然后DSPSR從環形緩存區讀取基帶數據和對應的信息,進行相干消色散、折疊等后續處理,并將處理結果存入磁盤。
共享內存是Unix系統下一種高效的多進程間通信(inter-process communication,IPC)方式,多用于同一程序不同進程間的數據傳輸。進程可直接對內存進行訪問、讀寫,不需要進行數據拷貝,是連接到共享內存的多個進程間共享和傳遞數據的有效方式。
共享內存中的數據可被連接到此共享內存的所有進程讀取,此時進程間數據傳輸不再通過內核,可有效減少系統調用時間,提高數據傳輸效率。主流的共享內存實現方式有跨進程間通訊的基于SYS V的共享內存、基于POSIX mmap文件映射共享內存和基于DMABUF框架,可跨設備間通訊的共享內存兩大類[14]。
脈沖星終端更寬帶寬、更高時間分辨率的發展趨勢,面臨海量數據高速傳輸技術難題。FAST 19波束接收機在8 bits采樣下基帶數據數據量為38 Gbit/s,PSRFITS格式數據量為3 040 Mbit/s(4 k通道, 50 μs,8 bits)[3],海量數據快速處理成為基帶數據處理難題,共享內存高效數據傳輸的優勢,是解決海量基帶數據處理的途徑。
PSRDADA是用于脈沖星基帶記錄的開源軟件項目,提供靈活且易于管理的環形緩存區(ringbuffer)實現數據讀寫。可通過基于文本的套接字接口來控制讀、寫程序,以實現從ringbuffer中將數據寫入磁盤陣列、將數據發送到節點陣列以及直接在ringbuffer中處理數據③http://psrdada.sourceforge.net/。
在PSRDADA的邏輯中,環形緩沖區通常有一個指向ringbuffer中可讀數據的讀指針和一個指向可寫緩存區的寫指針,通過控制讀、寫指針實現緩沖區數據的輸入和輸出。在PSRDADA的具體實現中,寫程序創建并鎖定環形緩存區后,未被程序讀取的數據區域定義為使用區域,通過將已讀取數據區域標記為已清除,成為新的未使用區域且可被寫程序識別,來構成邏輯上的循環。
DSPSR是一款開源、面向對象的數字信號處理軟件包,可以選擇性地利用多核處理器和通用圖形處理單元進行射電脈沖星數字信號處理,旨在提高算法和數據的可移植性[13],支持CPSR,FITS,Mark5等多種數據格式。DSPSR還可實現多種模塊化算法:如相干消色散、生成濾波器組、全極化檢測、格式轉換等。數據結果以PSRFITS格式輸出,可用于PSRCHIVE等軟件進行后續數據處理。
DSPSR通過共享內存區,可直接從RAM中讀取脈沖星數據。并可結合GPU加速特性進行并行運算,提升消色散等數據處理效率。
GPU即圖形處理器,配備有高速內存以及大量算術邏輯單元(arithmetic and logic unit,ALU),是專為執行大量幾何計算而設計的一種高度并行化多核處理器。相比于CPU采用串行架構,功能模塊較多,能適應復雜運算環境的特點,GPU可執行大規模并發計算,擁有更強大的浮點運算能力。
CUDA(compute unified device architecture)是NVIDIA公司推出的軟硬件通用計算設備架構[15],采用標準C語言的拓展作為編程語言,提供大量高性能計算指令。利用CUDA進行編程可采用新的計算架構來使用GPU提供的硬件資源,使線程的創建和調度所占用的開銷大大減少,從而提升程序的運算效率。
GPU的邏輯架構包括thread,block和grid三個部分,如圖2所示,GPU執行計算可調用的最小單位為thread,數個thread共同組成一個block,一個block中的thread共用同一塊共享內存,并可快速實現數據同步。在物理層,GPU硬件的核心組件為流式多處理器(streaming multiprocessor,SM)。SM資源主要包括CUDA核、共享內存、寄存器、乘加器等,可以并行執行數百個線程,資源數量越多則GPU的并行計算能力越高。

圖2 GPU線程結構
脈沖星數據處理流程中,消色散所需時間占比最大,是影響數據處理效率最主要的因素[16]。隨著GPU的可編程能力及并行處理能力不斷提高,應用范圍迅速擴展,可利用GPU高性能并行計算特性來滿足海量基帶數據的實時處理需求。本文利用DSPSR結合GPU加速技術對相干消色散算法進行加速,提高數據處理效率。
本流程對基帶數據的處理可分為基帶數據的讀取與寫入、調用DSPSR讀取數據、相干消色散處理、折疊、PSRFITS格式輸出等5個步驟。基帶數據的讀寫通過編寫程序實現,通過在編譯時添加相應的數據格式來實現DSPSR對ringbuffer中數據的讀取,相干消色散、折疊等處理通過調用DSPSR實現,數據處理結果由DSPSR以PSRFITS格式保存。為提高數據處理速度,使用GPU對DSPSR的數據處理進行加速。
在本數據處理流程中,環形緩存區為基帶數據讀寫的接口,包含指針、唯一標識符(KEY)、內存塊大小、內存塊數量4個參數。這4個參數中,指針指向未使用的環形緩沖區句柄,通過此指針來實現對共享內存的訪問,ringbuffer的大小由內存塊大小和內存塊數量共同決定。程序通過指定命令及以上參數來對ringbuffer進行創建、連接、鎖定、讀取、重置等操作。如圖3所示,對ringbuffer的使用以及數據處理流程步驟如下:
① 創建ringbuffer,通過設置內存塊大小以及內存塊數量來控制ringbuffer大小,并為其指定唯一標識符‘KEY’。
② 寫程序通過唯一標識符‘KEY’連接并鎖定ringbuffer,此時ringbuffer僅允許當前寫程序進行訪問。
③ 寫程序通過命令行參數所指定的路徑與文件名,讀取header文件與基帶數據文件,并對ringbuffer進行寫操作。
④ 寫程序通過判斷是否讀取到文件末尾以保證文件的連續讀取,直至所有文件讀取完畢。
⑤ DSPSR通過唯一標識符‘KEY’連接并鎖定到ringbuffer,對基帶數據進行讀取并進行后續相干消色散、折疊等處理,并輸出結果文件。此時ringbuffer僅允許當前讀程序(DSPSR)進行訪問。
⑥ 全部數據處理完成后,寫程序會返回寫入ringbuffer中基帶數據文件總數、總大小以及平均傳輸速度到屏幕,然后通過對ringbuffer進行刷新,以釋放內存。

圖3 數據讀取原理
處理兩路基帶數據時,需保證兩路數據文件的數量、每個文件大小分別對應相等,目前實現兩路極化各2 048個文件輸入,根據服務器內存配置,可調整文件輸入數量上限。在數據處理服務器內存容量允許的情況下,可通過指定不同的標識符‘KEY’創建多個ringbuffer來同時進行不同數據的讀寫操作。
2001-2012年海南省國際旅游外匯收入除2003年和2009年下降外,總體呈波動上升趨勢。期間,2003年受亞洲“非典”公共危機事件影響,2008-2009年受全球金融危機影響出現下滑。其國際旅游外匯收入從2001年的1.06億美元上升到2012年的3.48億美元。12年間的平均國際旅游外匯收入為2.21億美元,約占全國的0.65%,排名在二十一位名上下波動。2001-2012年海南省國際旅游外匯收入一直低于全國平均值,差距越來越大。
根據pipeline處理數據要求,使用ringbuffer前,需創建脈沖星觀測信息文本文件,文件中包括觀測頻率、射電源名稱、觀測模式、極化、通道、帶寬、中心頻率、采樣比特數、臺站信息、數據大小等參數信息,并對參數信息根據實際觀測情況進行修改,再將基帶數據文件名按照指定格式保存到文本文件中。
依據3.1節數據處理原理,首先創建指定大小的ringbuffer,寫程序根據‘KEY’值使用指定命令連接到ringbuffer,將header文件及數據分別寫入header buffer和data buffer中,并輸出header文件內容到屏幕。然后使用DSPSR相關命令讀取ringbuffer中數據,進行相干消色散、分通道、折疊以及PSRFITS格式輸出等處理。通過修改DSPSR命令參數調整圖形處理器以及中央處理器線程數的使用,并對通道數、輸出文件名及路徑、積分時間等數據處理信息進行調整。所使用的脈沖星歷文件由Psrcat軟件生成,采用Tempo2生成預報多項式進行折疊。最后刷新ringbuffer,清空共享內存區中數據。
為測試、驗證數據處理流程的可行性與準確性,在FAST基帶數據服務器集群上安裝配置此流程,并使用FAST對脈沖星PSR J0534+2200、PSR J1939+2134觀測所得的基帶數據進行測試處理。
本文所處理的基帶數據觀測信息為:中心頻率1 250 MHz、帶寬500 MHz、雙極化、8比特采樣。首先,分別采用3.2節的數據處理方式和DSPSR CPU多線程方式對數據進行處理,記錄處理1 s觀測時長的數據量所需時間,結果如表1所示。根據FAST基帶數據服務器集群配置信息,本文介紹的數據處理流程處理8比特采樣、觀測時長1 s的雙極化基帶數據,所需時間大約為0.8 s,與CPU模式下調用32線程處理時間5 s相比,速度提升約6.25倍。FAST基帶數據服務器配置信息如表2所示。

表1 數據處理信息和所需時間

表2 FAST基帶數據GPU配置信息
其次,使用3.2節的數據處理方式對PSR J0534+2200和PSR J1939+2134的總觀測時長基帶數據進行相干消色散處理,處理結果如圖4至圖7所示。同時對PSR J1939+2134基帶數據進行非相干消色散處理,結果如圖8所示。PSR J0534+2200和PSR J1939+2134經過相干消色散處理后的數據信噪比分別為16.677和1 270.176,可以利用Tempo2和PSRCHIVE對數據進行計時等研究工作。

圖4 PSR J0534+2200相干消色散脈沖輪廓圖(中心頻率1 250 MHz,帶寬500 MHz,雙極化)
從圖4中可清晰看到PSR J0534+2200脈沖輪廓的兩個主成分:分別位于相位0.3和0.7附近的主脈沖和中間脈沖。從圖5的頻率—相位圖中可以看到經過相干消色散處理不同的通道已經對齊,消除了色散效應的影響。圖6為PSR J1939+2134經過相干消色散處理后得到的脈沖輪廓圖,可看到位于相位0.2附近主脈沖的精細結構,在頻域圖中也可看到該結構。圖7顯示各頻率通道也已經對齊。

圖6 PSR J1939+2134相干消色散脈沖輪廓圖(中心頻率1 250 MHz,帶寬500 MHz,雙極化)

圖7 PSR J1939+2134頻率—相位圖

圖8 PSR J1939+2134非相干消色散脈沖輪廓圖(中心頻率1 250 MHz,帶寬500 MHz,雙極化)
最后,為驗證本文所論述的數據處理流程的數據處理質量,根據Australia Telescope National Facility④https://data.csiro.au/dap/public/atnf/pulsarSearch.zul的資料,與Parkes 對PSR J1939+2134在L波段觀測所得到的輪廓進行比較,結果如圖9所示。圖9所示為Parkes的PDFB終端系統對PSR J1939+2134在1378 MHz觀測數據的相干消色散處理結果,可清晰看到位于相位0.2附近的主脈沖、相位0.7附近的中間脈沖以及主脈沖的精細結構,與圖6中FAST觀測數據處理結果一致,證明本數據處理流程的數據處理結果是符合要求的。

圖9 Parkes觀測得到的PSR J1939+2134相干消色散脈沖輪廓圖
本文提出的基于DSPSR和GPU的脈沖星數據處理流程,可實現最高兩路極化基帶數據相干消色散處理。數據讀取及處理方面結合高速共享內存技術和GPU加速技術,實現基于CPU+GPU異構系統的相干消色散基帶數據處理技術,相比于非相干消色散,色散消除更徹底,可以獲得更精確的脈沖輪廓。數據處理效率方面:在TITAN XP圖形處理器配置下,對8 bit采樣、觀測時長1 s的雙極化PSR J0534+2200基帶數據進行處理,所需時間約為0.8 s,與CPU模式下,DSPSR采用32線程處理同樣數據量的基帶數據所需時間約5 s相比,本數據處理流程速度提升約6.25倍。在觀測頻率、帶寬相近的條件下,將PSR J1939+2134數據處理結果與Parkes在L波段觀測所得的輪廓圖進行對比,本流程處理所得結果與Parkes處理結果相同,驗證了此數據處理流程在脈沖星數據處理方面的可行性與準確性。本數據處理技術的開發,在實現相干消色散基帶數據處理的基礎上,提升了數據處理效率,為海量脈沖星基帶數據實時處理以及國內開發相干消色散脈沖星終端提供數據處理方面的技術儲備和技術參考。
在今后的工作中將繼續研究DSPSR在GPU并行計算場景下的應用,進一步優化其數據處理速度,為實時寬帶相干消色散的接收機做技術儲備。并拓展基于PSRDADA共享內存技術的數據讀寫功能,如增加支撐更多數據格式,實現特定格式文件輸出等。
致謝:感謝中國科學院國家天文臺FAST現場工作人員對數據處理流程部署的大力支持和熱情幫 助,在此深表謝意。
[1] 劉建偉, 金乘進. 基于計算機集群的脈沖星相干消色散系統研究[J]. 科學技術與工程, 2009, 9(13): 3612-3615+3620.
[2] 黃玉祥, 汪敏, 郝龍飛, 等. 脈沖星信號相干消色散與非相干消色散的比較研究[J]. 天文研究與技術, 2019, 16(1): 16-24.
[3] 張海龍, 張萌, 聶俊, 等. 脈沖星數字終端技術綜述[J].中國科學(物理學 力學 天文學), 2019, 49(9): 15-28.
[4] BAILES M. Precision timing at the Parkes 64-m radio telescope[J]. Radio Pulsars, ASP Conference Proceedings, San Francisco: Astronomical Society of the Pacific, 2003: 57-60.
[5] HACHENBERG O, GRAHL B, WIELEBINSKI R. The 100-meter radio telescope at Effelsberg[J]. Proceedings of the IEEE, 1973, 61(9): 1288-1295.
[6] 劉立勇, 艾力·伊沙木丁, 張晉. 烏魯木齊天文站建立脈沖星相干消色散觀測系統[J]. 天文研究與技術, 2007, 4(1): 72-78.
[7] 徐永華, 李紀云, 張穎倩, 等. 相干消色散脈沖星觀測系統的研究[J]. 天文研究與技術, 2015, 12(4): 480-486.
[8] 南仁東, 李會賢.FAST的進展—科學、技術與設備[J]. 中國科學(物理學 力學 天文學), 2014, 44(10): 1063-1074.
[9] LUO J T, GGAO Y P, YANG T G, et al.Pulsar timing observations with Haoping radio telescope[J]. Research in Astronomy and Astrophysics, 2020, 20(7): 187-192.
[10] LAZARUS P, KARUPPUSAMY R, GRAIKOU E, et al.Prospects for high-precision pulsar timing with the new Effelsberg PSRIX backend[J]. Monthly Notices of the Royal Astronomical Society, 2016, 458(1): 868-880.
[11] SARKISSIAN J M, CARRETTI E, STRATEN W V.The Parkes pulsar backends[J]. AIP Conference Proceedings, 2011, 1357(1): 351-352.
[12] LORMER D R, KRAMER M.Handbook of pulsar astronomy[K]. 2012.
[13] STRATEN W V, BAILES M.DSPSR: digital signal processing software for pulsar astronomy[J]. Publications of the Astronomical Society of Australia, 201l, 28(1): 1-14.
[14] Microsystems S.Shared Memory[C] // System Interface Guide, [S.l.]: Iuniverse Inc, 2001: 106-107.
[15] CHENG J, GROSSMAN M, MCKERCHER T.Professional CUDA C programming[M]. John Wiley & Sons, [S.l.]: Wrox, 2014.
[16] 李佳功, 徐永華, 李志玄, 等. 基于Mark5B+GPU脈沖星觀測系統[J]. 天文研究與技術, 2014, 11(4): 335-342.
A coherent de-dispersion processing technology on pulsar baseband data based on DSPSR and GPU
LI Hao1,2, LUO Jin-tao1,3, PAN Zhi-chen4, SUN Peng-fei1, JIANG Jin-chen4,5
(1. National Time Service Center, Chinese Academy of Sciences, Xi’an 710600, China;2.University of Chinese Academy of Sciences, Beijing 101048, China; 3. Key Laboratory of Precise Navigation and Timing Technology, Chinese Academy of Sciences, Xi’an 710600, China;4. National Astronomical Observatory, Chinese Academy of Sciences, Beijing 100101, China; 5. Peking University, Beijing 100871, China)
Compared with incoherent de-dispersion, coherent de-dispersion has the advantages of more thorough dispersion elimination, and retaining the original phase information and the time resolution of the original data. However, it comes with challenges such as the massive computations and the longer data processing time. In order to realize a coherent de-dispersion processing of baseband data and accelerate the data processing, a pulsar data processing pipeline using DSPSR (the digital signal processing for pulsars) and GPU (graphics processing unit) as the data processing core is developed. Firstly, through the high-speed shared memory, the circular buffer is used to read the two-polarization baseband data. Combined with the high-performance computing technologies based on the graphics processor, the DSPSR is used to perform coherent de-dispersion, and folding process on the baseband data. Results from this pipeline show that compared with the multi-threaded incoherent de-dispersion system, this data processing technology has advantages in data processing speed and obtaining finer pulse profiles.
pulsar; coherent achromatic dispersion; digital signal processing for pulsars (DSPSR); graphics processing unit (GPU); processing software for pulsar distributed acquisition and data analysis (PSRDADA)
10.13875/j.issn.1674-0637.2021-03-0204-11
李浩, 羅近濤, 潘之辰, 等. 一種基于DSPSR和GPU的脈沖星相干消色散基帶數據處理技術[J]. 時間頻率學報, 2021, 44(3): 204-214.
2021-04-21;
2021-05-22
國家自然科學基金資助項目(U1931128;11973046;91736207;42030105);國家重點研發計劃資助項目(2017YFA0402602)