AMD GPU Debugger
Posted by ibobev 1 day ago
Comments
Comment by mitchellh 1 day ago
I'm not like a AAA game developer or anything so I don't know how it holds up in intense 3D environments, but for my use cases it's been absolutely amazing. To the point where I recommend people who are dabbling in GPU work grab a Mac (Apple Silicon often required) since it's such a better learning and experimentation environment.
I'm sure it's linked somewhere there but in addition to traditionally debugging, you can actually emit formatted log strings from your shaders and they show up interleaved with your app logs. Absolutely bonkers.
The app I develop is GPU-powered on both Metal and OpenGL systems and I haven't been able to find anything that comes near the quality of Metal's tooling in the OpenGL world. A lot of stuff people claim is equivalent but for someone who has actively used both, I strongly feel it doesn't hold a candle to what Apple has done.
Comment by mattbee 1 day ago
But yes, when you're stumbling around a black screen, tooling is everything. Porting bits of shader code between syntaxes is the easy bit.
Can you get better tooling on Windows if you stick to DirectX rather than OpenGL?
Comment by mitchellh 1 day ago
My app doesn't currently support Windows. My plane was to use the full DirectX suite when I get there and go straight to D3D and friends. I lack experience at all on Windows so I'd love if someone who knows both macOS and Windows could compare GPU debugging!
Comment by speps 1 day ago
Comment by pjmlp 1 day ago
Comment by pjmlp 1 day ago
https://devblogs.microsoft.com/pix/
This is yet another problem with Khronos APIs, expecting each vendor comes up with a debugger, some do, some don't.
At least nowadays there is RenderDoc.
On the Web after a decade, it is still pixel debugging, or trying to reproduce the bug on a native APIs, because why bother with such devtools.
Comment by slightlygrilled 23 hours ago
Which offers the basics, but at least works across devices, you can also trigger the traces from code and save the output, then load in the extension. Very useful for debugging mobile.
You can just about run chrome through Nvidias Nsight (of course you're not debugging webgl, but the what ever its translated to on the platform), although I recently tired again and it seems to fail...
these where the command line args i got nsight to pass chrome to make it work
" --disable-gpu-sandbox --disable-gpu-watchdog --enable-dawn-features=emit_hlsl_debug_symbols,disable_symbol_renaming --no-sandbox --disable-direct-composition --use-angle=vulkan <URL> "
but yeah really really wish the tooling was better, especially on performance tracing, currently it's just disable and enable things and guess...
Comment by pjmlp 23 hours ago
Running the whole browser rendering stack is a masochist exercise, I rather re-code the algorithm in native code, or go back into pixel debugging.
I would vouch the state of bad tooling, and how browsers blacklist users systems, is a big reason studios rather try out streaming instead of rendering on the browser.
Comment by slightlygrilled 22 hours ago
My favourite though is safari, graphics driver crashes all the time, the dev tools normally crash as well, so you have zero idea what is happening.
And I've found when the graphics crash the whole browsers graphic state become unreliable until you force close safari and reopen.
Comment by billti 1 day ago
I am writing compute shaders though, where one command buffer can run for seconds repeatedly processing over a 1GB buffer, and it seems the tools are heavily geared towards graphics work where the workload per frame is much lighter. (Will all the AI focus, hopefully they'll start addressing this use-case more).
Comment by mitchellh 1 day ago
This has been my experience too. It isn't often enough to diminish its value for me since I have basically no comparable options on other platforms, but it definitely has some sharp (crashy!) edges.
Comment by billti 1 day ago
The project I'm mostly working on uses the wgpu crate, https://github.com/gfx-rs/wgpu, which may be of interest if writing cross-platform GPU code. (Though obviously if using Rust, not Zig). With it my project easily runs on Windows (via DX12), Linux (via Vulkan), macOS (via Metal), and directly on the web via Wasm/WebGPU. It is a "lowest common denominator", but good enough for most use-cases.
That said, ever with simple shaders I had to implement some workarounds for Xcode issues (e.g. https://github.com/gfx-rs/wgpu/issues/8111). But still vastly preferable to other debugging approaches and has been indispensable in tracking down a few bugs.
Comment by nelup20 1 day ago
Have you tried RenderDoc for the OpenGL side? Afaik that's the equivalent of Xcode's debugger for Vulkan/OpenGL.
Comment by 59nadir 22 hours ago
I don't know, buying a ridiculously overpriced computer with the least relevant OS on it just to debug graphics code written in an API not usable anywhere else doesn't seem like a good idea to me.
For anyone who seriously does want to get into this stuff, just go with Windows (or Linux if you're tired of what Microsoft is turning Windows into, you can still write Win32 applications and just use VK for your rendering, or even DX12 but have it be translated, but then you have to debug VK code while using DX12), learn DX12 or Vulkan, use RenderDoc to help you out. It's not nearly as difficult as people make it seem.
If you've got time you can learn OpenGL (4.6) with DSA to get a bit of perspective why people might feel the lower-level APIs are tedious, but if you just want to get into graphics programming just learn DX12/VK and move on. It's a lower-level endeavor and that'll help you out in the long run anyway since you've got more control, better validation, and the drivers have less of a say in how things happen (trust me, you don't want the driver vendors to decide how things happen, especially Intel).
P.S.: I like Metal as an API; I think it's the closest any modern API got to OpenGL while still being acceptable in other ways (I think it has pretty meh API validation, though). The problem is really that they never exported the API so it's useless on the actual relevant platforms for games and real interactive graphics experiences.
Comment by hoppp 1 day ago
Its probably awesome to use Metal and everything but the vendor lock-in sounds like an issue.
Comment by mitchellh 1 day ago
Comment by hoppp 1 day ago
Comment by Archit3ch 1 day ago
Is anyone here doing Metal compute shaders on iPad? Any tips?
Comment by shetaye 1 day ago
Comment by danjl 1 day ago
Comment by ahartmetz 21 hours ago
Comment by justsid 17 hours ago
Comment by snarfy 1 day ago
Comment by c2h5oh 1 day ago
You also get UMR from AMD https://gitlab.freedesktop.org/tomstdenis/umr
There is also a bunch of other tools provided: https://gpuopen.com/radeon-gpu-detective/ https://gpuopen.com/news/introducing-radeon-developer-tool-s...
Comment by slavik81 1 day ago
It's a little out of date now, but Lance Six had a presentation about the state of AMD GPU debugging in upstream gdb at FOSDEM 2024. https://archive.fosdem.org/2024/events/attachments/fosdem-20...
Comment by core-explorer 21 hours ago
Comment by thegeeko 1 day ago
Comment by almostgotcaught 1 day ago
It's like the 3rd sentence in the blog post.......
Comment by djmips 1 day ago
Comment by almostgotcaught 1 day ago
Comment by fc417fc802 1 day ago
I can certainly understand OP's confusion. Navigating parts of the GPU ecosystem that are new to you can be incredibly confusing.
Comment by thegeeko 1 day ago
Comment by omneity 1 day ago
Comment by pjmlp 1 day ago
This is exactly yet another reason why researchers prefer CUDA, to the alternatives.
Comment by whalesalad 1 day ago
Comment by jjmarr 1 day ago
Performance-wise, the 7900 xtx is still the most cost effective way of getting 24 gigabytes that isn't a sketchy VRAM mod. And VRAM is the main performance barrier since any LLM is going to barely fit in memory.
Highly suggest checking out TheRock. There's been a big rearchitecting of ROCm to improve the UX/quality.
Comment by androiddrew 1 day ago
Comment by bialpio 1 day ago
Comment by Gracana 1 day ago
Comment by qskousen 1 day ago
Comment by Joona 1 day ago
Comment by FuriouslyAdrift 1 day ago
AMD doesn't have a unified architecture across GPU and compute like nVidia.
AMD compute cards are sold under the Insinct line and are vastly more powerfull than their GPUs.
Supposedly, they are moving back to a unified architecture in the next generation of GPU cards.
Comment by veddan 1 day ago
Comment by universa1 1 day ago