天文中年さんの資料で教えて頂いた内容です。
(kさんの会議です。いつもお世話になっています。)
以前から、CUDAを何とかしようと思っていたが、かなり面倒くさい。
バージョンを合わせること、GPUに応じたものを選択すること、
インストール手順が複雑であることなどが、面倒なのだ。
天文中年さんの資料はかなりまとまっているのでやりやすい。
ありがとうございます。
目的:PixInsightで処理の高速化を行う
条件:nVidiaのGPU(グラフィックボード)が必要
AMDやIntel内蔵のGPUはダメ、この点で安価なノートPCは全滅
ノートPCならnVvidia搭載のゲーム用か、ワークステーションになる
効果があるのは、BTXとかの画像演算系の処理
効果がないのは、WBPP
■効果を確かめるために、事前にBTXを実行するための画像を用意
お馴染みの馬頭星雲
鏡筒:タカハシ FRC300 (fl=2348mm F7.8)
カメラ:ZWO ASI6200MM Pro、Bin(2x)
フィルター:Ha
撮影:5分x43枚、ダーク・フラット補正、スタック済み
■効果を確かめるために、事前にBTXを実行(CUDA実装前)
2分22秒(144秒)
■NVIDIA DEVELOPER のアカウント登録
https://developer.nvidia.com/
アカウントの登録をしないと、以下のダウンロードができなかったような気がする。
個人情報を登録するが、住所は不要、ただ勤務先/大学名などを記入する。
勤務先や大学は適当に(TokyoUnivでもUnemployedでもnoworkとでも)
■nVidia CUDA11.0 をダウンロード・インストール
https://developer.nvidia.com/cuda-11.0-download-archive
カスタムインストールを選び、CUDA>Runtime>Libraries のみでよい。
■CUDA11.0 に対応するcuDNNを選択してダウンロードと配置
https://developer.nvidia.com/rdp/cudnn-archive
上から2個目、CUDA 11.X の最新版を選択した。
RTX4000は違うらしいが、持っていないのでよくわからない。
解凍して出てきた中身のbin と lib フォルダを
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0 に上書きする。
(管理者権限が必要)
■libtensorflow-gpu 2.4.0 のダウンロードとPixInsightへ配置
https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow- gpu-windows-x86_64-2.4.0.zip
lib 内の tensorflow.dll を C:\Program Files\PixInsight\bin に上書きする。
■Windowsの環境変数を設定する
システムの設定から、詳細設定で、この画面を出して、環境変数をクリック。
ユーザー環境に、
環境変数名を TF_FORCE_GPU_ALLOW_GROWTH 、値を true で追加する
PATHに以下の内容を追加
"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin"
■Windowsを再起動
■PixInsight BTXで効果を試す(CUDA実装後)
先程と同じ馬頭星雲で実行する。
結果は32秒。
144秒-->32秒なので、約4倍の高速化となった。
天文中年さんも、約4倍の高速化だとのことだったが、
パソコンのスペックがハイレベルで、10秒-->2秒とかで一瞬で終わるという。
地獄の閻魔大王様も平伏すくらいの最強マシンだ。
■おまけ
タスクマネージャーのパフォーマンスモニターでは、GPU1(NVIDIA Quadro)が
有効に機能している。
そのため、CPUの稼働率が低い。
尚、CUDA対応前は、CPUが100%に張り付いたままで処理時間もかかる。
NVIDIA GPUがあれば、CUDAを使わない手はない。
NVIDIA Quadro T2000 がどの系統のものかよくわからなかったが、
RTX3000系統だったのだろうと思う。
■パソコン
ノートPCなんだけど、GPUはnVidia Quadro T2000、メモリは64GB、
のワークステーションなので、CUDAを使うことができている。
(中古で1桁万円だったが、M2-SSDやメモリ追加で10万超えたけどな)