Övning – Paketera ett NVIDIA DeepStream Graph Composer-program i en containerbaserad arbetsbelastning

Slutförd

Du har sett hur NVIDIA DeepStream Graph Composer kan hjälpa dig att utveckla IVA-program. Nu ska vi visa hur extra verktyg kan hjälpa till att distribuera dessa program till datacenter- och gränsmiljöer.

Containerisering ger också många fördelar under utveckling och testning. Exempel:

  • Konsekvens i beteendet när du kör en arbetsbelastning på homogen maskinvara.
  • Inkrementella uppdateringar på grund av skiktning av filsystem, vilket kan minska tiden till distribution.
  • Rensa dokumentationen om beroenden på grund av självdokumentation.

För att uppnå dessa fördelar använder du verktyget container-builder för att paketera föregående exempel som en container.

  1. Innan du börjar måste du konfigurera ett konto med NGC-tjänsten (NVIDIA GPU Containers). Den här tjänsten är NVIDIA:s officiella lagringsplats för distribution av GPU-accelererade containrar. Din arbetsbelastning kräver åtkomst till den här lagringsplatsen för att hämta deepstream-bascontainern, som vår containerbaserade arbetsbelastning använder. Information om hur du skapar ett konto eller loggar in med ett befintligt konto finns på NVIDIA NGC-inloggningssidan.

    1. Logga in eller skapa ett nytt konto genom att gå till NVIDIA NGC-inloggningssidan. När du har loggat in på NVIDIA NGC väljer du ditt användarnamn i det övre högra hörnet och väljer Konfigurera. Du ser följande alternativ:

      Skärmbild som visar NGC-konfigurationsprocessen.

    2. Välj Hämta API-nyckel. På skärmen som visas väljer du Generera API-nyckel uppe till höger. Välj sedan Bekräfta i den resulterande prompten.

      Skärmbild som visar skärmen Generera API-nyckel för NGC.

    3. Ange autentiseringsuppgifterna för Docker-körningen genom att köra följande kommandon i en terminal på värddatorn:

      sudo docker login nvcr.io
      
    4. När du uppmanas att ange användarnamn anger du $oauthtoken exakt som visas. När du uppmanas att ange lösenord anger du värdet för din genererade API-nyckel. Du bör få meddelandet "Inloggningen lyckades".

  2. Nu när du har åtkomst till nvcr.io kan du börja skapa containrar som använder basavbildningarna som tillhandahålls via NVIDIA NGC. Verktyget container-builder kan skapa avbildningar genom att förse det med en konfigurationsfil. Du använder ett av exemplen i referensdiagrampaketet.

    1. Om du vill anropa containerbyggaren för att paketera deepstream-test1-programmet kör du följande kommandon på värddatorn:

      cd /opt/nvidia/deepstream/deepstream-6.0/reference_graphs/deepstream-test1
      sudo container_builder -c ds_test1_container_builder_dgpu.yaml -d /opt/nvidia/graph-composer/config/target_x86_64_cuda_11_4.yaml
      
    2. När det har slutförts bör du se utdata som innehåller meddelandet "Har taggats deepstream_test1_dgpu:senaste".

    Kommentar

    Om du får felet "docker.errors.DockerException" när du kör föregående kommandon kan det tyda på att du inte har Docker-körningen installerad på värddatorn. Du kan fortsätta genom att läsa anvisningarna i avsnittet "Installera NVIDIA DeepStream Graph Composer Dependencies" i den här modulen om hur du installerar Docker.

    Kommentar

    Om du får "docker.errors.BuildError: unauthorized: authentication required" anger det här meddelandet att du kanske inte har autentiserat ditt NVIDIA NGC-konto för användning med Docker korrekt.

  3. Innan du kör den här containerbaserade arbetsbelastningen måste du bevilja åtkomst till X11-visningsmiljön när den körs från en container på grund av arbetsbelastningen med hjälp av en utdatamottagare av typen EGL (typ = 2).

    Kör följande kommandon från en terminal på värddatorn för att aktivera åtkomst till X11-tjänsterna:

    sudo xhost +
    
  4. Bekräfta att den containerbaserade arbetsbelastningen körs som förväntat genom att köra följande kod i en terminal på värddatorn:

    sudo docker run -it --rm --gpus all -v /tmp/.X11-unix/:/tmp/.X11-unix/ -e DISPLAY=:0 
    deepstream_test1_dgpu
    

    Det här kommandot startar en instans av containeravbildningen deepstream_test1_dgpu och ger den åtkomst till all tillgänglig GPU-maskinvara på datorn samtidigt som den ger åtkomst till X11-socketen och den aktuella DISPLAY. Du bör se utdata som liknar den tidigare körningen som anropades med hjälp execute_graph.shav .

    Skärmbild som visar NVIDIA DeepStream Graph Composer Test1 som körs.

Nu är du redo att publicera din fungerande containerbaserade arbetsbelastning i ett säkert containerregister för distribution.