PaddlePaddle Notes
use_cuda = True place = fluid.CUDAPlace(0) if use_cuda else fluid.CPUPlace() exe = fluid.Executor(place)
fluid.CUDAPlace
多卡训练:
使用 fluid.compiler.CompiledProgram
来编译 fluid.Program
,然后调用 with_data_parallel
train_program = fluid.Program() if not use_cuda: os.environ['CPU_NUM'] = str(2) compiled_prog = compiler.CompiledProgram( train_program).with_data_parallel( loss_name=loss.name) loss_data, = exe.run(compiled_prog, feed={"X": x}, fetch_list=[loss.name])
CompiledProgram 会将传入的 fluid.Program
转为计算图,即Graph,因为 compiled_prog
与传入的 train_program
是完全不同的对象,目前还不能够对 compiled_prog
进行保存。 (如何保存)
CUDAPlace
- 参数:
-
- id (int,可选) - GPU的设备ID。如果为
None
,则默认会使用 id 为 0 的设备。默认值为None
。
- id (int,可选) - GPU的设备ID。如果为
代码示例
import paddle.fluid as fluid gpu_place = fluid.CUDAPlace(0)
这里编号指的是可见显卡的逻辑编号,而不是显卡实际的编号。
在终端里指定GPU:
export CUDA_VISIBLE_DEVICES=9