webgpu: move GPU access to external process #2448
Open
+1,054
−85
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.
Support having a separate process that talks to the GPU, and to which workerd can talk to using the dawn wire procotol. There are now two implementations of
DawnContainer
, one that relies on a remote connection via the wire protocol, and another that attempts to access the GPU directly via Dawn native, which is the default.To use the remote protocol workerd needs to be built with the enable_experimental_webgpu_remote flag and the
webgpuBackend
config needs to be set with the correct path for the unix socket on which the server is listening on.A server can be launched via the //src/workerd/server:voodoo module passing as a parameter the unix socket path where it will be listening on.