2023/06/13(火) [n年前の日記]
#1 [cg_tools][prog] cog.yamlって何だろう
低品質な画像を高画質化できるらしい、SwinIR という画像処理技術が気になった。AIを使って画像を拡大したり、ノイズを除去してくれるらしい。
_GitHub - JingyunLiang/SwinIR: SwinIR: Image Restoration Using Swin Transformer (official repository)
ローカル環境で動かせるなら動かしてみたい。ざっと見たところ、cog.yaml というファイルが目に入った。
_SwinIR/cog.yaml at main - JingyunLiang/SwinIR - GitHub
.yaml/.yml ファイルか…。中には動作に必要な Pythonモジュールが列挙されてる。これはもしかして、conda用のファイルだろうか。ちなみに condaというのはPythonの仮想環境を作れるツール。
conda に cog.yaml を渡してみた。
ググってみたら、この cog.yaml、どうやら Docker 用のファイルだったらしい。Dockerとな…。やたらと見かけるツール名だけど、何だっけソレ。
_GitHub - JingyunLiang/SwinIR: SwinIR: Image Restoration Using Swin Transformer (official repository)
ローカル環境で動かせるなら動かしてみたい。ざっと見たところ、cog.yaml というファイルが目に入った。
_SwinIR/cog.yaml at main - JingyunLiang/SwinIR - GitHub
.yaml/.yml ファイルか…。中には動作に必要な Pythonモジュールが列挙されてる。これはもしかして、conda用のファイルだろうか。ちなみに condaというのはPythonの仮想環境を作れるツール。
conda に cog.yaml を渡してみた。
conda env create -n swinir --file cog.yamlしかし、何一つパッケージがインストールされなかった。すると、このファイルは何用のファイルなんだろう?
ググってみたら、この cog.yaml、どうやら Docker 用のファイルだったらしい。Dockerとな…。やたらと見かけるツール名だけど、何だっけソレ。
◎ Dockerについて調べた :
「dockerとは」でググってみたら、仮想環境を作れるツールらしい。開発時に必要なライブラリやパッケージをひとまとめにしておけるので、開発が捗るのだとか。
しかし、Linuxのカーネルと密接に絡んだ仕組みになっているので、Windows上ではすんなり使えない模様。有償ソフトの Docker Desktop なるものを導入するか、あるいは、Windows上で仮想PCのWSL2を導入して、その上で Ubuntu Linux等を動かして、そのLinux上で Docker を使う、ということになるそうで。
しかし、Linuxのカーネルと密接に絡んだ仕組みになっているので、Windows上ではすんなり使えない模様。有償ソフトの Docker Desktop なるものを導入するか、あるいは、Windows上で仮想PCのWSL2を導入して、その上で Ubuntu Linux等を動かして、そのLinux上で Docker を使う、ということになるそうで。
◎ 仮想PCの選択で悩む :
Docker を使うためにはWSL2の導入が必要らしいと分かってきたけど…。WSL2か…。うーん。
以前試しに WSL2 を使った時は、他の仮想PC、VMware や VirtualBox の動作が目に見えて遅くなってしまって、WSL2 をアンインストールしてしまった記憶が…。だから、WSL2 はインストールしたくないのだよなあ…。
であれば、VMware や VirtualBox 上で動かしている Linux上で Docker を使うわけにはいかんのだろうか。
そう思って少し調べたけれど、これまた上手くはいかないようで。Docker そのものは仮想PC + Linux で動かせるのだろうけど。そもそも WSL2 上で Docker が使えているのだから、他の仮想PCでも同様だろう。しかし、今回やりたいのは、「GPU(GPGPU)を使って処理をする SwinIR を動かしたい」というお題なわけで…。
仮想PC + Linux から、ホストOS(Windows)が管理してるGPU/ビデオカードを制御できればいいのだけど、現状では難しいらしい。有償、かつ、サーバ用途として販売されてる VMware ならやれなくもないらしいけど、VMware Player や VirtualBox では無理だそうで。GPU(GPGPU)が使えないとなると、SwinIR も動かない…。
つまり、SwinIR が動く環境を Docker を使って構築したい場合は、OSは Linux、かつ、その Linux機にGPGPUが利用できるレベルのビデオカード/GPUを積む、という条件を満たさないといけない。Windows上で、Docker を使って、GPGPUを使うツールの環境を構築するというのは、ちょっと厳しいようだなと…。
もしかすると、WSL2 +Docker を使った場合も、GPGPUは利用できないという問題が発生するのでは…?
以前試しに WSL2 を使った時は、他の仮想PC、VMware や VirtualBox の動作が目に見えて遅くなってしまって、WSL2 をアンインストールしてしまった記憶が…。だから、WSL2 はインストールしたくないのだよなあ…。
であれば、VMware や VirtualBox 上で動かしている Linux上で Docker を使うわけにはいかんのだろうか。
そう思って少し調べたけれど、これまた上手くはいかないようで。Docker そのものは仮想PC + Linux で動かせるのだろうけど。そもそも WSL2 上で Docker が使えているのだから、他の仮想PCでも同様だろう。しかし、今回やりたいのは、「GPU(GPGPU)を使って処理をする SwinIR を動かしたい」というお題なわけで…。
仮想PC + Linux から、ホストOS(Windows)が管理してるGPU/ビデオカードを制御できればいいのだけど、現状では難しいらしい。有償、かつ、サーバ用途として販売されてる VMware ならやれなくもないらしいけど、VMware Player や VirtualBox では無理だそうで。GPU(GPGPU)が使えないとなると、SwinIR も動かない…。
つまり、SwinIR が動く環境を Docker を使って構築したい場合は、OSは Linux、かつ、その Linux機にGPGPUが利用できるレベルのビデオカード/GPUを積む、という条件を満たさないといけない。Windows上で、Docker を使って、GPGPUを使うツールの環境を構築するというのは、ちょっと厳しいようだなと…。
もしかすると、WSL2 +Docker を使った場合も、GPGPUは利用できないという問題が発生するのでは…?
[ ツッコむ ]
以上です。