美文网首页
PaddlePaddle/PARL 碰到的小问题(一)

PaddlePaddle/PARL 碰到的小问题(一)

作者: vickeex | 来源:发表于2019-09-29 13:16 被阅读0次

    github addr: https://github.com/PaddlePaddle/PARL.git
    readthedoc addr: https://parl.readthedocs.io/en/latest/index.html

    run examples

    试验跑PARL给的甜栗子,需要装一下paddlepaddle。
    $ pip install paddlepaddle

    • cpu:如果直接 install paddlepaddle,那么是CPU版本

    • gpu$ pip install paddlepaddle-gpu

      如上命令默认是最新版本。但是CUDA版本也需要与软件版本对应,否则会碰到错误如下:

     Traceback (most recent call last):
     ......
     File "/home/inspur/anaconda3/lib/python3.6/site-packages/parl/core/fluid/agent.py", line 90, in __init__
        0) if machine_info.is_gpu_available() else fluid.CPUPlace()
    paddle.fluid.core_avx.EnforceNotMet: cudaGetDeviceCount failed in paddle::platform::GetCUDADeviceCountImpl, error code : 35, Please see detail in https://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__TYPES.html#
    group__CUDART__TYPES_1g3f51e3575c2178246db0a94a430e0038: CUDA driver version is insufficient for CUDA runtime version at [/paddle/paddle/fluid/platform/gpu_info.cc:106]
    

    "CUDA driver version is insufficient",此时解决办法如下:

    1. 使用命令查看CUDA和CUDNN版本
    $ cat /usr/local/cuda/version.txt
    $ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
    
    1. 选择对应版本:paddlepaddle-gpu==X.X.X.postXX,post后的两个X分别代表CUDA和CUDNN版本。比如我是CUDA版本9和CUDNN版本7,我就 $pip install paddlepaddle-gpu==1.5.1.post97,大致对照关系如下表。
    CUDA版本 CUDNN版本 paddlepaddle版本
    9 7.0 paddlepaddle-gpu==1.2.1.post97
    9 7.1 paddlepaddle-gpu==1.3.1.post97
    9 7.2 paddlepaddle-gpu==1.4.1.post97
    9 7.3 paddlepaddle-gpu==1.5.1.post97
    8 7.X paddlepaddle-gpu==1.5.1.post87
    9 7.X paddlepaddle-gpu==1.5.1.post97
    10 7.X paddlepaddle-gpu==1.5.1.post107

    好啦,现在$ python3 ~/PARL/examples/QuickStart/train.py 就用上PARL了,ok了呀么么哒
    note: 发现"PARL requires paddle>=1.5.1",所以还是得用1.5.1.postXX,虽然有可能有问题,但目前还没有. 建议当匹配版本<1.5.1时升级下CUDNN等.

    定个小目标:本赛季上王者,下赛季就随便玩啦。
    咦,今晚就上了?

    run error: allocating error

    C++ Callstacks:
    Enforce failed. Expected allocating <= available, but received allocating:10238983829 > available:8762294016.
    Insufficient GPU memory to allocation. at [/paddle/paddle/fluid/platform/gpu_info.cc:262]
    

    使用时已有其他进程占用GPU,导致的运行错误。
    思考:paddlepaddle/PARL需要对GPU的完整控制权?
    通过添加参数设置解决:

    CUDA_VISIBLE_DEVICES=0
    FLAGS_fraction_of_gpu_memory_to_use=0.99
    

    相关文章

      网友评论

          本文标题:PaddlePaddle/PARL 碰到的小问题(一)

          本文链接:https://www.haomeiwen.com/subject/etefpctx.html