📡

【PyCharm】GCPのTPU/GPU VMにPythonコードをコピーする方法

2024/06/04に公開

GCPのTPU/GPU VMにPythonコードをコピーする

ローカルPCで開発中のPythonコードをTPU/GPU VM上で実行したい場合、何らかの方法でVM側にPythonコードをコピーする必要があります。今回はPyCharmのデプロイ機能とSSHトンネルを利用して、Pythonコードをコピーする最も手軽な方法をご紹介します。

1. SSHトンネルを作る

TPU/GPU VMにSSHアクセスする際に、同時にSSHトンネルも作ります。
以下の例では、ローカルホストのTCP/10022番ポートにSSHトンネルを作っています。
GPUとTPUで、gcloud CLIのsshコマンドの書式が異なります。

GPU VMの場合
  • 名前:my-gpu-vm
  • ゾーン:us-central1-a
(local)$ gcloud compute ssh my-gpu-vm --zone=us-central1-a -- -L 10022:localhost:22
TPU VMの場合
  • 名前:my-tpu-vm
  • ゾーン:us-central1-a
(local)$ gcloud compute tpus tpu-vm ssh my-tpu-vm --zone=us-central1-a -- -L 10022:localhost:22

2. SSH接続の作成

まずは、[設定]-[ツール]-[SSH構成]に、ローカルホスト宛のSSH接続を作成します。

  • ホスト:localhost
  • ポート:10022
  • ユーザ名:hoge
  • 認証タイプ:キーペア
  • 秘密鍵ファイル:/Users/hoge/.ssh/google_compute_engine

ユーザ名は、gcloud CLIのログインユーザーと同一にします。
秘密鍵ファイルは、ユーザーのホームディレクトリにあるキーファイルを指定します。

3. デプロイ機能の設定

[設定]-[ビルド、実行、デプロイ]-[デプロイ]で、新規サーバーの作成を行います。

  • 新規サーバー名:VM@GCP
  • タイプ:SFTP
  • SSH構成:hoge@localhost:10022
  • デプロイパス:/tmp/pycharm_project/pythonProject

SSH構成は先ほど作成したSSH接続を選択します。
デプロイパスには任意のデプロイ先を設定します。

デプロイ操作の方法

ファイルやフォルダを右クリックして、[デプロイ]-[VM@GCPへアップロード]

TPU/GPU VM側にPythonコードがコピーされているはずです。

(tpu-vm)$ ls /tmp/pycharm_project/pythonProject/
main.py

自動アップロードの方法

PyCharmのツールバーから、[ツール]-[デプロイ]-[自動アップロード]をONにすることで、Pythonコードを保存したタイミングで自動的にVM側にファイルがコピーされるので便利です。

Discussion