July 2nd, 2024

GPU profiling for WebGPU workloads on Windows with Chrome

Challenges of GPU profiling for WebGPU in Chrome on Windows are addressed. A workaround using a custom DLL enables GPU profiling with tools like AMD's Radeon GPU Profiler and Nvidia's Nsight, enhancing performance metrics for WebGPU applications.

Read original articleLink Icon
GPU profiling for WebGPU workloads on Windows with Chrome

This blog post discusses the challenges of GPU profiling for WebGPU workloads on Windows with Chrome. While traditional GPU profilers do not work out of the box with WebGPU in Chrome due to how the content is rendered on screen, a workaround involving a custom DLL has been developed. By placing this DLL in the Chrome folder and using specific command line arguments, users can enable GPU profiling with tools like AMD's Radeon GPU Profiler and Nvidia's Nsight. The post provides detailed instructions on how to set up the environment for profiling, including enabling debug markers and capturing frames with both AMD's RGP and Nvidia's Nsight. Despite being a hacky solution, this workaround offers a way to profile WebGPU workloads effectively on Windows with Chrome, enhancing the development and optimization process for graphics programming. The post concludes by emphasizing the importance of GPU profiling for improving performance metrics in WebGPU applications.

Related

20x Faster Background Removal in the Browser Using ONNX Runtime with WebGPU

20x Faster Background Removal in the Browser Using ONNX Runtime with WebGPU

Using ONNX Runtime with WebGPU and WebAssembly in browsers achieves 20x speedup for background removal, reducing server load, enhancing scalability, and improving data security. ONNX models run efficiently with WebGPU support, offering near real-time performance. Leveraging modern technology, IMG.LY aims to enhance design tools' accessibility and efficiency.

Eight million pixels and counting: improving texture atlas allocation in Firefox (2021)

Eight million pixels and counting: improving texture atlas allocation in Firefox (2021)

Improving texture atlas allocation in WebRender with the guillotiere crate reduces texture memory usage. The guillotine algorithm was replaced due to fragmentation issues, leading to a more efficient allocator. Visualizing the atlas in SVG aids debugging. Rust's simplicity and Cargo fuzz testing are praised for code development and robustness. Enhancements in draw call batching and texture upload aim to boost performance on low-end Intel GPUs by optimizing texture atlases.

Should you upgrade GPU or CPU for faster gaming? Many hardware combos tested

Should you upgrade GPU or CPU for faster gaming? Many hardware combos tested

Tom's Hardware study compares CPU and GPU upgrades for gaming. Pairing top GPUs with older CPUs can lead to 40% performance drop at 1080p. Balanced upgrades crucial for optimal performance across settings.

Show HN: Code to run Gemini (Nano) locally on desktop/Chrome

Show HN: Code to run Gemini (Nano) locally on desktop/Chrome

The GitHub guide explains running Google Nano on desktop with Chrome Canary. It includes setup steps, testing guidance, and a demo link for practical exploration. Find detailed instructions on the GitHub page.

AMD MI300x GPUs with GEMM tuning improves throughput and latency by up to 7.2x

AMD MI300x GPUs with GEMM tuning improves throughput and latency by up to 7.2x

Nscale explores AI model optimization through GEMM tuning, leveraging rocBLAS and hipBLASlt for AMD MI300x GPUs. Results show up to 7.2x throughput increase and reduced latency, benefiting large models and enhancing processing efficiency.

Link Icon 4 comments
By @ossobuco - 5 months
I've been using the webgpu inspector extension[0] and so far it's proving very useful.

There are some occasional bugs but the author is very responsive on github and quick to fix issues.

Couldn't get anything useful out of PIX on the other hand.

- [0]: https://github.com/brendan-duncan/webgpu_inspector

By @kvark - 5 months
Back when I worked on WebGPU in Firefox, GPU debugging was pretty straightforward. You’d use a setting that enables API traces of WebGPU, give it a path, and it would produce a trace. Then you’d replay it in a standalone application that is easily ran from NSight/RenderDoc/PIX/whatever. Moreover, you could replay it on a different platform with a different API! It was a breeze. I bet it still works.

http://kvark.github.io/wgpu/debug/test/ron/2020/07/18/wgpu-a...

By @pjmlp - 5 months
It is a sad state of affairs that after so much Web 3D push for the last 15 years, Khronos advocacy of how great it is and we should all be rushing out to use them, browser vendors keep ignoring the need of proper developer tooling for 3D applications.

The best we have is either SpectorJS (showing its age, WebGL only), trying to differentiate between app calls and browser calls in a native GPU debugger, or create an alternative, completly unrelated native version, to sanely use a GPU debugger.

By @ingen0s - 5 months
dll go brrrr