Important
Windows ML 런타임 API는 현재 실험적이며 프로덕션 환경에서 사용하는 것은 지원되지 않습니다. 이 API를 시도하는 앱은 Microsoft Store에 게시해서는 안 됩니다.
이 항목에서는 런타임 API를 사용하고 IWinMLRuntime 인스턴스를 만들도록 네이티브 C++ 프로젝트를 구성하는 방법을 보여 줍니다. 모델 로드, 텐서 바인딩 및 추론을 위해 Windows ML Runtime API로 모델 실행을 계속 진행하세요.
필수 조건
- 패키지에서 지원되는 Windows 버전입니다
Microsoft.Windows.AI.MachineLearning. Windows ML 배포 요구 사항을 참조하세요. - Visual Studio 2022 이상에서 Desktop development with C++ 워크로드를 사용합니다.
- 네이티브 C++ 콘솔 프로젝트입니다.
-
실험용
2.7.2021-experimentalMicrosoft.Windows.AI.MachineLearning NuGet 패키지 버전입니다. - 이러한 페이지의 샘플 코드에는 C++20 및 Microsoft.Windows.CppWinRT NuGet 패키지가 필요합니다.
Note
C++20 및 C++/WinRT는 런타임 API가 아닌 이러한 설명서 샘플의 요구 사항입니다. 런타임 API는 해당 앱의 언어 요구 사항에 따라 원시 COM, WRL, WIL 또는 다른 COM 도우미를 사용하여 C 또는 C++에서 사용할 수도 있는 네이티브 COM 스타일 ABI입니다.
CPU 실행 대상은 기준 경로입니다. GPU 및 NPU 가용성은 디바이스, 플랫폼 기능 및 앱에 설치된 실행 백엔드에 따라 달라집니다.
네이티브 NuGet 복원 구성
네이티브 Visual C++ 프로젝트에는 NuGet 대상 모니커가 필요하므로 패키지 복원에서 네이티브 Windows 자산을 선택할 수 있습니다. 이 속성 그룹을 첫 번째 .vcxproj 가져오기 전에 Microsoft.Cpp.* 파일 상단에 추가합니다.
<PropertyGroup Label="NuGet">
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
<NuGetTargetMoniker>native,Version=v0.0</NuGetTargetMoniker>
<NuGetTargetPlatformIdentifier>Windows</NuGetTargetPlatformIdentifier>
<NuGetTargetPlatformVersion>$(WindowsTargetPlatformVersion)</NuGetTargetPlatformVersion>
</PropertyGroup>
패키지는 PackageReference 또는 Microsoft.Windows.AI.MachineLearning를 사용하여 설치합니다. 이러한 페이지의 샘플을 빌드하려면 도 설치하고 Microsoft.Windows.CppWinRT를 ISO C++20 Standard (/std:c++20)로 설정합니다. Windows ML 패키지는 런타임 헤더, 가져오기 라이브러리 및 자체 포함 DLL을 제공합니다. C++/WinRT는 샘플 코드에서만 사용되는 winrt::com_ptr, winrt::check_hresult 및 <winrt/base.h> 편의 기능을 제공합니다.
CMake 및 배포 옵션은 독립 실행형 설치를 참조하세요.
런타임 초기화
main.cpp를 다음 코드로 바꿉니다.
// 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;
}
패키지 자산과 일치하는 아키텍처에 대한 빌드(예: Release|x64.) 빌드가 성공하면 NuGet 복원이 런타임 헤더와 가져오기 라이브러리를 찾고 필요한 DLL을 실행 파일 옆에 복사했음을 확인할 수 있습니다.