首页 文章

如何在pytorch中使cuda不可用

提问于
浏览
1

我正在用cudas运行一些代码,我需要在CPU上测试相同的代码来比较运行时间 . 为了在常规的pytorch张量和cuda浮动张量之间做出决定,我使用的库调用了torch.cuda.is_available() . 是否有一个简单的方法使此函数返回false?我试过更换Cuda可见设备

os.environ["CUDA_VISIBLE_DEVICES"]=""

但是torch.cuda.is_available()仍然返回True . 我进入了pytorch源代码,在我的情况下,torch.cuda.is_avaible返回

torch._C._cuda_getDeviceCount() > 0

我假设我应该能够在我的笔记本电脑开始时“隐藏”我的GPU,因此设备数量等于零,但到目前为止我没有取得任何成功 . 任何帮助表示赞赏:)

1 回答

  • 2

    我的代码

    而不是试图欺骗它,为什么不重写你的代码?例如,

    use_gpu = torch.cuda.is_available() and not os.environ['USE_CPU']
    

    然后你可以启动你的程序 python runme.py 以在GPU上运行(如果可用),并且 USE_CPU=1 python3 runme.py 以强制CPU执行(或通过 export USE_CPU=1 使其成为半永久性) .

    我尝试更换Cuda可见设备

    您也可以尝试使用 CUDA_VISIBLE_DEVICES="" python3 runme.py 运行代码;如果你在代码中设置环境变量,它可能会在PyTorch初始化之后设置,并且没有任何效果 .

相关问题