TPU インスタンスを作成する

このドキュメントでは、TPU 仮想マシン(VM)インスタンスを作成し、それに接続して、計算を実行する方法について説明します。このクイックスタートで作成する TPU インスタンスは、デフォルトの消費オプションであるオンデマンドを使用します。

始める前に

  1. Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud CLI をインストールします。

  3. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  4. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  5. Google Cloud プロジェクトを作成または選択します

    プロジェクトの選択または作成に必要なロール

    • プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトであれば、どのプロジェクトでも選択できます。
    • プロジェクトを作成する: プロジェクトを作成するには、resourcemanager.projects.create 権限を含むプロジェクト作成者ロール(roles/resourcemanager.projectCreator)が必要です。詳しくは、ロールを付与する方法をご覧ください。
    • Google Cloud プロジェクトを作成します。

      gcloud projects create PROJECT_ID

      PROJECT_ID は、作成する Google Cloud プロジェクトの名前に置き換えます。

    • 作成した Google Cloud プロジェクトを選択します。

      gcloud config set project PROJECT_ID

      PROJECT_ID は、 Google Cloud プロジェクトの名前に置き換えます。

  6. このガイドで既存のプロジェクトを使用する場合は、このガイドを完了するために必要な権限があることを確認します。新しいプロジェクトを作成した場合は、必要な権限がすでに付与されています。

  7. Google Cloud プロジェクトに対して課金が有効になっていることを確認します

  8. Compute Engine API を有効にします。

    API を有効にするために必要なロール

    API を有効にするには、serviceusage.services.enable 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。

    gcloud services enable compute.googleapis.com
  9. Google Cloud CLI をインストールします。

  10. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  11. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  12. Google Cloud プロジェクトを作成または選択します

    プロジェクトの選択または作成に必要なロール

    • プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトであれば、どのプロジェクトでも選択できます。
    • プロジェクトを作成する: プロジェクトを作成するには、resourcemanager.projects.create 権限を含むプロジェクト作成者ロール(roles/resourcemanager.projectCreator)が必要です。詳しくは、ロールを付与する方法をご覧ください。
    • Google Cloud プロジェクトを作成します。

      gcloud projects create PROJECT_ID

      PROJECT_ID は、作成する Google Cloud プロジェクトの名前に置き換えます。

    • 作成した Google Cloud プロジェクトを選択します。

      gcloud config set project PROJECT_ID

      PROJECT_ID は、 Google Cloud プロジェクトの名前に置き換えます。

  13. このガイドで既存のプロジェクトを使用する場合は、このガイドを完了するために必要な権限があることを確認します。新しいプロジェクトを作成した場合は、必要な権限がすでに付与されています。

  14. Google Cloud プロジェクトに対して課金が有効になっていることを確認します

  15. Compute Engine API を有効にします。

    API を有効にするために必要なロール

    API を有効にするには、serviceusage.services.enable 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。

    gcloud services enable compute.googleapis.com

必要なロール

TPU インスタンスの作成、SSH を使用した接続、コマンドの実行に必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

TPU インスタンスを作成する

ローカル ターミナルまたは Cloud Shell を使用して、次のコマンドを実行します。

  1. TPU インスタンスを作成するには、次の gcloud compute instances create コマンドを実行します。

    gcloud compute instances create quickstart-tpu \
        --machine-type=ct6e-standard-4t \
        --zone=us-east5-b \
        --image-project=ubuntu-os-accelerator-images \
        --image-family=ubuntu-accelerator-2204-amd64-with-tpu-v6e
    
  2. 必要に応じて、gcloud compute instances describe コマンドを使用して、インスタンスが実行されていることを確認します。

    gcloud compute instances describe quickstart-tpu --zone=us-east5-b
    

    出力で、status フィールドを調べて、インスタンスが実行中か、まだ保留中かを確認します。

TPU インスタンスに接続する

TPU インスタンスには、 Google Cloud コンソールまたは gcloud CLI を使用して接続できます。

SSH を使用して VM に接続するには、次の gcloud compute ssh コマンドを実行します。

gcloud compute ssh quickstart-tpu --project=PROJECT_ID --zone=us-east5-b

JAX をインストールする

TPU インスタンスで次のコマンドを実行して、JAX フレームワークをインストールします。

pip install jax[tpu] -f https://storage.googleapis.com/jax-releases/libtpu_releases.html

システム チェックを実行する

TPU インスタンスで次のコマンドを実行して、JAX が TPU にアクセスできること、基本オペレーションを実行できることを確認します。

  1. Python 3 インタプリタを起動します。

    python3
    
  2. JAX モジュールをインポートします。

    >>> import jax
    
  3. 使用可能な TPU コアの数を表示します。

    >>> jax.device_count()
    

    出力に TPU コアの数が表示されます。コア数は、使用している TPU のバージョンによって異なります。詳細については、TPU のバージョンをご覧ください。

計算を実行する

  1. 次のコマンドを実行して、2 つの数値を加算します。

    >>> jax.numpy.add(1, 1)
    

    出力例を以下に示します。

    >>> Array(2, dtype=int32, weak_type=True)
    
  2. Python インタプリタを終了する

    >>> exit()
    

クリーンアップ

このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、リソースを含む Google Cloud プロジェクトを削除します。

このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、gcloud compute instances delete コマンドを使用して TPU インスタンスを削除します。

gcloud compute instances delete quickstart-tpu --zone=us-east5-b

次のステップ