Stable-DreameFusion(Text to 3D)をwsl2環境でbuildする時、ハマった件
Text to 3D をwsl2環境でbuildする時、ハマったので、その沼からの脱出方法についての記録です。
まだ、開発途上ですが、テキストから3DCGを生成するText to 3Dというトンデモない技術が公開され、
その論文中では、非公開のGoogleのText to Image技術が使われているのですが、それをオープンソース
のText to Image技術であるStable Diffusionに置き換えたものが、git上で公開されています。
私は、これをwsl2で実行していますが、基本的にはインストール&実行とも簡単で、誰でも、
Text to 3D を試すことができます。
しかし、この中の
pip install git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch
だけビルドエラーがでてしまいます。これはoptionalなので、まあ、いいかと思っていたのですが、
気持ち悪いので調べてみました。
これは、https://github.com/NVlabs/tiny-cuda-nn
という2Dイメージを学習する部分で、Stable-DreamFusionを実験的に実行する上では必要ありません。
"Lightning fast implementation of small multi-layer perceptrons" とありますので、
学習が滅茶早くなるのかな?
buildしようとすると、「lcudaが無いよ!」というエラーになります。
cuda関連のライブラリは /usr/local/cuda/lib64 にあって、ここにパスが通っていれば問題ないはず
ですが、コンパイラーのバージョンを変えたり色々試みましたし、ネットでも調べましたがfixしません。
そこで、そういえば、nvidia-smiコマンドがwsl2では
/usr/lib/wsl/lib/nvidia-smi
という変なことろにあったのを思い出し、ここをlsで見てみると、ありました!libcuda.soが!
そこで、/usr/local/cuda/lib64 下に、/usr/lib/wsl/lib/libcuda.so をシンボリックリンクすると
めでたくbuildが完了しました。
sudo ln -s /usr/lib/wsl/lib/libcuda.so /usr/local/cuda/lib64/libcuda.so