Azure IoT Edge for Linux on Windows의 GPU 가속
적용 대상: IoT Edge 1.5 IoT Edge 1.4
Important
IoT Edge 1.5 LTS 및 IoT Edge 1.4 LTS는 지원되는 릴리스입니다. IoT Edge 1.4 LTS는 2024년 11월 12일에 수명이 종료됩니다. 이전 릴리스에 있는 경우 IoT Edge 업데이트를 참조하세요.
GPU는 병렬 처리 기능을 제공하고 일반적으로 비전 기반 추론을 CPU보다 더 빠르게 실행할 수 있기 때문에 AI 계산에 널리 사용됩니다. AI 및 기계 학습 애플리케이션을 더 효과적으로 지원하기 위해 Azure IoT EFLOW(Edge for Linux on Windows)는 가상 머신의 Linux 모듈에 GPU를 노출할 수 있습니다.
Azure IoT Edge for Linux on Windows는 다음을 포함한 여러 가지 GPU 통과 기술을 지원합니다.
DDA(직접 디바이스 할당) - GPU 코어가 Linux 가상 머신이나 호스트에 할당됩니다.
GPU-PV(GPU-반가상화) - GPU가 Linux 가상 머신과 호스트 간에 공유됩니다.
디바이스의 GPU 하드웨어에서 지원되는 기능과 일치하도록 배포 중에 적절한 통과 방법을 선택해야 합니다.
Important
이 기능에는 NVIDIA Corporation이나 해당 사용 허가자가 개발하고 소유하는 구성 요소가 포함될 수 있습니다. 구성 요소 사용은 NVIDIA 웹 사이트에 있는 NVIDIA 최종 사용자 사용권 계약으로 관리됩니다.
GPU 가속 기능을 사용하면 NVIDIA 최종 사용자 사용권 계약을 수락하고 이에 동의하는 것입니다.
필수 조건
Azure IoT Edge for Linux on Windows의 GPU 가속 기능에서는 현재 특정한 GPU 하드웨어 세트를 지원합니다. 또한 이 기능을 사용하려면 특정 버전의 Windows가 필요할 수 있습니다.
지원되는 GPU와 필수 Windows 버전이 아래에 나열되어 있습니다.
지원되는 GPU | GPU 통과 유형 | 지원되는 Windows 버전 |
---|---|---|
NVIDIA T4, A2 | DDA | Windows Server 2019 Windows Server 2022 Windows 10/11(프로, 엔터프라이즈, IoT 엔터프라이즈) |
NVIDIA GeForce, Quadro, RTX | GPU-PV | Windows 10/11(프로, 엔터프라이즈, IoT 엔터프라이즈) |
인텔 iGPU | GPU-PV | Windows 10/11(프로, 엔터프라이즈, IoT 엔터프라이즈) |
Important
GPU-PV 지원은 GPU 공급업체의 결정에 따라 특정 세대의 프로세서 또는 GPU 아키텍처로 제한될 수 있습니다. 자세한 내용은 Intel의 iGPU 드라이버 설명서 또는 NVIDIA의 CUDA for WSL 설명서를 참조하세요.
Windows Server 2019 사용자는 모든 최신 누적 업데이트가 설치된 최소 빌드 17763을 사용해야 합니다.
Windows 10 사용자는 2021년 11월 업데이트 빌드 19044.1620 이상을 사용해야 합니다. 설치 후 명령 프롬프트에서 winver
를 실행하여 빌드 버전을 확인할 수 있습니다.
Windows 가상 머신에서 EFLOW를 실행하는 것과 같은 중첩된 가상화에서는 GPU 통과가 지원되지 않습니다.
시스템 설정 및 설치
다음 섹션에는 GPU에 따른 설정 및 설치 정보가 포함되어 있습니다.
NVIDIA T4/A2 GPU
T4/A2 GPU의 경우 Microsoft는 GPU 공급업체의 디바이스 완화 드라이버를 권장합니다. 선택 사항이지만 완화 드라이버를 설치하면 배포의 보안을 강화할 수 있습니다. 자세한 내용은 직접 디바이스 할당을 사용하여 그래픽 디바이스 배포를 참조하세요.
Warning
하드웨어 디바이스 통과를 사용하도록 설정하면 보안 위험이 증가할 수 있습니다. Microsoft는 해당되는 경우 GPU 공급업체의 디바이스 완화 드라이버를 권장합니다. 자세한 내용은 개별 디바이스 할당을 사용하여 그래픽 디바이스 배포를 참조하세요.
NVIDIA GeForce/Quadro/RTX GPU
NVIDIA GeForce/Quadro/RTX GPU의 경우 WSL(Linux용 Windows 하위 시스템)에 대한 NVIDIA CUDA 지원 드라이버를 다운로드하여 설치하여 기존 CUDA ML 워크플로와 함께 사용합니다. 원래 WSL용으로 개발된 WSL용 CUDA 드라이버는 Azure IoT Edge for Linux on Windows에도 사용됩니다.
일부 라이브러리는 WSL과 Azure IoT Edge for Linux on Windows 간에 공유되므로 Windows 10 사용자는 WSL을 설치해야 합니다.
인텔 iGPU
Intel iGPU의 경우 WSL GPU를 지원하는 Intel 그래픽 드라이버를 다운로드하여 설치합니다.
일부 라이브러리는 WSL과 Azure IoT Edge for Linux on Windows 간에 공유되므로 Windows 10 사용자는 WSL을 설치해야 합니다.
Azure IoT Edge Linux on Windows 배포에서 GPU 가속 사용
시스템 설정이 완료되면 Azure IoT Edge for Linux on Windows의 배포를 만들 준비가 된 것입니다. 이 과정에서 EFLOW 배포의 일부로 GPU를 사용하도록 설정해야 합니다.
예를 들어 다음 명령은 NVIDIA A2 GPU 또는 Intel Iris Xe Graphics 카드를 사용하여 GPU 지원 가상 머신을 만듭니다.
#Deploys EFLOW with NVIDIA A2 assigned to the EFLOW VM
Deploy-Eflow -gpuPassthroughType DirectDeviceAssignment -gpuCount 1 -gpuName "NVIDIA A2"
#Deploys EFLOW with Intel(R) Iris(R) Xe Graphics assigned to the EFLOW VM
Deploy-Eflow -gpuPassthroughType ParaVirtualization -gpuCount 1 -gpuName "Intel(R) Iris(R) Xe Graphics"
GPU의 이름을 찾으려면 다음 명령을 실행하거나 디바이스 관리자에서 디스플레이 어댑터를 찾을 수 있습니다.
(Get-WmiObject win32_VideoController).caption
설치가 완료되면 Azure IoT Edge for Linux on Windows를 통해 GPU 가속 Linux 모듈을 배포하고 실행할 준비가 된 것입니다.
Windows 배포의 기존 Azure IoT Edge Linux에서 GPU 가속 구성
배포 시 GPU를 할당하면 가장 간단한 환경이 생성됩니다. 그러나 배포 후 GPU를 사용하거나 사용하지 않도록 설정하려면 'set-eflowvm' 명령을 사용합니다. 'set-eflowvm'을 사용하는 경우 기본 매개 변수는 지정되지 않은 인수에 사용됩니다. 예를 들면 다음과 같습니다.
#Deploys EFLOW without a GPU assigned to the EFLOW VM
Deploy-Eflow -cpuCount 4 -memoryInMB 16384
#Assigns NVIDIA A2 GPU to the existing deployment (cpu and memory must still be specified, otherwise they will be set to the default values)
Set-EflowVM -cpuCount 4 -memoryInMB 16384 -gpuName "NVIDIA A2" -gpuPassthroughType DirectDeviceAssignment -gpuCount 1
#Reduces the cpuCount and memory (GPU must still be specified, otherwise the GPU will be removed)
Set-EflowVM -cpuCount 2 -memoryInMB 4096 -gpuName "NVIDIA A2" -gpuPassthroughType DirectDeviceAssignment -gpuCount 1
#Removes NVIDIA A2 GPU from the existing deployment
Set-EflowVM -cpuCount 2 -memoryInMB 4096
다음 단계
샘플 시작
EFLOW 샘플 페이지를 방문하여 시도하고 사용할 수 있는 여러 GPU 샘플을 검색합니다. 이러한 샘플은 결함 감지, 작업자 안전 및 재고 관리와 같은 일반적인 제조 및 소매 시나리오를 보여 줍니다. 오픈 소스 샘플은 고유한 비전 기반 기계 학습 애플리케이션을 빌드하기 위한 솔루션 템플릿으로 사용될 수 있습니다.
파트너로부터 자세히 알아보기
몇몇 GPU 공급업체는 EFLOW를 사용하여 하드웨어 및 소프트웨어를 최대한 활용하기 위한 사용자 가이드를 제공했습니다.
- Intel의 iGPU 가이드(Azure IoT Edge for Linux on Windows(EFLOW) 및 OpenVINO™ Toolkit 및 참조 구현 포함)에 따라 EFLOW에서 Intel OpenVINO™ 애플리케이션을 실행하는 방법을 알아봅니다.
- NVIDIA의 GeForce/Quadro/RTX GPU용 EFLOW 사용자 가이드에 따라 EFLOW에 CUDA 가속 애플리케이션 배포를 시작합니다.
참고 항목
이 가이드에서는 NVIDIA T4 또는 A2와 같은 DDA 기반 GPU를 다루지 않습니다.
기술에 대한 심층적 이해
DDA 설명서 및 GPU-PV 블로그 게시물을 방문하여 GPU 통과 기술에 관해 자세히 알아보세요.