On Linux the ROCm artifact is selected from gfx_target_version in the KFD topology. Windows has no KFD, so rocm_arch() falls back to matching GPU marketing names reported by EnumDisplayDevicesW against a fixed table (ROCm_Runtime/.pkg/platform_augmentation.jl:43):
const device_name_archs = [
["8050s", "8060s", "device 1586"] => "gfx1151",
["880m", "890m"] => "gfx1150",
["r9700", "9060", "9070"] => "gfx120X",
["7700", "7800", "7900", "v710"] => "gfx110X",
["6800", "6700", "6600", "6500"] => "gfx103X",
]
The adapter string must also contain radeon or amd, otherwise the entry is skipped.
This path is not yet tested.
MWE
On Windows, with any AMD GPU:
using AMDGPU
AMDGPU.versioninfo()
RR = AMDGPU.ROCm_Runtime
@show RR.windows_video_device_names()
@show RR.rocm_arch()
@show RR.is_available()
@show AMDGPU.functional()
Please report your GPU model and the output.
Expected: windows_video_device_names() lists your adapter, and rocm_arch() maps it to the matching gfx family (for example an RX 6700 XT should give gfx103X). An empty rocm_arch() or is_available() == false means the adapter string did not match the table and no artifact was resolved.
As a workaround in that case, the architecture can be set explicitly:
AMDGPU.set_rocm_version!(arch="gfx1031") # substitute your own target
Reports of the exact adapter string are useful even when detection works.
On Linux the ROCm artifact is selected from
gfx_target_versionin the KFD topology. Windows has no KFD, sorocm_arch()falls back to matching GPU marketing names reported byEnumDisplayDevicesWagainst a fixed table (ROCm_Runtime/.pkg/platform_augmentation.jl:43):The adapter string must also contain
radeonoramd, otherwise the entry is skipped.This path is not yet tested.
MWE
On Windows, with any AMD GPU:
Please report your GPU model and the output.
Expected:
windows_video_device_names()lists your adapter, androcm_arch()maps it to the matchinggfxfamily (for example an RX 6700 XT should givegfx103X). An emptyrocm_arch()oris_available() == falsemeans the adapter string did not match the table and no artifact was resolved.As a workaround in that case, the architecture can be set explicitly:
Reports of the exact adapter string are useful even when detection works.