Added CUDA 12.8 support for RTX 5000 series #1504
Open
+129
−32
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
voice-changerにお世話になっております。mallocfree009です。
RTX5000シリーズで動作ができなかったので、いくつか必要な対応をいれてある程度うごくところまでもっていってみました。
ご多忙の中恐縮ですが、ご都合のよいときにプルリクの採用をご検討いただけるかご検討いただければ幸いです。
実装・動作確認環境
作成方法: py -3.10 -m venv venv
Python: 3.10.11
pip: 23.0.1
実装後確認内容
変更後動作確認した内容は以下です。
RTX5000シリーズはCUDA12.8以降でないと動作せずtorchを2.7.0+cu128以降にアップする必要があり、torchのアップデートとそれに関連するパッケージについても調整を入れる必要がありました。
プルリクを採用するにあたっては、以下のようなプロジェクトの方針を鑑みて確認・調整すべき項目があります
fairseqの更新が止まっておりtorch2.6.0以降には対応できてない問題への対処の調整
fairseqは以前の依存関係ではrequirements.txtに指定されていませんでしたが、別途明記しないと利用できなくなりました。
そのため明記して追加するようにしましたがpipのデフォルトのリポジトリからインストールされるfairseqの最新バージョンでは下記エラーがでて正常に動作させることができません。
PyTorch 2.6からの変更の影響で、これまでどおりの挙動をさせるにはfairseqパッケージ内のtorch.load()に引数weights_only=Falseを明示的に指定するよう修正する必要がありました。
このエラーについてはruntime\lib\site-packages\fairseq\checkpoint_utils.py(316)付近を以下のように書き換えると問題なくなりました。
ただfairseqは開発が停止しておりフルスクラッチで作り直したfairseq2が開発・推奨されています。
fairseq2にすると影響が大きいと思われるので一旦fairseqを私のGitHubのアカウントでフォークして、そこのtorch.load()について
修正を行い、そちらを参照してインストールするようにしています。
この状態で問題なく動作はしているようにみえます。
ただこのままだと例えば私がユーザーに危険が及ぶような変更をgitリポジトリに加えた場合(そんなことをするつもりは全くありませんが・・・)に、ユーザーに悪い影響がでてしまうのでgithubのリポジトリをw-okadaさんのGitHubアカウントでフォークして利用するように変更して、安全な状態を確保するほうがプロジェクトの運営上は安全かと思います。
プルリクの採用をご検討の場合は、どのような方針でfairseqを扱うかご決定いただければと思います。
requirements.txtの運用方法の変更についてのご確認
requirements.txtのバージョン更新のための整理を行うことが今回の対応の主な作業となりましたが、torchがCPUのみの運用であるか、どのGPUか、CUDAバージョンは何かにより適切なものをインストールする必要がある観点から、分割するほうが良いかとおもい変更しています。
開発時の運用がかわるので合わせてドキュメントも調整してみました。
これはどういった運用が理想的か価値観の違いにより判断が変わるかと思います。
この運用ではなく、他の運用のほうがいいなどある場合がありますので適宜調整いただく必要あるかと思います。
ご多忙の中恐縮ですが、ご都合のよいときにご検討いただければ幸いです。