Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CUDA版で「推論に失敗しました」というエラーが出る #611

Closed
1 of 3 tasks
kuroneko6423 opened this issue Feb 3, 2023 · 12 comments
Closed
1 of 3 tasks
Labels

Comments

@kuroneko6423
Copy link

kuroneko6423 commented Feb 3, 2023

不具合の内容

起動しすぐにリクエストすると以下のエラーが出ました。

現象・ログ

WARNING: JPCommonLabel_insert_pause() in jpcommon_label.c: First mora should not be short pause.
INFO:     164.70.240.218:0 - "POST /audio_query?text='メッセージ非公開'&speaker=3 HTTP/1.1" 200 OK
2023-02-03T00:55:30.909944Z  WARN onnxruntime::onnxruntime: "CUDNN failure 1: CUDNN_STATUS_NOT_INITIALIZED ; GPU=0 ; hostname=voicevox ; expr=status_; "
2023-02-03T00:55:30.909983Z  WARN onnxruntime::onnxruntime: "Non-zero status code returned while running FusedConv node. Name:\'Conv_762\' Status Message: CUDNN failure 1: CUDNN_STATUS_NOT_INITIALIZED ; GPU=0 ; hostname=voicevox ; expr=status_; "
INFO:     164.70.240.218:0 - "POST /synthesis?speaker=3 HTTP/1.1" 500 Internal Server Error
ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi
  File "uvicorn/middleware/proxy_headers.py", line 75, in __call__
  File "fastapi/applications.py", line 208, in __call__
  File "starlette/applications.py", line 112, in __call__
  File "starlette/middleware/errors.py", line 181, in __call__
  File "starlette/middleware/errors.py", line 159, in __call__
  File "starlette/middleware/base.py", line 57, in __call__
  File "anyio/_backends/_asyncio.py", line 662, in __aexit__
  File "starlette/middleware/base.py", line 30, in coro
  File "starlette/middleware/cors.py", line 84, in __call__
  File "starlette/exceptions.py", line 82, in __call__
  File "starlette/exceptions.py", line 71, in __call__
  File "starlette/routing.py", line 656, in __call__
  File "starlette/routing.py", line 259, in handle
  File "starlette/routing.py", line 61, in app
  File "fastapi/routing.py", line 226, in app
  File "fastapi/routing.py", line 161, in run_endpoint_function
  File "starlette/concurrency.py", line 39, in run_in_threadpool
  File "anyio/to_thread.py", line 31, in run_sync
  File "anyio/_backends/_asyncio.py", line 937, in run_sync_in_worker_thread
  File "anyio/_backends/_asyncio.py", line 867, in run
  File "run.py", line 388, in synthesis
  File "voicevox_engine/synthesis_engine/synthesis_engine_base.py", line 242, in synthesis
  File "voicevox_engine/synthesis_engine/synthesis_engine.py", line 479, in _synthesis_impl
  File "voicevox_engine/synthesis_engine/core_wrapper.py", line 521, in decode_forward
Exception: 推論に失敗しました

再現手順

起動しすぐにリクエストすると以下のエラーが出ました。

期待動作

200で返され正常に読み上げの処理がされる。

VOICEVOXのバージョン

0.14.1

OSの種類/ディストリ/バージョン

  • Windows
  • macOS
  • Linux

OS: Ubuntu Server 22.04.1 LTS
GPU: RTX3060
RAM: 8GB

@0kq-github
Copy link

Windows環境でも同様の現象が起きたので報告させていただきます。

ログ

ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "uvicorn\protocols\http\h11_impl.py", line 373, in run_asgi
  File "uvicorn\middleware\proxy_headers.py", line 75, in __call__
  File "fastapi\applications.py", line 208, in __call__
  File "starlette\applications.py", line 112, in __call__
  File "starlette\middleware\errors.py", line 181, in __call__
  File "starlette\middleware\errors.py", line 159, in __call__
  File "starlette\middleware\base.py", line 57, in __call__
  File "anyio\_backends\_asyncio.py", line 662, in __aexit__
  File "starlette\middleware\base.py", line 30, in coro
  File "starlette\middleware\cors.py", line 84, in __call__
  File "starlette\exceptions.py", line 82, in __call__
  File "starlette\exceptions.py", line 71, in __call__
  File "starlette\routing.py", line 656, in __call__
  File "starlette\routing.py", line 259, in handle
  File "starlette\routing.py", line 61, in app
  File "fastapi\routing.py", line 226, in app
  File "fastapi\routing.py", line 161, in run_endpoint_function
  File "starlette\concurrency.py", line 39, in run_in_threadpool
  File "anyio\to_thread.py", line 31, in run_sync
  File "anyio\_backends\_asyncio.py", line 937, in run_sync_in_worker_thread
  File "anyio\_backends\_asyncio.py", line 867, in run
  File "run.py", line 388, in synthesis
  File "voicevox_engine\synthesis_engine\synthesis_engine_base.py", line 242, in synthesis
  File "voicevox_engine\synthesis_engine\synthesis_engine.py", line 479, in _synthesis_impl
  File "voicevox_engine\synthesis_engine\core_wrapper.py", line 521, in decode_forward
Exception: 推論に失敗しました

OS: Windows10 Pro
GPU: Tesla P40
RAM: 32GB

@Hiroshiba
Copy link
Member

@kuroneko6423 @0kq-github
起動後、どれくらい待つとエラーが発生しない感じでしょうか 👀

(待たないといけない仕様にし、それをREADMEや起動メッセージで案内するのが良いのかなと思っています。)

@Hiroshiba Hiroshiba changed the title 推論に失敗しました 起動しすぐにリクエストすると「推論に失敗しました」というエラーが出る Feb 3, 2023
@0kq-github
Copy link

0kq-github commented Feb 3, 2023

私の環境で10分から1時間ほど時間を置いてみましたが同じエラーが出てしまします。

@qryxip
Copy link
Member

qryxip commented Feb 3, 2023

私のLinux環境でも同様ですね。というより今に至るまで0.14 CUDA版でのsynthesisに一度も成功していません。
「おま環」でなければLinux CUDA版が完全に壊れている可能性を考えつつも、調査はしていませんでした。

ちなみにですがonnxruntime::onnxruntime WARNはORT本体の"ERROR"にあたると思います。 (VOICEVOX/onnxruntime-rs#16)

(追記) 私の環境:

uname -srvmpio
Linux 5.15.90-1-lts #1 SMP Tue, 24 Jan 2023 12:46:03 +0000 x86_64 unknown unknown GNU/Linuxlsb_release -a
LSB Version:    n/a
Distributor ID: Arch
Description:    Arch Linux
Release:        rolling
Codename:       n/anvidia-smi -L
GPU 0: NVIDIA GeForce RTX 3070 Laptop GPU (UUID: GPU-5876832d-66f9-86dd-44b2-24a4492aafe0)

@kuroneko6423
Copy link
Author

私の環境で10分から1時間ほど時間を置いてみましたが同じエラーが出てしまします。

同じくです

@okaits
Copy link

okaits commented Feb 3, 2023

同じくです
~/.config/voicevoxを削除して設定し直したり、再インストールも試しましたが失敗しました。


環境:

  • Ubuntu 22.10 amd64
  • NVIDIA Driver 525.78.01
  • NVIDIA CUDA Toolkit 12.0
  • Linux 6.2.0-rc1

@Hiroshiba Hiroshiba changed the title 起動しすぐにリクエストすると「推論に失敗しました」というエラーが出る CUDA版で「推論に失敗しました」というエラーが出る Feb 3, 2023
@Hiroshiba
Copy link
Member

Hiroshiba commented Feb 4, 2023

詳細なご報告ありがとうございます!!

正直なところ、原因は全く思い至っていません・・・。
@okaits さんは特に不思議で、nvidia-docker環境であれば動いたという報告も頂いています・・・。

原因を探究したいのでよければご協力お願いします 🙇‍♂️


@kuroneko6423 さんはwindows環境とのことで、CUDA版onnxruntimeが想定するバージョンとcudnnのバージョンが一致していないというのが原因かもしれません。
その場合は、cudnnのバージョン8.5.0をダウンロードして頂き、onnxruntime.dllなどのdllファイルをrun.exeがあるディレクトリにコピー(既存の場合は上書き)すると解決するかもしれません・・・ 🙇‍♂️


現在バージョン0.14.2をビルド中です。これはCPUデバイス依存の最適化を施していたのを修正したものになり、もしかしたらCUDA版での不具合に関係があるかもしれません。
こちらにリリースされるので、お手数ですがまたお試し頂けると助かります 🙇‍♂️
https://github.com/VOICEVOX/voicevox_engine/releases/tag/0.14.2

@kuroneko6423
Copy link
Author

自分Linuxです()

@Hiroshiba
Copy link
Member

あ!!本当ですね。。すみません、勝手に勘違いしました。。

@0kq-github
Copy link

0.14.2で試したところWindows環境で問題なく動作しました

@kuroneko6423
Copy link
Author

Linux(Ubuntu)でも無事動作いたしました!

@Hiroshiba
Copy link
Member

おーーーー!!!!なるほどです、ご報告助かります!!

ではたぶん大丈夫になったということでいったんcloseしたいと思います。
また問題が起こったり、 @okaits さんの環境とかでうまくいかなかったりした場合はコメント頂けると助かります!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants