microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
164.41k stars 29.33k forks source link

OpenCL - GPU power #230369

Closed Jopp-gh closed 1 month ago

Jopp-gh commented 1 month ago

Problem

Vscode doesn't take advantage on GPU computing power.

Feature request

VSCode should use the power of GPUs (Amd/Nvidia) to leverage additional computing power on desktop PC's.

Applications which drain a lot of resources should follow good practices and include the use of available resources (GPU too, not "only CPU") when necessary of course. OpenCL is a great framework. Please see reference at bottom page

Alternatives

There's no existing feature request asking for the implementation of OpenCL in Vscode

Reference

https://en.m.wikipedia.org/wiki/OpenCL

Tyriar commented 1 month ago

We improve performance on a case-by-case basis. For the majority of tasks, JS with a JIT is plenty fast, for specialized cases we consider workers, wasm or leveraging the GPU (eg. https://github.com/microsoft/vscode/issues/221145, https://code.visualstudio.com/docs/terminal/appearance#_gpu-acceleration).

Jopp-gh commented 1 month ago

Indeed, usually VsCode's performance isn't bad.

Just sometimes Vscode encounters issues, like in following cases:

So I thought (with exclusion of the latter - "plugins" which can be fixed easily by users themselves by deleting, updating or replacing such plugins), that Vscode could use more resources. But not for the simple purpose to add just "more resources" but to kick in and balance workload between GPU and CPU. So, my modern rig is bothered less when dealing with heavier processes.

Tyriar commented 1 month ago

For your first point, loading the editor we have done quite a bit of work optimizing this and we have employed a bunch of tricks, it's not so easy to get JS to run that fast when interacting heavily with the DOM. It's also not just a matter of throwing a GPU or threads at it and would require a lot of changes. We consider these ideas as they come up. There are also major downsides to leveraging the GPU as it's not available on all machines, so these optimizations wouldn't work for everyone and we still need a fallback, further complicating things.

The latter 2 you mention are actually related to extensions, so where they execute is up to the extensions which run in their own process.

Jopp-gh commented 4 weeks ago

Thanks for your concise and pleasing feedback