用服务器(linux)去计算任务时,通过以下代码设置了使用 gpu 去跑,但去使用 nvidia-smi 查看没有任何进程,感觉还是用得 cpu 去跑的
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "5"
GPU编号为5的设备
就用就是用的普通代码,没有用 pytorch,没有用任何模型,就是普通 python 程序,为什么设置了后没生效?
在非深度学习库(比如PyTorch或TensorFlow)的普通Python程序中,仅设置os.environ["CUDA_VISIBLE_DEVICES"] = "5"
并不能强制程序在GPU上执行。这个环境变量是用来告诉深度学习库或者其他支持CUDA的应用程序应该使用哪一块GPU的。
如果你的程序中没有涉及任何GPU加速计算的库(如PyTorch、TensorFlow等),即便设置了CUDA_VISIBLE_DEVICES
,程序本身也不会利用GPU进行计算,因为它并不具备访问和使用GPU的能力。
只有当你的代码中包含了能够利用CUDA进行计算的库,并且明确将数据和计算任务转移到了GPU上时,才会真正启动GPU进行计算。此时,你应该能在nvidia-smi
中看到相应的GPU进程。
因此,在你目前的普通Python程序中,设置CUDA_VISIBLE_DEVICES
并不会有任何效果,除非你的程序确实包含了可以利用CUDA的库和相应代码。