Skip to content

Kewton/jetpackcontainers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

概要

NVIDIAの組み込みシングルボードコンピュータであるJetson上にコンテナ技術を使用して複数のAI実行環境を構築します。
Jetsonを使用する理由は3つです。

  • 安価にCUDAが使用できる(数万円〜)
  • Jetpack SDKとNvidia NGCによりすぐに使えるコンテナが用意されている
  • 小型(手のひらサイズ)かつ高電力効率により手軽に始めるられる

ここでは、Nvidia NGCに用意されているコンテナイメージを使用して下記の3つの環境を構築します

① tensorflowがセットアップされた環境

② pytorchがセットアップされた環境

③ 機械学習全般がセットアップされた環境

Jetsonのセットアップ

Dockerのセットアップ

  1. アプリケーションの最新化

    sudo apt update
    sudo apt upgrade
    
  2. jetsonでは、sudo apt upgradeをするとDockerコンテナがうまく動作しなくなるのでcontainerのグレードダウンを実施

    wget https://launchpad.net/ubuntu/+source/docker.io/20.10.2-0ubuntu1~18.04.2/+build/21335731/+files/docker.io_20.10.2-0ubuntu1~18.04.2_arm64.deb
    sudo dpkg -i docker.io_20.10.2-0ubuntu1~18.04.2_arm64.deb
    rm docker.io_20.10.2-0ubuntu1~18.04.2_arm64.deb
    sudo apt install containerd=1.5.2-0ubuntu1~18.04.3
    

リソース使用状況確認ツールのインストール

  1. タスクマネージャー相当のリソースの使用状況確認用ツールをインストール
    sudo apt install python-pip
    sudo -H pip install jetson-stats
    sudo jtop
    

SDカードのマウント

  • Jetsonは標準ではディスク容量が少ないのでSDカードをマウントします。
  1. exfatを使用可能にする

    sudo add-apt-repository universe
    sudo apt update
    sudo apt install exfat-fuse exfat-utils
    
  2. SDカードマウント

    cd <ディレクトリ>
    mkdir media
    sudo mount /dev/sda1 <ディレクトリ>/media/
    
  3. ubuntu起動時にマウント

    1. uuidを確認
      sudo fdisk -l
      sudo blkid /dev/sda1
      
      例)/dev/sda1: LABEL="Samsung UFS" UUID="A833-362D" TYPE="exfat" PARTUUID="00000001-01"
    2. 編集
      vi /etc/fstab
      
      UUID=A833-362D       <ディレクトリ>/media auto    defaults        0       0
      

コンテナ環境の構築

コンテナ環境構築

  1. 必要な資産をダウンロードします

    mkdir <作業用ディレクトリ>
    cd <作業用ディレクトリ>
    rm -rf jetpackcontainers
    git clone https://github.com/Kewton/jetpackcontainers.git
    
  2. imageを構築・コンテナを構築しバックグラウンドでコンテナを起動

    # 各コンテナの/home/mntにマウントするローカルマシンのディレクトリを指定します
    # ※3つのコンテナで共通です
    export docker_vol=<マウントするディレクトリ>
    
    # コンテナの起動
    docker-compose -f jetpackcontainers/docker-compose.yaml up --build -d
    
    • up:コンテナの構築・起動
    • --build:image構築
    • -d:デタッチモード。バックグラウンドで実行

dockerコマンド整理

  1. docker-composeを使用してdockerをrun
    docker-compose -f docker-compose.yaml up --build -d
    
  2. 作動中のコンテナ一覧を表示
    docker ps
    # 停止中のコンテナも全て一覧表示
    docker ps --all
    
  3. 実行中のコンテナにbashでログイン
    docker exec -it <name> bash
    
  4. コンテナを停止する
    docker stop <name>
    
  5. 停止中のコンテナを削除する (Remove)
    docker rm <name>
    

ubuntuでよく使用するコマンド

再起動

sudo shutdown -r now

指定した間隔でコマンドを実行

watch -n 1 docker ps -a

指定した間隔でプロセスを確認

top -d 1

SCPでディレクトリ毎ファイル転送

  • ローカルのターミナルで実行
scp -r <from_dir> <user>@<ip>:<to_dir>

Jupyter notebook の起動

  1. tensorflowがセットアップされた環境にアクセス

    • URL:http://<Jetsonのipアドレス>:8801/login
    • 初期PW:nvidia
  2. pytorchがセットアップされた環境にアクセス

    • http://<Jetsonのipアドレス>:8802/login
    • 初期PW:nvidia
  3. 機械学習全般がセットアップされた環境にアクセス

    • http://<Jetsonのipアドレス>:8888/login
    • 初期PW:nvidia

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors