Allow querying LUID from device for better interoperability
Intel's open image denoiser (oidn) has a layer to better interface between HIP, CUDA and SYCL. This layer has a feature to query a device's LUID which is in turn used to create a device for interoperability between for example DirectX12 (since that only has the ability to get the adapter's LUID). Unfortunately due to HIP's limitation for querying a LUID (according to intel: https://github.com/OpenImageDenoise/oidn/issues/163) this doesn't seem possible right now. This would make implementing OIDN "hardware support" (gpu acceleration) in our engine to be quite bothersome (if it's even possible). Is it possible to get this feature natively in HIP?
I have check the hipDeviceProp_t, it seems that only pci bus can be used to locate a physical video card. Here is a function to get luid from it:
https://github.com/scarsty/mlcc/blob/master/vramusage.h
@scarsty Thank you for your help, I'll forward this to oidn as well so it could be used if they desire.
@Nielsbishere : Did you try hipDeviceGetUuid?
@Nielsbishere : Did you try hipDeviceGetUuid?
I have tried it. The result is "XX", and I thought it is of no use.
@Nielsbishere Has your issue been resolved? If so, please close ticket. Thanks!
Adding @atafra here to see if there's any change here.
ROCm 6+ supports LUID query. Windows HIP SDK 6.1 just got released. OIDN now needs to enable LUID support on HIP devices: https://github.com/RenderKit/oidn/issues/230.