Could not locate cudnn_ops_infer64_8.dll. Please make sure it is in your library path!のエラー対応の話

Could not locate cudnn_ops_infer64_8.dll. Please make sure it is in your library path!のエラー対応の話

Whisperを使い、音声の文字起こしを行うためにセットアップしていざ実行。
しかし、以下のエラーが発生しました。

Could not locate cudnn_ops_infer64_8.dll. Please make sure it is in your library path!

CUDA Toolkitは入れたはずなのに、なぜかエラーが出る。という状態でした。
Windows上に構築したDockerでは正常に稼働したのですが、Windows上ではNGでした。

cudnn_ops_infer64_8.dllは情報によるとtorchのインストール時に自動で入るとのこと。
venvで構築したPython環境では、以下に入るはずです。
venv\Lib\site-packages\torch\lib

しかし存在しません。
そんな時は、以下を試してみてください。
僕の環境では解決しました。

目次

対処法

cudnn_ops_infer64_8.dllを、https://developer.nvidia.com/cudnn-downloadsからZipアーカイブでダウンロードし、展開したファイルをvenv\Lib\site-packages\torch\libに配置してください。

cuDNNのダウンロードページから、「Tarball and Zip Archive Deliverables」へ進みます。

cudnnを開きます。

windows-X86_64を開きます。

cudnnのアーカイブが大量に表示されます。

ご自身のPCに使用できるバージョンのアーカイブをダウンロードしてください。

ファイルを解凍すると、「cudnn-windows-x86_64-8.9.7.29_cuda12-archive\bin」に以下のDLLが7ファイルあるかと思います。
この7ファイルをvenv\Lib\site-packages\torch\libにコピーしてください。
cudnn_ops_train64_8.dll
cudnn_ops_infer64_8.dll
cudnn_cnn_train64_8.dll
cudnn_cnn_infer64_8.dll
cudnn_adv_train64_8.dll
cudnn_adv_infer64_8.dll
cudnn64_8.dll

コピー後、再度処理を実行して、「Could not locate cudnn_ops_infer64_8.dll. Please make sure it is in your library path!」のエラーが出なければ無事認識されています。