我正在尝试设置我的机器学习训练循环,我不希望它在我的计算机上使用 GPU。我已经安装并安装了 CUDA,但我想在 CPU 上运行我的代码。如何在 Flux.jl 中执行此操作?
问问题
209 次
1 回答
2
默认情况下,除非您告诉它,否则 Flux 不会使用 GPU。首先,确保 CUDA 没有加载我的注释using CUDA
。接下来,删除对gpu
. 一般来说,如果您希望有选择地在 CPU 和 GPU 上运行程序,请使用以下设计模式编写代码:
using CUDA
CUDA.allowscalar(false)
using Flux
# configure device
device = gpu
# made up function that loads your dataset
data = loaddata() .|> device
# made up function that builds your model
m = mymodel() |> device
# rest of your flux code
请注意我是如何在任何地方使用通用device
函数的,因此我只需要在程序启动时设置我选择的目标设备。如果你的程序在一个“main”函数中,你可以让那个函数接受一个device
参数。
如果您绝对需要禁用 GPU,那么 CUDA.jl 会查找CUDA_VISIBLE_DEVICES
您可以设置为空的环境变量。但是您只需要为调试目的/完整性检查执行此操作。
于 2021-06-30T13:16:45.387 回答