gpuを用いた 高速一次処理パイプライン -...
TRANSCRIPT
重力波と即時解析
•重力波はエラー領域が広い➢エラー領域内を片っ端から観測し、対応する可視光トランジェントを見つけ出す
➢高速な画像一次処理が不可欠
1
GW190425zのエラー領域
https://gracedb.ligo.org/superevents/S190425z/view/
Ishigaki
MITSuME
可視光望遠鏡による観測システム所在・口径:
• 明野 50cm• 岡山 50cm• 石垣 105cm
フィルター:• g’, Rc, Ic (同時撮像)
主目的:• 突発天体の即時追観測
2
Akeno
Okayama
一次処理@MITSuME
1. バイアスの除去
2. ダークの除去
3. フラット補正
4. バッドピクセル補正
5. 位置合わせ
6. 重ね合わせ
既存の一次処理パイプラインはIRAF(PyRAF)を使用するPythonスクリプト
3
目的・手法
目的
•既存の一次処理パイプラインを代替する高速パイプラインを開発する
4
手法• IRAFを使用しない
➢ファイルI/Oを減らすため➢IRAF・PyRAFは既にSTScIのサポート対象外
• GPU上で画像処理演算を行う➢画像処理はGPUの十八番➢使いやすいライブラリがある
Preferred Networkが提供する
GPU上での数値計算用Pythonライブラリ
特徴: NumPy互換のAPI
5https://preferred.jp/ja/projects/cupy/
新しい成果
•画像シフト時の補間アルゴリズムの変更➢IRAFのデフォルト設定と異なっていた→同じものに
•コードの最適化➢更なる高速化
•主要機能のPythonパッケージ化➢他の望遠鏡のデータでも使用可能
7
コードの最適化
• 配列の使いまわし
• 途中計算結果をメモリ上に展開しない
• 関数呼び出しオーバーヘッドの削減
• etc.
→30倍から40倍へと
更なる高速化を達成(CuPyの独自機能を使用しており、NumPyとの互換性は低下)
9
1
10
100
1000
20 200
実行時間
[ s]
入力画像枚数
IRAF使用パイプライン
昨年時
現在
30倍 40倍
Pythonパッケージ化
•主要機能をPython関数に分割し、他の望遠鏡のデータにも使用できるよう改造➢ imalign-like
➢ imcombine-like
➢ fixpix-like
➢ etc.
• GitHubにて公開中➢Google Colaboratoryで動かせるサンプルプログラムあり
https://github.com/MNiwano/Eclair
11
まとめ
• GPUを利用する高速画像一次処理パイプラインを開発した。
• IRAFとの相対誤差≃ 10−3%で機能を再現しつつ、40倍の高速化を成し遂げた。
•他の望遠鏡のデータでも使用可能なPythonパッケージを整備し、GitHubで公開した。
12
Appendix
マシンスペック
13
CPU Intel Xeon E5-1650 v4 (6C,12T,3.6GHz)
Memory DDR4 2400MHz RDIMM ECC 16GB×4
Storage (system) Intel SSDSC2BB12 SATA SSD 120GB
Storage (data) Seagate ST2000VN0001 HDD 2TB
Graphics GPU NVIDIA TIRAN X (3584C,1.4GHz)
VRAM GDDR5X 12GB
Bus PCI Express 3.0 x16
OS Ubuntu 14.04.5 LTS
Python 2.7.6
IRAF 2.16.1
PyRAF 2.1.14
SExtractor 2.8.6
WCSTools 3.8.7
CUDA 10.0
NumPy 1.15.4
Astropy 2.0.9
PyWCS 1.12
CuPy 5.1.0