linux 如何杀死特定GPU上的训练?

w41d8nur  于 2023-03-29  发布在  Linux
关注(0)|答案(2)|浏览(141)

我在不同的GPU上训练变形金刚模型(8个GPU中有3个)并且想在专用GPU上杀死训练只有(0,6,7)我训练了top命令我只能看到PID x1c 0d1x。但是不知道哪些GPU属于PID杀死-9我不想使用,因为不知道哪个GPU会停止,因为我想停止(0,7,6)并保持其他运行
我用一个小例子重现这个问题:

from accelerate import Accelerator, notebook_launcher
from accelerate.utils import set_seed

def training_loop():
    set_seed(42)
    accelerator = Accelerator(mixed_precision="fp16")
    print("Hello There!")
    # main()   
notebook_launcher(training_loop(),  num_processes=2) #training_loop(),

使用termonal启动脚本:
CUDA_VISIBLE_DEVICES=0,6,7
python3 AccelerateTrainer.py
我希望在为0、6和7 GPU运行Nvidia-smi0%之后

46qrfjad

46qrfjad1#

nvidia-smi表下面,你应该有一个进程列表。如果你在一个docker容器中,你需要退出它来查看PID列表。从那里你将能够定位哪个进程正在占用内存并杀死它。

lsmepo6l

lsmepo6l2#

我发现这个Linux命令可以列出所有过去或当前的启动进程:
ps -eo pid,lstart,cmd -u user_name | grep -i python3然后在我知道特定GPU上运行的脚本kill -9 <process_id>后,按照命令杀死特定GPU

相关问题