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

WebGPUに対応させる #491

Open
tuna2134 opened this issue May 15, 2023 · 11 comments
Open

WebGPUに対応させる #491

tuna2134 opened this issue May 15, 2023 · 11 comments

Comments

@tuna2134
Copy link

内容

Voicevoxをブラウザ上で使うために、webGPUを使えるようにする

Pros 良くなる点

ブラウザでvoicevoxが使える

Cons 悪くなる点

実現方法

@Hiroshiba
Copy link
Member

onnxruntimeが対応しているかどうかが重要な気がします。
@tuna2134 今の所のonnxruntime×webGPUの情報をまとめて、issueに追記しちゃうのはどうでしょう? 👀

@tuna2134
Copy link
Author

microsoft/onnxruntime#11695
microsoft/onnxruntime#15796
これらのissue見ると開発中っぽいですね!

@tuna2134
Copy link
Author

@tuna2134
Copy link
Author

microsoft/onnxruntime#14579
webの方は対応済みですね

@fs-eire
Copy link

fs-eire commented May 15, 2023

Please give a try and feel free to comments in microsoft/onnxruntime#15796 if you get into any issue. Thanks!

@hyranno
Copy link

hyranno commented Nov 13, 2023

WebGPUはブラウザ専用規格というわけではなく、ネイティブでも動かせるバックエンド(wgpu)が開発されています。
なので、ブラウザやMacを含む全環境のGPU実装をWebGPU版で統一できたりする可能性も見れないでしょうか。
先程出たwonnxはwgpuを使ってるみたいですね。

@tuna2134
Copy link
Author

そうなんですね、、、

@hyranno
Copy link

hyranno commented Nov 14, 2023

ブラウザで動作させるならWebAssemblyにコンパイルすることになりそうです。(https://developer.mozilla.org/ja/docs/WebAssembly/Rust_to_Wasm)

  1. CPU版をWebAssemblyにコンパイルして、ブラウザで動くようにする
  2. WebGPU featureをオンにできるようにする

にタスクを分解した方が個々のハードルが下がりそうに思いますが、どうでしょう。

onnxruntimeのブラウザ対応ですが、ちょっと調べてみた感じだと、WebAssemblyにビルドするとき

すればよさそうな?

また、voicevox_coreのWebAssemblyを使うために

を含む voicevox_core_javascript_api クレートもあると使い易そうです。
npmパッケージとして公開できるとなお良しでしょうか。

@Hiroshiba
Copy link
Member

たしかwasmは他のwasmをimportできないのですが、静的ライブラリにする形ならできるかもですね!!
onnxruntime-webのドキュメントのFAQに.aの作り方案内が書かれてるのは知りませんでした。
難度がわからないですね・・・。難しそうな気がしないでもないですが・・・。

@sevenc-nanashi
Copy link
Member

#675 でonnxruntimeの依存が割と切り離せる(はず)のでwasm-cpu版のビルドはかなり現実的になってきてると思います。
自分が前試した時の記憶ですが、

  • openjtalk-rsはwasmビルドできる
  • onnxruntime-rsのbuild.rsが落ちる(ダウンロード周り)
  • async-zipがtokioのfsに依存してるのでそこで死ぬ

はずです。それさえなんとかできればwasm-cpuビルドはなんとかできそうな気がします。

@sevenc-nanashi
Copy link
Member

そういえば:wasmビルドだけは出来ました。現時点ではWebGPUは無理そうでした。
Hiroshiba/vv_core_inference#5 あたりで色々変わってきそう?

https://github.com/sevenc-nanashi/voicevox_core/tree/add/wasm-build/example/wasm

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

No branches or pull requests

5 participants