{"record":{"id":"6cfc5c433f47826c","repo":"LykosAI/StabilityMatrix","slug":"windows-rocm-installation-is-not-supported-for-the-current","errorCode":null,"errorMessage":"Windows ROCm installation is not supported for the current machine.","messagePattern":"Windows ROCm installation is not supported for the current machine\\.","errorType":"exception","errorClass":"InvalidOperationException","httpStatus":null,"severity":"error","filePath":"StabilityMatrix.Core/Services/Rocm/RocmPackageHelper.cs","lineNumber":238,"sourceCode":"        return profile.InstallConfig with { SkipTorchInstall = true };\n    }\n\n    /// <summary>\n    /// Installs the ROCm torch wheel set from the multi-arch index and verifies that the resulting torch installation reports usable ROCm metadata.\n    /// </summary>\n    public async Task InstallWindowsNativeTorchAsync(\n        IPyVenvRunner venvRunner,\n        InstalledPackage installedPackage,\n        RocmPackageProfile profile,\n        IProgress<ProgressReport>? progress = null,\n        Action<ProcessOutput>? onConsoleOutput = null,\n        CancellationToken cancellationToken = default\n    )\n    {\n        var state = machineState.Value;\n        if (!state.IsCompatible)\n        {\n            throw new InvalidOperationException(\n                state.FailureReason ?? \"Windows ROCm installation is not supported for the current machine.\"\n            );\n        }\n\n        var multiArchDeviceExtra = state.MultiArchDeviceExtra;\n\n        if (string.IsNullOrWhiteSpace(multiArchDeviceExtra))\n        {\n            throw new InvalidOperationException(\n                $\"No Windows ROCm multi-arch device extra is available for '{state.RuntimeGfxArch ?? \"unknown\"}'.\"\n            );\n        }\n\n        progress?.Report(new ProgressReport(-1f, \"Installing ROCm torch...\", isIndeterminate: true));\n\n        var installConfig = profile.InstallConfig;\n        var multiArchPythonPackageIndexUrl = WindowsRocmSupport.GetMultiArchPythonPackageIndexUrl(\n            state.RuntimeGfxArch","sourceCodeStart":220,"sourceCodeEnd":256,"githubUrl":"https://github.com/LykosAI/StabilityMatrix/blob/af93d6ef57c01cd890d7e0ad0a9ea8c9fcda3002/StabilityMatrix.Core/Services/Rocm/RocmPackageHelper.cs#L220-L256","documentation":"InstallWindowsNativeTorchAsync first evaluates the machine state (RocmMachineState) for Windows ROCm compatibility. If state.IsCompatible is false, it throws InvalidOperationException using state.FailureReason when present, or the generic message that the current machine is not supported. This prevents installing ROCm torch on hardware/software that cannot run it.","triggerScenarios":"Calling InstallWindowsNativeTorchAsync on a machine whose GPU arch is not in the supported Windows ROCm list (e.g. unsupported gfx arch like gfx1030 on Windows, integrated GPUs, non-AMD GPU), or on a system failing the helper's compatibility checks.","commonSituations":"User with an older RDNA2 GPU (not supported by Windows ROCm wheels) tries the Windows ROCm install; running on a laptop with AMD iGPU only; NVIDIA card user selects the ROCm flow by mistake.","solutions":["Check state.FailureReason on the machine state to see the exact incompatibility before attempting install","Verify the GPU's gfx architecture is one supported by Windows ROCm torch builds (e.g. gfx110X-dgpu) and upgrade hardware if not","Use the alternative torch flow for unsupported hardware (e.g. ZLUDA or CPU/DirectML builds) that Stability Matrix offers","Update the app/helper in case newer GPU support was added to the compatibility table"],"exampleFix":"// before\nawait rocmHelper.InstallWindowsNativeTorchAsync(venvRunner, ...); // unsupported GPU\n// after\nvar state = await rocmHelper.GetMachineStateAsync();\nif (!state.IsCompatible)\n{\n    ui.ShowMessage($\"Windows ROCm not available: {state.FailureReason}\");\n    return;\n}\nawait rocmHelper.InstallWindowsNativeTorchAsync(venvRunner, ...);","handlingStrategy":"validation","validationCode":"var state = await rocmHelper.GetMachineStateAsync();\nif (!state.IsCompatible)\n{\n    ShowMessage($\"Windows ROCm unavailable: {state.FailureReason}\");\n    return;\n}","typeGuard":"bool CanInstallRocm(RocmMachineState s) => s.IsCompatible && !string.IsNullOrWhiteSpace(s.MultiArchDeviceExtra);","tryCatchPattern":"try { await rocmHelper.InstallWindowsNativeTorchAsync(venvRunner, ...); }\ncatch (InvalidOperationException ex) when (ex.Message.Contains(\"not supported\"))\n{\n    // offer ZLUDA/CPU fallback instead\n}","preventionTips":["Check machine compatibility state before showing/installing ROCm options in UI","Detect unsupported GPUs early and route to alternate packages (ZLUDA, CPU)","Keep the app updated for newly supported GPU architectures"],"tags":["rocm","hardware-compatibility","windows","gpu"],"backgroundTag":"unsupported-platform","analyzedSha":"af93d6ef57c01cd890d7e0ad0a9ea8c9fcda3002","analyzedAt":"2026-09-12T19:02:43.389Z","contentChangedAt":"2026-09-12T19:02:43.389Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}