📡
【PyCharm】GCPのTPU/GPU VMにPythonコードをコピーする方法
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