在 Google Colab 上 运行 一个 python 脚本时,有没有办法 select 设备?

Is there a way to select a device when running a python script on Google Colab?

我正在尝试 运行 run_language_modeling.py,这是 python script from hugging face。但是,当我尝试 运行 它时,我注意到我只使用我的 CPU 而不是 GPU(即使环境设置为使用它。所以我正在寻找一个告诉脚本使用 GPU 的方法。

这是我的...

验证我使用的是 GPU:!nvidia-smi

这表明:

Fri Feb 25 11:55:13 2022       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.32.03    Driver Version: 460.32.03    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla K80           Off  | 00000000:00:04.0 Off |                    0 |
| N/A   32C    P8    26W / 149W |      0MiB / 11441MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

然后,我 运行 将调用 .py 文件的以下脚本:

!python ./run_language_modeling.py \
    --output_dir=output \
    --model_type=bert \
    --do_train \
    --train_data_file=train.txt \
    --do_eval \
    --eval_data_file=test.txt \
    --per_gpu_train_batch_size 8 \
    --per_gpu_eval_batch_size 4 \
    --num_train_epochs 20 \
    --output_dir ./ \
    --save_steps 1000 \
    --save_total_limit 2 \
    --mlm \
    --overwrite_output_dir \
    --block_size 128 \
    --line_by_line \
    --tokenizer_name bert-base-uncased 

这种情况一直持续到 CPU 使用率达到 100%。我想可能有类似 --device 的东西,但我没能找到它。我在网上看到的其他一些帖子提到我可以做到:

import os
os.environ["CUDA_VISIBLE_DEVICES"]="1"
tf_device='/gpu:0'

到 select 我想要的 GPU,但它并没有真正做任何我能说的事情。我也试过做:

%%shell

export CUDA_VISIBLE_DEVICES=0

有什么建议吗?

import torch

device = torch.device("cpu")

if torch.cuda.is_available():
   print("Training on GPU")
   device = torch.device("cuda:0")