Řešení chyb fantomového výčtu více grafických procesorů (Multi-GPU) a výběru DirectML v frameworkech Windows AI

Kev4 Vesely 0 Reputační body
2026-05-13T15:12:26.2033333+00:00

Naše specializovaná pracovní stanice pro mediální produkci se potýká s konfliktem výčtu hardwaru, který narušuje akceleraci neuronové sítě ve Windows 10/11. Zatímco aplikace s nativní podporou CUDA správně identifikují jedinou nainstalovanou grafickou kartu NVIDIA RTX 3080, frameworky využívající poskytovatele běhu DirectML, konkrétně ty, které zpracovávají modely ONNX nebo OpenVINO (.ov), paradoxně hlásí fiktivní sekundární zařízení a v nabídce výběru zdrojů dvakrát uvádějí stejnou fyzickou grafickou kartu. Tato logická duplikace brání softwaru v úspěšném navázání na výpočetní jádra, což vede k selhání inicializace nebo nežádoucímu návratu k procesoru. Hledám řešení, které by tuto chybu mapování hardwaru na API napravilo, aby DirectML přesně vnímal samostatnou grafickou kartu jako jediný platný cíl běhu pro hardwarově akcelerovanou inferenci.

Windows pro firmy | Klient Windows pro IT profesionály | Výkon | Jiné
Počet komentářů: 0 Žádné komentáře

Odpovědi: 2

Seřadit podle: Nejužitečnější
  1. Jason Nguyen Tran 27,855 Reputační body Nezávislý poradce
    2026-05-31T02:04:47.95+00:00

    Ahoj Kev4 Vesely,

    Rád bych se zeptal, zda byl problém již vyřešen. Pokud potřebujete další informace, neváhejte na tuto zprávu odpovědět.

    Pokud vám poskytnuté informace pomohly, klikněte prosím na „Accept Answer“, abyste pomohli i ostatním členům komunity, kteří by se mohli setkat se stejným problémem.

    Děkuji!

    Byla tato odpověď užitečná?

    Počet komentářů: 0 Žádné komentáře

  2. Jason Nguyen Tran 27,855 Reputační body Nezávislý poradce
    2026-05-13T15:53:37.97+00:00

    Ahoj Kev4 Vesely,

    To, co se zde děje, souvisí s tím, jak DirectML enumeruje zařízení prostřednictvím DXGI. V určitých kombinacích ovladačů a runtime prostředí se může stejné fyzické GPU zobrazit dvakrát: jednou jako diskrétní adaptér a podruhé jako logické zařízení WARP nebo fallback zařízení. Tato duplicita mate frameworky jako ONNX Runtime nebo OpenVINO při pokusu o výběr cílového zařízení.

    Prvním krokem, který doporučuji, je aktualizovat na nejnovější ovladače NVIDIA a zajistit, aby byly aktuální také runtime knihovny DirectML. Microsoft vydal opravy, které zlepšují logiku enumerace adaptérů, takže je zásadní udržovat Windows i ovladače GPU plně aktualizované. ONNX Runtime můžete také explicitně nakonfigurovat tak, aby vybral správné zařízení nastavením execution provideru na DirectML se správným indexem adaptéru, čímž obejdete falešnou položku.

    Dalším řešením je zakázání softwarového adaptéru WARP v prostředích, kde má být dostupné pouze diskrétní GPU. To lze provést prostřednictvím registru nebo konfigurace na úrovni aplikace v závislosti na použitém frameworku. Někteří uživatelé také zaznamenali úspěch při vynucení použití adaptéru 0 pro DirectML provider, který obvykle odpovídá fyzickému GPU.

    Z architektonického hlediska nejde o hardwarovou závadu, ale spíše o zvláštnost mapování v runtime prostředí. Dlouhodobým řešením je sladění verzí ovladačů, DirectML a frameworků tak, aby enumerace konzistentně zobrazovala pouze platné GPU.


    Doufám, že toto vysvětlení pomůže objasnit hlavní příčinu problému. Pokud vám tato odpověď pomohla, nezapomeňte prosím kliknout na „Accept Answer“.

    Jason.

    Byla tato odpověď užitečná?

    Počet komentářů: 0 Žádné komentáře

Vaše odpověď

Odpovědi můžou být autorem otázky označeny jako „Přijaté“ a moderátory jako „Doporučené“, což uživatelům pomůže zjistit, že odpověď vyřešila problém autora.