StarXTerminatorの高速化

10時間を超える画像を、PixInsightWBPPを使ってRGB別に処理すると、終了までに5時間を超えるようになりました。現在のCPUは第8世代のCore i5 8400ですので、これはなんとかしなければと思うようになりました。もう新しい世代への移行時期ですね。

もう一つ気になったのは、StarXTerminatorでのスターレス画像作成にひどく時間がかかっていることです。調べてみると1枚のスターレス画像を作るのに、554秒もかかります。現在のグラフィックボードは、ASUSTeK NVIDIA GTX750Tiです。発売が2014年だそうですからもう8年も前になります。さすがに古くなっています。なによりビデオメモリが2GBしかありませんから、NVIDIACUDACompute Unified Device Architecture)が使えません。

そこで、まずビデオカードを更新して、CUDAを使ってStarXTerminatorを高速化することから始めてみることにしました。購入したのは、エントリーモデルですが4GBのメモリがあるMSI GEFORCE GTX1650で、メルカリで13,000円でした(財布に優しいので助かります)。同じ画像を使って、速度を測ってみると42.6秒でした。以前の554秒と比較すると、8.3倍速くなっています。この程度の投資で、これだけの結果が得られるのは驚きです。


ビデオカードのメモリが実際に使われていることが、タスクマネージャーのパフォーマンスグラフでも確認できました。

CUDAの設定

CUDAの設定は結構面倒でしたので、覚書としてまとめておきたいと思います。参考にしたのは、次のStarNetCUDAで高速化するサイトです。

https://www.williamliphotos.com/starnet-cuda

(1) CUDAのインストール

NVIDIAのサイトで、CUDA Toolkit 12.0をダウンロードして、インストールします。

https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=10

(2) tensorflowのインストール

最初の「How To: GPU Acceleration for StarNet++ V2 using CUDA」のサイトにリンクがありますので、libtensorflow-gpu-windows-x86_64-2.7.0.zipをダウンロードし、解凍して出てきたlibフォルダーにあるtensorflow.dllで、C:\Program Files\Pixinsight\bintensorflow.dllを置き換えます。


次に、解凍してできたincludeフォルダー内のtensorflowフォルダー全体を、C:\ Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\includeフォルダー内にコピーします。

(3) cuDNNのインストール

最初の「How To: GPU Acceleration for StarNet++ V2 using CUDA」のサイトにリンクがありますので、cudnn-11.4-windows-x64-v8.2.4.15.zipをダウンロードして解凍します。次の3つのフォルダーが作られます。


この中のbinincludeフォルダー内のファイルを全て、C:\ Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0にある、対応するbininclude内にコピーします。

さらに、libフォルダーのx64フォルダーにあるcnDNNライブラリーを全て、対応するC:\ Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0内のlib\x64フォルダー内にコピーします。

(4) 環境変数の設定

次の「システムのプロパティ」から「環境変数」をクリックし、システム環境変数に、次の三つの設定があることを確認します(これは問題なく設定されていました)。

・TF_FORCE_GPU_ALLOW_GROWTH = TRUE
・CUDA_PATH = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0
・CUDA_PATH_V12_0 = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0





次に、システム環境変数の
PATHをクリックし、そこに次の六つのパスを追加します。

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\bin
・C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\include
・C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\lib
・C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\extras\CUPTI\lib64
・C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\libnvvp

C:\tools\cuda\bin

これから

ハードウェアのアップデートが、処理の速度に大きな影響があることが分かりました。年が明けたら、CPUとマザーを、コストパフォーマンスの良い第12世代に変更したいと思います。全体の処理時間が半分以下になるのではと期待しています。

コメント