Azure Stack Hub에서 GPU 지원 IoT 모듈 배포

GPU 사용 Azure Stack Hub를 사용하면 IoT Edge 실행되는 Linux 디바이스에 프로세서 집약적 모듈을 배포할 수 있습니다. GPU 최적화 VM 크기는 단일 또는 여러 NVIDIA GPU에서 사용할 수 있는 특수 VM입니다. 이 문서에서는 GPU 최적화 VM을 사용하여 계산 집약적이고 그래픽 집약적인 시각화 워크로드를 실행하는 방법을 알아봅니다.

시작하기 전에 전역 Azure 및 Azure Stack Hub, Azure Container Registry(ACR) 및 IoT Hub에 액세스할 수 있는 Microsoft Entra 구독이 필요합니다.

이 문서에서는 다음 작업을 수행합니다.

  • GPU 지원 Linux VM을 설치하고 올바른 드라이버를 설치합니다.
  • Docker를 설치하고 런타임에 GPU를 사용하도록 설정합니다.
  • IoT 디바이스를 iOT Hub에 연결하고 iOT 마켓플레이스에서 모델을 Getting started with GPUs설치합니다.
  • Azure IoT 탐색기를 사용하여 로컬 컴퓨터에서 디바이스를 설치하고 모니터링합니다.
  • 필요에 따라 Visual Studio Code Azure IoT 확장을 사용하여 디바이스를 설치하고 모니터링합니다.

사전 요구 사항

Azure Stack Hub instance, 글로벌 Azure 및 로컬 개발 머신에 다음 리소스가 있어야 합니다.

Azure Stack Hub 및 Azure

  • NVIDA GPU를 사용하는 Azure Stack Hub 통합 시스템에서 Microsoft Entra ID를 사용하는 사용자로서의 구독입니다. 다음 칩은 iOT Hub에서 작동합니다.

    • NCv3
    • NCas_v4

    Azure Stack Hub의 GPU에 대한 자세한 내용은 Azure Stack Hub 의 GPU(그래픽 처리 장치) VM을 참조하세요.

  • 글로벌 Azure 구독. 글로벌 Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.

  • ACR(Azure Container Registry)입니다. ACR 로그인 서버, 사용자 이름 및 암호를 기록해 둡다.

  • 글로벌 Azure의 무료 또는 표준 계층 IoT Hub .

개발 머신

  • 본인의 개발 선호도에 자신의 머신 또는 가상 머신을 사용할 수 있습니다. 개발 머신은 중첩된 가상화를 지원해야 합니다. 이 기능은 이 문서에서 사용되는 컨테이너 엔진인 Docker를 실행하는 데 필요합니다.

  • 개발 머신에는 다음 리소스가 필요합니다.

    • Python 3.x
    • Python 패키지 설치용 Pip입니다. Python 설치와 함께 설치되었습니다. Pip가 설치된 경우 최신 버전으로 업그레이드할 수 있습니다. pip 자체를 사용하여 업그레이드할 수 있습니다. 다음을 입력합니다. pip install --upgrade pip
    • Azure CLI 2.0
    • Git
    • Docker
    • Visual Studio Code
    • Visual Studio Code용 Azure IoT Tools
    • Visual Studio Code Python 확장 팩

IoT Edge 디바이스 등록

별도의 디바이스를 사용하여 IoT Edge 디바이스를 호스트합니다. 별도의 디바이스를 사용하면 개발 머신과 IoT Edge 디바이스가 배포 시나리오를 보다 정확하게 미러링할 수 있습니다.

Linux VM을 사용하여 Azure에서 IoT Edge 디바이스를 만듭니다.

  1. Azure Stack Hub에서 N 시리즈 Linux 서버 VM을 만듭니다. 서버에 대한 구성 요소를 설치할 때 SSH를 통해 서버와 상호 작용합니다. 자세한 내용은 Azure Stack Hub에서 SSH 키 쌍 사용을 참조하세요.

  2. IoT Edge 디바이스 만들기 및 등록

GPU 사용 VM 준비

  1. Linux를 실행하는 N 시리즈 VM에 NVIDIA GPU 드라이버 설치 문서의 단계에 따라 N 시리즈 Linux 서버에 NVIDA GPU 드라이버를 설치합니다.

    참고

    bash 명령줄을 사용하여 소프트웨어를 설치합니다. 동일한 명령을 사용하여 GPU 사용 VM의 Docker에서 실행되는 컨테이너에 드라이버를 설치하므로 명령을 기록해 둡니다.

  2. Azure Stack Hub의 N 시리즈 Linux 서버에 최신 IoT Edge 런타임을 설치합니다. 자세한 내용은 Debian 기반 Linux 시스템에 Azure IoT Edge 런타임 설치를 참조하세요.

Docker 설치

GPU 사용 VM에 Docker를 설치합니다. VM의 컨테이너에 있는 IoT Edge 마켓플레이스에서 모듈을 실행합니다.

Docker 19.02 이상을 설치해야 합니다. 이제 Docker 런타임에서 NVIDIA GPU를 지원합니다. Docker에서 GPU를 자세히 알아보려면 Docker 문서, 메모리, CPU 및 GPU를 사용하는 런타임 옵션 문서를 참조하세요.

Docker 설치

Docker 컨테이너는 고객 데이터 센터의 온-프레미스, 외부 서비스 공급자 또는 Azure의 클라우드에서, 어디서나 실행할 수 있습니다. Docker 이미지 컨테이너는 Linux 및 Windows에서 기본적으로 실행할 수 있습니다. 그러나 Windows 이미지는 Windows 호스트에서만 실행할 수 있고 Linux 이미지는 Linux 호스트 및 Windows 호스트(지금까지 Hyper-V Linux VM 사용)에서 실행할 수 있습니다. 여기서 호스트는 서버 또는 VM을 의미합니다. 자세한 내용은 Docker란?을 참조하세요.

  1. SSH 클라이언트를 사용하여 N 시리즈 Linux 서버에 연결합니다.

  2. apt 인덱스 및 목록을 업데이트합니다.

    sudo apt-get update
    
  3. 컴퓨터에서 기존 패키지의 새 버전을 가져옵니다.

    sudo apt-get upgrade
    
  4. Docker의 apt 리포지토리를 추가하는 데 필요한 종속성을 설치합니다.

    sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
    
  5. Docker의 GPG 키를 추가합니다.

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
  6. Docker의 apt 리포지토리를 추가합니다.

    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    
  7. apt 인덱스 및 목록을 업데이트하고 Docker Community Edition을 설치합니다.

    sudo apt-get update 
    sudo apt-get install docker-ce
    
  8. Docker 버전을 확인하여 설치를 확인합니다.

    docker -v
    
  9. Docker에서 사용 가능한 GPU 리소스를 노출합니다.

    docker run -it --rm --gpus all ubuntu nvidia-smi
    

마켓플레이스에서 항목 가져오기

Azure Portal 돌아가서 iOT Marketplace를 사용하여 에지 디바이스에 모델을 추가합니다. 메뉴에서 Marketplace 모듈 을 선택합니다. 그리고 를 Getting started with GPUs검색하고 지침에 따라 모듈을 추가합니다.

지침은 디바이스 선택 및 모듈 추가를 참조하세요.

모니터링 사용

  1. Azure IoT 탐색기를 다운로드하고 애플리케이션을 IoT Hub 연결합니다.

  2. IoT 디바이스를 선택하고 탐색 메뉴에서 원격 분석으로 이동합니다.

  3. 시작을 선택하여 IoT Edge 디바이스에서 출력 모니터링을 시작합니다.

유효한 설치

모듈 모니터링(선택 사항)

  1. VS Code 명령 팔레트에서 Azure IoT Hub: IoT Hub 선택을 실행합니다.

  2. 구성하려는 IoT Edge 디바이스가 포함된 구독 및 IoT Hub를 선택합니다. 이 경우 Azure Stack Hub instance 구독을 선택하고 Azure Stack Hub에 대해 만든 IoT Edge 디바이스를 선택합니다. 이는 이전 단계에서 Azure Portal을 통해 컴퓨팅을 구성할 때 발생합니다.

  3. VS Code 탐색기에서 Azure IoT Hub 섹션을 확장합니다. 디바이스 아래에 Azure Stack Hub에 해당하는 IoT Edge 디바이스가 표시됩니다.

    1. 해당 디바이스를 선택하고 마우스 오른쪽 단추를 클릭한 다음 기본 제공 이벤트 엔드포인트 모니터링 시작을 선택합니다.

    2. 디바이스 > 모듈로 이동하면 GPU 모듈이 실행 중인 것을 확인할 수 있습니다.

    3. VS Code 터미널은 IoT Hub 이벤트를 Azure Stack Hub에 대한 모니터링 출력으로 표시해야 합니다.

    유효한 설치는 다음과 입니다.

    GPU에서 동일한 작업 세트(모양 변환 5,000회 반복)를 실행하는 데 걸리는 시간이 CPU보다 훨씬 적다는 것을 알 수 있습니다.

다음 단계