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

async_zipをv0.0.16に上げる #747

Merged
merged 2 commits into from
Feb 19, 2024

Conversation

qryxip
Copy link
Member

@qryxip qryxip commented Feb 12, 2024

内容

#746 の準備として、async_zipをアップデートします。

関連 Issue

その他

@qryxip
Copy link
Member Author

qryxip commented Feb 12, 2024

draftなのは、デバッグビルドとリリースビルドの両方でパフォーマンスが死ぬほど悪化しているからです。pytestが1秒から40秒超になった…

@qryxip
Copy link
Member Author

qryxip commented Feb 14, 2024

async_zip v0.0.16

`manifest.json`: 118.411µs
`metas.json`: 112.239µs
`decode.onnx`: 46.452658156s
`predict_intonation.onnx`: 91.230371ms
`predict_duration.onnx`: 119.468319ms

async_zip v0.0.11

[INFO] voicevox_core.voice_model.tokio: `manifest.json`: 88.805µs
[INFO] voicevox_core.voice_model.tokio: `metas.json`: 111.588µs
[INFO] voicevox_core.voice_model.tokio: `predict_intonation.onnx`: 6.197363ms
[INFO] voicevox_core.voice_model.tokio: `predict_duration.onnx`: 6.660366ms
[INFO] voicevox_core.voice_model.tokio: `decode.onnx`: 354.287178ms

@qryxip
Copy link
Member Author

qryxip commented Feb 14, 2024

単純にdeflateがめちゃくちゃ遅くなっているっぽい。tokio_util::compat越しにfutures-liteで動くようになったのが駄目としか思えない...

@qryxip
Copy link
Member Author

qryxip commented Feb 14, 2024

やっぱそうだ。zipファイルを全部メモリに載せてasync_zip::base::read::mem::ZipFileReaderを使うとdecode.onnxも数百msでちゃんと読める…

@qryxip qryxip marked this pull request as ready for review February 14, 2024 17:58
@qryxip
Copy link
Member Author

qryxip commented Feb 14, 2024

ということでasync_zipのファイルシステムのサポートは使い物にならなくなってしまったことがわかりました。一旦挙動の変更を入れます。VVMのZIPを全部メモリに載せ、そこから個々のファイルを抽出するようにします。

ただmanifestとmetasを読むのにも全部読むことになりますが、他の回避策が思い付きません。

(追記) manifestとmetasを読むときだけtokio_util::compat + seek版を使うとか...?

@qryxip
Copy link
Member Author

qryxip commented Feb 14, 2024

あ、Javaが壊れた?
(Javaの依存はロックファイルで固定してなかったはず)

(追記) #748

Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

そういえばですが、今の0.15あたりのコアはinitializeしただけで1GBほどメモリ消費してることがわかりました。
compatible_engines見た感じ、全部オンメモリにしてるためっぽかったです。
これも同じようなことが起こりそうですが、まあメモリに乗せた後解放してあげれば良いのかなと思いました!
(できるのか精査できてないです)

@Hiroshiba Hiroshiba merged commit f9d956d into VOICEVOX:main Feb 19, 2024
36 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants