gpuを用いた 高速一次処理パイプライン -...

14
GPUを用いた 高速一次処理パイプライン 庭野聖史 河合誠之 谷津陽一 村田勝寛 安達稜 (東京工業大学) 下川辺隆史(東京大学)

Upload: others

Post on 20-May-2020

16 views

Category:

Documents


0 download

TRANSCRIPT

GPUを用いた高速一次処理パイプライン

庭野聖史河合誠之谷津陽一村田勝寛安達稜 (東京工業大学)

下川辺隆史(東京大学)

重力波と即時解析

•重力波はエラー領域が広い➢エラー領域内を片っ端から観測し、対応する可視光トランジェントを見つけ出す

➢高速な画像一次処理が不可欠

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/

前回のあらすじ

• MITSuME用に、IRAFを使用せずCuPyを使用した一次処理パイプラインを開発した。

➢測光誤差の範囲でIRAFの機能を再現

➢30倍の高速化

6

新しい成果

•画像シフト時の補間アルゴリズムの変更➢IRAFのデフォルト設定と異なっていた→同じものに

•コードの最適化➢更なる高速化

•主要機能のPythonパッケージ化➢他の望遠鏡のデータでも使用可能

7

補間アルゴリズムの変更

poly3 (局所的なラグランジュ補間)から

spline3 (3次スプライン補間)へ

→IRAFとの相対誤差が≃ 1%から≃ 10−3 %へ

8

Before After

コードの最適化

• 配列の使いまわし

• 途中計算結果をメモリ上に展開しない

• 関数呼び出しオーバーヘッドの削減

• etc.

→30倍から40倍へと

更なる高速化を達成(CuPyの独自機能を使用しており、NumPyとの互換性は低下)

9

1

10

100

1000

20 200

実行時間

[ s]

入力画像枚数

IRAF使用パイプライン

昨年時

現在

30倍 40倍

10

デモンストレーション

Current pipeline New pipeline

※動画

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