StarXTerminatorの高速化
10時間を超える画像を、PixInsightのWBPPを使ってRGB別に処理すると、終了までに5時間を超えるようになりました。現在のCPUは第8世代のCore i5 8400ですので、これはなんとかしなければと思うようになりました。もう新しい世代への移行時期ですね。
もう一つ気になったのは、StarXTerminatorでのスターレス画像作成にひどく時間がかかっていることです。調べてみると1枚のスターレス画像を作るのに、5分54秒もかかります。現在のグラフィックボードは、ASUSTeK のNVIDIA GTX750Tiです。発売が2014年だそうですからもう8年も前になります。さすがに古くなっています。なによりビデオメモリが2GBしかありませんから、NVIDIAのCUDA(Compute Unified Device Architecture)が使えません。
そこで、まずビデオカードを更新して、CUDAを使ってStarXTerminatorを高速化することから始めてみることにしました。購入したのは、エントリーモデルですが4GBのメモリがあるMSI GEFORCE GTX1650で、メルカリで13,000円でした(財布に優しいので助かります)。同じ画像を使って、速度を測ってみると42.6秒でした。以前の5分54秒と比較すると、8.3倍速くなっています。この程度の投資で、これだけの結果が得られるのは驚きです。
ビデオカードのメモリが実際に使われていることが、タスクマネージャーのパフォーマンスグラフでも確認できました。
CUDAの設定
CUDAの設定は結構面倒でしたので、覚書としてまとめておきたいと思います。参考にしたのは、次のStarNetをCUDAで高速化するサイトです。
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\binのtensorflow.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つのフォルダーが作られます。
この中のbinとincludeフォルダー内のファイルを全て、C:\ Program
Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0にある、対応するbinとinclude内にコピーします。
さらに、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
・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世代に変更したいと思います。全体の処理時間が半分以下になるのではと期待しています。
コメント
コメントを投稿
コメントはこちら