Closed6

機械学習のためのLinuxコマンド[入門]

Reiji KumeReiji Kume
ディレクトリ・ファイルの管理
  • pwd : 現在の作業ディレクトリの名前を表示

  • ls : ディレクトリ名のリストを表示

    ll / ls -l
    ファイル/ディレクトリの権限、リンク数、所有者、グループ、サイズ、最終変更時間などの詳細情報を表示。
    ls xxxx
    指定されたディレクトリ名内のリストを表示。

  • tree -L 2 -a : ディレクトリ構造を表示。階層の深さ-L 2 を指定、-a隠しファイルまで表示。

  • rm -rf xxxx : 指定したファイルやディレクトリを再帰的に(ディレクトリ内のすべてのファイルやサブディレクトリを含む)削除。

  • touch xxxx : 新しい空のファイルを作成、または既存のファイルのタイムスタンプを更新。

Reiji KumeReiji Kume
トレーニングプロセスの管理
  • top / htop: トレーニングプロセスのリソース使用状況の監視
    デフォルトでCPU使用率が高い順にプロセスが表示。また、メモリ使用量、実行時間、使用者などの詳細情報を表示
  • ps aux | grep “[process-id]” : 特定のトレーニングジョブの検索
    ps aux : "process status" - 実行中のすべてのプロセスを表示
    auxpsコマンドのオプション

    • a:全ての端末からのプロセスを表示
    • u:ユーザー/所有者に関連する詳細な情報を表示
    • x:制御端末を持たないプロセスも表示
      grep “xxxx” : "global regular expression print” - 特定のテキストを検索
  • kill [option] [process-id] : トレーニングプロセスの停止
    一つのプログラムが複数のタスクを同時に実行している場合、それぞれのタスクは個別のプロセスとして管理
    ここでの[option]は、送信するシグナルの種類を指定(省略)。指定がない場合は、TERMシグナル(プロセスに終了を要求するシグナル)が送信。

Reiji KumeReiji Kume
データと結果の操作
  • cat [ファイル名] : ファイルの内容を標準出力(通常は画面)に表示。
    複数のファイルを指定するとそれらの内容を連続して表示。
    例: "file1.txt"と"file2.txt"を表示
cat file1.txt file2.txt
  • head -n [行数] [ファイル名] : ファイルの先頭部分を表示
    例: "sample.txt"の先頭5行を表示
head -n 5 sample.txt
  • less : ファイル内容をページ単位で表示
    ( 大きなファイルを扱う際に便利 )

例: "sample.txt"をlessで表示

less sample.txt

less内での基本的な操作は以下:

  • space : 次のページへ移動
  • b キー: 前のページへ移動
  • q キー: lessを終了
Vim コマンド*

vim xxxx : ファイル内編集操作
vim コマンド集

Reiji KumeReiji Kume
データの転送と共有
  • scp : 2つの場所間でファイルやディレクトリを安全に転送
    "Secure Copy"- SSH(Secure Shell)の暗号化技術を使用したファイル転送方法

    1. ローカルからリモートへの転送:

      scp [options] [local file] [username@remote host]:[remote directory]
      

      ローカルシステム上の [local file] をリモートマシンの [remote directory] へコピー。ここで、 [username@remote host] は接続先のリモートマシンのユーザー名とアドレス。

    2. リモートからローカルへの転送:

      scp [options] [username@remote host]:[remote file] [local directory]
      

      リモートマシン上の [remote file] をローカルシステムの [local directory] へコピー。

    3. リモートからリモートへの転送:

      scp [options] [username@source host]:[source file] [username@destination host]:[destination directory]
      

      一つのリモートマシン([username@source host])上の [source file] を別のリモートマシン([username@destination host])の [destination directory] へコピー。

    [options]においてよく使われるものは以下:

    • r : ディレクトリ全体を再帰的にコピー。
    • p : 元のファイルのタイムスタンプとパーミッションを保持。
    • q : コピー中の進行状況の表示を無効。
  • chmod : ファイルやディレクトリのアクセス権限の制御
    "Change Mode” - ファイルやディレクトリのアクセス権限を変更

    chmod [権限設定] [ファイル名]
    

    権限設定
    読み取り(r)、書き込み(w)、実行(x)の3つの権限を
    所有者(u)、グループ(g)、その他のユーザー(o)のいずれかに対して設定。

    例: 所有者に読み取りと書き込みの権限を与える

    chmod u+rw xxxx
    

    所有者(u)に対して読み取り(r)と書き込み(w)の権限を追加(+)。

    例: 全てのユーザーから実行権限を削除する

    chmod a-x xxxx
    
Reiji KumeReiji Kume
GPUリソースの監視/管理
  • nvidia-smi : "NVIDIA System Management Interface"[1]*

以下は、nvidia-smiの主な表示項目:

  • Driver Version: GPUドライバのバージョン
  • CUDA Version: CUDAのバージョン
  • Process name: GPUを使用しているプロセス名
  • GPU Name: GPUのモデル名
  • Memory Usage: GPUメモリの使用状況
  • GPU-Util: GPUの使用率をパーセンテージ

例 : GPUの使用状況を一定間隔で表示

nvidia-smi -l # 5秒ごとにGPU使用状況( デフォルトで5秒間隔 )
nvidia-smi -l 1 # 1秒毎にGPU使用状況 ( `l`の後の秒数により間隔を指定 )
nvidia-smi -lms 500 # 500ミリ秒(0.5秒)毎にGPU使用状況
nvidia-smi -l 1 --query-gpu=timestamp,utilization.gpu,memory.used --format=csv

特定のGPUの情報(タイムスタンプ、GPU利用率、使用メモリ)を1秒ごとにCSV形式で表示を管理・監視。

脚注
  1. nvidia-smi docs ↩︎

このスクラップは2024/04/25にクローズされました