Konfigurowanie projektu języka C++ dla interfejsu API środowiska uruchomieniowego Windows ML

Important

Interfejs API środowiska uruchomieniowego Windows ML jest obecnie eksperymentalny i nie jest obsługiwany do użycia w środowiskach produkcyjnych. Aplikacje testujące ten interfejs API nie powinny być publikowane w Microsoft Store.

W tym temacie pokazano, jak skonfigurować natywny projekt języka C++ do korzystania z interfejsu API środowiska uruchomieniowego i utworzyć wystąpienie IWinMLRuntime. Przejdź dalej do sekcji Uruchamianie modelu przy użyciu interfejsu API środowiska uruchomieniowego Windows ML na potrzeby ładowania modelu, powiązania tensorów i wnioskowania.

Prerequisites

Note

C++20 i C++/WinRT są wymaganiami tych przykładów dokumentacji, a nie Runtime API. Interfejs API środowiska uruchomieniowego to natywny interfejs ABI w stylu COM, który może być również używany z języka C lub C++ bezpośrednio przez COM, WRL, WIL lub innej biblioteki pomocniczej COM zgodnie z wymaganiami dotyczącymi języka tej aplikacji.

Docelowy cel wykonywania CPU jest ścieżką odniesienia. Dostępność procesora GPU i procesora NPU zależy od urządzenia, możliwości platformy i backendu wykonywania zainstalowanego dla aplikacji.

Konfigurowanie natywnego przywracania pakietów NuGet

Natywne projekty Visual C++ wymagają monikera platformy docelowej NuGet, aby przywracanie pakietów mogło wybrać natywne zasoby systemu Windows. Dodaj tę grupę właściwości blisko początku pliku .vcxproj, przed pierwszym importem Microsoft.Cpp.*:

<PropertyGroup Label="NuGet">
  <RestoreProjectStyle>PackageReference</RestoreProjectStyle>
  <NuGetTargetMoniker>native,Version=v0.0</NuGetTargetMoniker>
  <NuGetTargetPlatformIdentifier>Windows</NuGetTargetPlatformIdentifier>
  <NuGetTargetPlatformVersion>$(WindowsTargetPlatformVersion)</NuGetTargetPlatformVersion>
</PropertyGroup>

Zainstaluj pakiet Microsoft.Windows.AI.MachineLearning przy użyciu Manage NuGet Packages lub PackageReference. Aby zbudować przykłady na tych stronach, zainstaluj Microsoft.Windows.CppWinRT i ustaw język C++ Language Standard na ISO C++20 Standard (/std:c++20). Pakiet Windows ML dostarcza nagłówki środowiska uruchomieniowego, biblioteki importu i samodzielne biblioteki DLL; C++/WinRT udostępnia udogodnienia winrt::com_ptr, winrt::check_hresult i <winrt/base.h> używane tylko przez przykładowy kod.

Aby uzyskać informacje na temat opcji narzędzia CMake i wdrażania, zobacz Samodzielna instalacja.

Zainicjuj środowisko uruchomieniowe

Zastąp main.cpp następującym kodem:

// Copyright (C) Microsoft Corporation. All rights reserved.

#include <Windows.h>
#include <winrt/base.h>

#include <WinMLRuntime.h>

#pragma comment(lib, "windowsapp.lib")

int wmain()
{
    winrt::com_ptr<IWinMLRuntime> runtime;
    winrt::check_hresult(WinMLCreateRuntime(
        __uuidof(IWinMLRuntime),
        runtime.put_void()));

    return 0;
}

Skompiluj dla architektury zgodnej z elementami zawartości pakietu, takimi jak Release|x64. Pomyślna kompilacja potwierdza, że przywracanie NuGet znalazło nagłówki środowiska uruchomieniowego i bibliotekę importu oraz skopiowało wymagane biblioteki DLL obok pliku wykonywalnego.

Następne kroki