Re: [w3ctag/design-reviews] WebGPU and WGSL (#626)

> I have some follow-up comments and questions on this which I will post before our VF2F is over, but overall we are happy with what is being proposed.

Thank you, looking forward to your comments!

> what is the mitigation in place to make sure this doesn't negatively affect other GPU intensive apps, like the browser itself or the host OS?

Preemption of GPU workloads is not a ubiquitous feature and even GPU that support preemption have it for different levels of granularity. So it's impossible to completely prevent denial of service of the GPU. However OSes have mechanisms to reset the GPU if it is unresponsive for a while, like Windows' [TDR](https://docs.microsoft.com/en-us/windows-hardware/drivers/display/timeout-detection-and-recovery) mechanism. From applications point of view they "lose" the GPU. While a rare event, it is not exceptional and other applications should handle it correctly (external GPUs can be unplugged for example).

Browsers can also detect when the GPU is occupied for too long. Chromium has a "watchdog" mechanism that triggers when GPU execution takes too long, and will restart the GPU process in that case as an attempt to free resources. It will also give a "strike" to the responsible origin. After some strikes the origin can be blocklisted from using the GPU.

Note that denial of service of the GPU is not something unique to WebGPU. It is trivial to do so with a `while(true){}` in a WebGL shader and also possible by creating massive GPU workloads with `<canvas>` or the DOM (with lots of overdraw of filtered layers for example).

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3ctag/design-reviews/issues/626#issuecomment-987914086

Received on Tuesday, 7 December 2021 13:13:44 UTC