Udostępnij za pośrednictwem


Udostępnianie procesora GPU na urządzeniu z procesorem GPU Usługi Azure Stack Edge Pro

Jednostka przetwarzania grafiki (GPU) to wyspecjalizowany procesor przeznaczony do przyspieszania renderowania grafiki. Procesory GPU mogą przetwarzać wiele elementów danych jednocześnie, co ułatwia uczenie maszynowe, edytowanie wideo i aplikacje do gier. Oprócz procesora CPU na potrzeby obliczeń ogólnego przeznaczenia urządzenia GPU Usługi Azure Stack Edge Pro mogą zawierać jedną lub dwie procesory GPU Nvidia Tesla T4 na potrzeby obciążeń intensywnie korzystających z obliczeń, takich jak przyspieszone wnioskowanie sprzętowe. Aby uzyskać więcej informacji, zobacz Procesor GPU Tesla T4 firmy Nvidia.

Informacje o udostępnianiu procesora GPU

Wiele obciążeń uczenia maszynowego lub innych obciążeń obliczeniowych może nie wymagać dedykowanego procesora GPU. Procesory GPU mogą być współużytkowane i współużytkować procesory GPU między konteneryzowanymi obciążeniami lub obciążeniami maszyn wirtualnych, co pomaga zwiększyć wykorzystanie procesora GPU bez znaczącego wpływu na zalety wydajności procesora GPU.

Używanie procesora GPU z maszynami wirtualnymi

Na urządzeniu Azure Stack Edge Pro nie można współużytkować procesora GPU podczas wdrażania obciążeń maszyn wirtualnych. Procesor GPU można mapować tylko na jedną maszynę wirtualną. Oznacza to, że na urządzeniu można mieć tylko jedną maszynę wirtualną gpu z jednym procesorem GPU i dwiema maszynami wirtualnymi na urządzeniu wyposażonym w dwa procesory GPU. Istnieją inne czynniki, które należy również rozważyć podczas korzystania z maszyn wirtualnych gpu na urządzeniu z platformą Kubernetes skonfigurowaną na potrzeby konteneryzowanych obciążeń. Aby uzyskać więcej informacji, zobacz Maszyny wirtualne procesora GPU i platforma Kubernetes.

Używanie procesora GPU z kontenerami

W przypadku wdrażania konteneryzowanych obciążeń procesor GPU może być współużytkowany na więcej niż jeden sposób w warstwie sprzętowej i programowej. Dzięki procesorowi GPU Tesla T4 na urządzeniu Azure Stack Edge Pro jesteśmy ograniczeni do udostępniania oprogramowania. Na urządzeniu są używane następujące dwa podejścia do udostępniania oprogramowania procesora GPU:

  • Pierwsze podejście polega na użyciu zmiennych środowiskowych w celu określenia liczby procesorów GPU, które mogą być udostępniane w czasie. Podczas korzystania z tego podejścia należy wziąć pod uwagę następujące zastrzeżenia:

    • Za pomocą tej metody można określić jedną lub obie jednostki GPU lub nie. Nie można określić użycia ułamkowego.
    • Wiele modułów może mapować na jeden procesor GPU, ale nie można zamapować tego samego modułu na więcej niż jeden procesor GPU.
    • Dzięki wyjściowym interfejsowi SMI firmy Nvidia można zobaczyć ogólne wykorzystanie procesora GPU, w tym wykorzystanie pamięci.

    Aby uzyskać więcej informacji, zobacz wdrażanie modułu usługi IoT Edge korzystającego z procesora GPU na urządzeniu.

  • Drugie podejście wymaga włączenia usługi wieloprocesowej na procesorach GPU firmy Nvidia. MPS to usługa środowiska uruchomieniowego, która umożliwia uruchamianie współbieżnie wielu procesów przy użyciu interfejsu CUDA na jednym udostępnionym procesorze GPU. Usługa MPS umożliwia nakładanie się operacji jądra i memcopy z różnych procesów na procesorze GPU w celu osiągnięcia maksymalnego wykorzystania. Aby uzyskać więcej informacji, zobacz Usługa wieloprocesowa.

    Podczas korzystania z tego podejścia należy wziąć pod uwagę następujące zastrzeżenia:

    • Program MPS umożliwia określenie większej liczby flag we wdrożeniu procesora GPU.
    • Użycie ułamkowe można określić za pośrednictwem protokołu MPS, ograniczając w ten sposób użycie każdej aplikacji wdrożonej na urządzeniu. Możesz określić wartość procentową procesora GPU do użycia dla każdej aplikacji w env sekcji w deployment.yaml sekcji , dodając następujący parametr:
    // Example: application wants to limit gpu percentage to 20%
    
        env:
            - name: CUDA_MPS_ACTIVE_THREAD_PERCENTAGE
                value: "20"
    

Wykorzystanie procesora GPU

Po udostępnieniu procesora GPU na konteneryzowanych obciążeniach wdrożonych na urządzeniu można użyć interfejsu zarządzania systemem Nvidia (nvidia-smi). Nvidia-smi to narzędzie wiersza polecenia, które ułatwia zarządzanie i monitorowanie urządzeń z procesorem GPU firmy Nvidia. Aby uzyskać więcej informacji, zobacz Interfejs zarządzania systemem firmy Nvidia.

Aby wyświetlić użycie procesora GPU, najpierw połącz się z interfejsem programu PowerShell urządzenia. Get-HcsNvidiaSmi Uruchom polecenie i wyświetl dane wyjściowe rozwiązania Nvidia SMI. Możesz również wyświetlić, jak zmienia się użycie procesora GPU, włączając usługę MPS, a następnie wdrażając wiele obciążeń na urządzeniu. Aby uzyskać więcej informacji, zobacz Włączanie usługi wieloprocesowej.

Następne kroki