{"record":{"id":"c7b6462f9989819a","repo":"LykosAI/StabilityMatrix","slug":"nunchaku-is-not-supported-on-macos-or-gpus-with-compute","errorCode":null,"errorMessage":"Nunchaku is not supported on macOS or GPUs with compute capability < 7.5.","messagePattern":"Nunchaku is not supported on macOS or GPUs with compute capability < 7\\.5\\.","errorType":"exception","errorClass":"NotSupportedException","httpStatus":null,"severity":"error","filePath":"StabilityMatrix.Core/Models/PackageModification/InstallNunchakuStep.cs","lineNumber":23,"sourceCode":"using StabilityMatrix.Core.Models.Packages.Extensions;\nusing StabilityMatrix.Core.Models.Progress;\nusing StabilityMatrix.Core.Python;\n\nnamespace StabilityMatrix.Core.Models.PackageModification;\n\npublic class InstallNunchakuStep(IPyInstallationManager pyInstallationManager) : IPackageStep\n{\n    public required InstalledPackage InstalledPackage { get; init; }\n    public required DirectoryPath WorkingDirectory { get; init; }\n    public required GpuInfo? PreferredGpu { get; init; }\n    public required IPackageExtensionManager ComfyExtensionManager { get; init; }\n    public IReadOnlyDictionary<string, string>? EnvironmentVariables { get; init; }\n\n    public async Task ExecuteAsync(IProgress<ProgressReport>? progress = null)\n    {\n        if (Compat.IsMacOS || PreferredGpu?.ComputeCapabilityValue is null or < 7.5m)\n        {\n            throw new NotSupportedException(\n                \"Nunchaku is not supported on macOS or GPUs with compute capability < 7.5.\"\n            );\n        }\n\n        var venvDir = WorkingDirectory.JoinDir(\"venv\");\n        var pyVersion = PyVersion.Parse(InstalledPackage.PythonVersion);\n        if (pyVersion.StringValue == \"0.0.0\")\n        {\n            pyVersion = PyInstallationManager.Python_3_10_11;\n        }\n\n        var baseInstall = !string.IsNullOrWhiteSpace(InstalledPackage.PythonVersion)\n            ? new PyBaseInstall(\n                await pyInstallationManager.GetInstallationAsync(pyVersion).ConfigureAwait(false)\n            )\n            : PyBaseInstall.Default;\n\n        await using var venvRunner = baseInstall.CreateVenvRunner(","sourceCodeStart":5,"sourceCodeEnd":41,"githubUrl":"https://github.com/LykosAI/StabilityMatrix/blob/af93d6ef57c01cd890d7e0ad0a9ea8c9fcda3002/StabilityMatrix.Core/Models/PackageModification/InstallNunchakuStep.cs#L5-L41","documentation":"InstallNunchakuStep.ExecuteAsync throws NotSupportedException when installing Nunchaku on macOS or when the selected GPU's compute capability is null or below 7.5 (Turing). Nunchaku wheels only exist for CUDA GPUs with sm >= 7.5.","triggerScenarios":"Running the Nunchaku install step with Compat.IsMacOS true, or PreferredGpu unset (ComputeCapabilityValue null), or a pre-Turing GPU (e.g. GTX 10-series Pascal, compute 6.1).","commonSituations":"Apple Silicon users attempting Nunchaku install; users with older NVIDIA GPUs; PreferredGpu not detected so capability is null.","solutions":["Install on a Windows/Linux machine with an NVIDIA GPU of compute capability >= 7.5 (Turing or newer)","Ensure a GPU is detected so PreferredGpu.ComputeCapabilityValue is set","Skip the Nunchaku install step and run the package without it"],"exampleFix":"// before\nawait step.ExecuteAsync();\n// after\nif (!Compat.IsMacOS && gpu?.ComputeCapabilityValue is >= 7.5m) await step.ExecuteAsync(); else /* skip */","handlingStrategy":"type-guard","validationCode":"if (Compat.IsMacOS || gpu?.ComputeCapabilityValue is null or < 7.5m) skipNunchaku();","typeGuard":"bool CanInstallNunchaku(GpuInfo gpu) => !Compat.IsMacOS && gpu.ComputeCapabilityValue is >= 7.5m;","tryCatchPattern":"try { await step.ExecuteAsync(progress); } catch (NotSupportedException) { /* skip nunchaku, continue install */ }","preventionTips":["Verify GPU compute capability >= 7.5 before offering Nunchaku","Hide the Nunchaku option on macOS","Ensure GPU detection runs before install steps"],"tags":["csharp","gpu","nunchaku","platform"],"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"}