こんにちは。最近頭痛に対抗して運動をしているRockinWoolです。
会社から休職の手当と書類が送られてくるのですが、よりにもよって体調を崩す原因となった上司から送られてくるので、毎回憂鬱になります。個人的にはお金をいただけても全然嬉しくないというか、理不尽な目に合わなければ頭痛とお付き合いする必要もなかったしお金ももっと入っていただろうので、単純に互いに損しているだけなんですよね。
さて、今日はちょっと前に上げていたTensorflow-GPUのセットアップが固有のGPUでは失敗する現象を発見したので、これについて解決策を補足させていただきます。
Contents
GTX-3080Tiを積んだPCでTensorflow-gpuがセットアップできない
まずはバグの概要から。上記GPUを積んだ状態でTensorflow-gpuをインストールすると次のような状況に遭遇します。なおlibdevice not found at ./libdevice.10.bc
の問題は既に解決済みであるとします。上記エラーの解決方法は前回記事を参考にしてください。
- tensorflow-gpuのインストールには成功している
- fit関数以外のすべての関数(GPUを使用するコマンドも含む)が正常に動作する
- fit関数のみ成功しない
エラーメッセージは下記の通りです。
Learning-----2023-07-25 11:35:36.538992: F tensorflow/compiler/xla/service/gpu/nvptx_compiler.cc:454] ptxas returned an error during compilation of ptx to sass: 'INTERNAL: Failed to launch ptxas' If the error message indicates that a file could not be written, please verify that sufficient filesystem space is provided.
正: ptxasが足りていない, 誤: ptxasが起動できない
さて、エラーメッセージが出たらまずは同様の事例が無いかWebで確認!(クソザコ思考)。
似たようなエラーとしてはここのIssueなんかがありました。解決法として、ptxasへのPATHを追加することが挙げられていたので早速挑戦してみると・・・、あれ?find / -name "*ptxas*"
で何もヒットしないぞ?しかもエラーメッセージに書いてあるnvptx_compilerすらヒットしない。これは、つまりパッケージが足りていないということでは?
condaでcuda-nvvcをインストールする必要があった
さて、パッケージが不足していることは分かったのですが、それじゃあ一体何を入れれば良いのかということになりました。ということで、心当たりのあるパッケージを一通り入れたり外したりした結果、最終的にはここに書いてある下記のコードを実行する必要があったという結論になりました。
conda install -c nvidia cuda-nvcc
このためだけに、Ubuntuの再インストールとかいろいろ大規模に調査したのですが、結果としてはtensorflow-gpuのインストール時にcuda-nvccが自動的に入らないことが問題だったようです。こんなの他にも同じような症状の人が発生しそうですね・・。
まとめ
とりあえずINTERNAL: Failed to launch ptxasのエラーで悩んでいる方はconda install -c nvidia cuda-nvccでnvccをインストールすることを試してみてください。今の所固有GPUでのエラーっぽいのですが、より多くの人がこの方法で救われると嬉しいですね。解決方法発見までのプロセスについてもツッコミがあれば改善したいと思います。ここまで読んでくれてありがとうございました。