Spoofing GPU name
xCuri0 opened this issue · comments
Any possibility of getting support for doing this through an environment variable or something ?
I've tried using AMD HIP-RT with CUDA backend through ZLUDA because my Polaris GPU doesn't support HIP-RIT (it hits breakpoint on hiprtBuildGeometry
).
Using ZLUDA (after extracting nvrtc64_120_0.dll
and nvrtc-builtins64_124.dll
) I get nvrtc: error: unrecognized option -ffast-math found
because HIP-RT is detecting an AMD GPU and trying to use compilation arguments meant for it (from looking at the disassembly a bit). Spoofing the GPU as NVIDIA will likely solve this.
Btw ZLUDA works completely fine on Polaris GPUs even though I expected it not to, been using it for Blender
Was able to build a version spoofing the GPU name, unfortunately it doesn't work and just results in Orortc error: 'NVRTC_ERROR unknown' [ 801 ] on line 321 in 'C:\buildAgent\work\da3360a44b7d09ad\hiprt\impl\Compiler.cpp'.
Still leaving this open in case anyone else needs this functionality
HIP-RT has been open sourced, you can now do whatever you want with it and this sounds like a problem with HIP-RT.
Otherwise I don't plan an option to spood GPU name because:
- It's not useful (unless your application is truly broken). In CUDA there are much better and easier ways to get GPU information than trying to parse device name
- If we give users this power, we might wake up one day with Blender (or VRay or Geekbench or ...) performance reports filled with "Aperture Science GLaDOS Processing Unit 7900 XTX" and such
If you really need it and are comfortable with Rust you can change get_name in device.rs to report whatever name you like.