1. 安装GPU版本paddlepaddle   
   pip install paddlepaddle-gpu     

       2.设置使用GPU

       使用GPU需要将use_gpu参数置为true:

import paddle.v2 as paddle
 
# Initialize PaddlePaddle.
paddle.init(use_gpu=true, trainer_count=1)
 
# Configure the neural network.
x = paddle.layer.data(name='x', type=paddle.data_type.dense_vector(13))
y_predict = paddle.layer.fc(input=x, size=1, act=paddle.activation.Linear())
 
# Infer using provided test data.
probs = paddle.infer(
    output_layer=y_predict,
    parameters=paddle.dataset.uci_housing.model(),
    input=[item for item in paddle.dataset.uci_housing.test()()])
 
for i in xrange(len(probs)):
    print 'Predicted price: ${:,.2f}'.format(probs[i][0] * 1000)

     3.GPU和CPU的混合使用

可以设置parallel_nn来混合使用GPU和CPU计算网络层的参数。也就是说,你可以将网络配置成某些层使用GPU计算,而其他层使用CPU计算。另一种方式是将网络层划分到不同的GPU上去计算,这样可以减小GPU内存,或者采用并行计算来加速某些层的更新。如果想在网络配置中指定设备的ID号(表示为deviceId),并且加上的命令行参数:--parallel_nn=true

#command line:
paddle train --use_gpu=true --parallel_nn=true --trainer_count=COUNT
 
#network:
fc2=fc_layer(input=l1, layer_attr=ExtraAttr(device=0), ...)
fc3=fc_layer(input=l1, layer_attr=ExtraAttr(device=1), ...)
fc4=fc_layer(input=fc2, layer_attr=ExtraAttr(device=-1), ...)

在本例中,我们假设一台机器上有4个GPU。

  • trainer_count=1:
  • 使用0号GPU计算fc2层。
  • 使用1号GPU计算fc3层。
  • 使用CPU计算fc4层。

  • trainer_count=2:

  • 使用0号和1号GPU计算fc2层。
  • 使用2号和3号GPU计算fc3层。
  • 使用CPU两线程计算fc4层。


Logo

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐