【避坑】paddlepaddle-gpu安装报错:The GPU architecture in your current machine is Pascal, which is not

2024-04-09 1603阅读

温馨提示:这篇文章已超过383天没有更新,请注意相关的内容是否还可用!

版本与报错信息

完整的系统、显卡等环境如下:

  • 系统:win10
  • 显卡:GeForce GTX 1060 6GB
  • python 3.7.16
  • cuda:cuda 11.2.0
  • cudnn:cudnn 8.2.1
  • paddlepaddle:pip安装 版本:gpu==2.5.1.post112

    安装指令为:

    python -m pip install paddlepaddle-gpu==2.5.1.post112 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html
    

    安装成功后,测试结果如下:

    (base) D:\Downloads>python -c "import paddle; paddle.utils.run_check()"
    Running verify PaddlePaddle program ...
    I0831 10:35:55.205960  7352 interpretercore.cc:237] New Executor is Running.
    W0831 10:35:55.205960  7352 gpu_resources.cc:96] The GPU architecture in your current machine is Pascal, which is not compatible with Paddle installation with arch: 70 75 80 86 , it is recommended to install the corresponding wheel package according to the installation information on the official Paddle website.
    W0831 10:35:55.206962  7352 gpu_resources.cc:119] Please NOTE: device: 0, GPU Compute Capability: 6.1, Driver API Version: 12.2, Runtime API Version: 11.2
    W0831 10:35:55.221961  7352 gpu_resources.cc:149] device: 0, cuDNN Version: 8.2.
    I0831 10:35:56.037954  7352 interpreter_util.cc:518] Standalone Executor is Used.
    PaddlePaddle works well on 1 GPU.
    PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.
    

    注意这个警告信息:

    The GPU architecture in your current machine is Pascal, which is not compatible with Paddle installation with arch: 70 75 80 86

    我以为只是一个警告信息,直接忽略了。但是当我具体写代码时,我发现了个很严重的问题!!!

    (w) D:\Downloads>python
    Python 3.7.16 (default, Jan 17 2023, 16:06:28) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import paddle
    >>> paddle.ones([3,3])
    W0831 10:13:48.890246 16284 gpu_resources.cc:96] The GPU architecture in your current machine is Pascal, which is not compatible with Paddle installation with arch: 70 75 80 86 , it is recommended to install the corresponding wheel package according to the installation information on the official Paddle website.
    W0831 10:13:48.891247 16284 gpu_resources.cc:119] Please NOTE: device: 0, GPU Compute Capability: 6.1, Driver API Version: 12.2, Runtime API Version: 11.2
    W0831 10:13:48.901255 16284 gpu_resources.cc:149] device: 0, cuDNN Version: 8.2.
    Tensor(shape=[3, 3], dtype=float32, place=Place(gpu:0), stop_gradient=True,
           [[0., 0., 0.],
            [0., 0., 0.],
            [0., 0., 0.]])
    >>> paddle.ones([3,3]) *3
    Tensor(shape=[3, 3], dtype=float32, place=Place(gpu:0), stop_gradient=True,
           [[0., 0., 0.],
            [0., 0., 0.],
            [0., 0., 0.]])
    

    paddle.ones([3,3])返回的结果是 0!!!!直接震惊,后续测试其他的代码也是如此,这说明确实是安装失败了!

    后续我安装了 CPU 版本的 paddle,发现是正常的,说明确实是 GPU 版本没安装成功!这里我对比了 torch、tensorflow,这两个框架的 GPU 都能用!!所以 paddle 实锤了…

    2.4.1.post112 版本安装(×)

    继续尝试,我试着安装版本低一些的 paddle,先尝试的是 2.4.1.post112。

    我在(https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html)网页下载了 2.4.1.post112 版本的 whl 文件,然后安装:

    D:\Downloads>pip install paddlepaddle_gpu-2.4.1.post112-cp37-cp37m-win_amd64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple/
    

    安装完成后,测试结果如下:

    (w) D:\Downloads>python -c "import paddle; paddle.utils.run_check()"
    Running verify PaddlePaddle program ...
    W0831 10:04:52.412166 12988 gpu_resources.cc:61] Please NOTE: device: 0, GPU Compute Capability: 6.1, Driver API Version: 12.2, Runtime API Version: 11.2
    W0831 10:04:52.426165 12988 gpu_resources.cc:91] device: 0, cuDNN Version: 8.2.
    Traceback (most recent call last):
      File "", line 1, in 
      File "D:\anaconda3\envs\w\lib\site-packages\paddle\utils\install_check.py", line 270, in run_check
        _run_dygraph_single(use_cuda, use_xpu, use_npu)
      File "D:\anaconda3\envs\w\lib\site-packages\paddle\utils\install_check.py", line 136, in _run_dygraph_single
        linear_out = linear(input_tensor)
      File "D:\anaconda3\envs\w\lib\site-packages\paddle\fluid\dygraph\layers.py", line 948, in __call__
        return self.forward(*inputs, **kwargs)
      File "D:\anaconda3\envs\w\lib\site-packages\paddle\nn\layer\common.py", line 176, in forward
        x=input, weight=self.weight, bias=self.bias, name=self.name
      File "D:\anaconda3\envs\w\lib\site-packages\paddle\nn\functional\common.py", line 1882, in linear
        return _C_ops.linear(x, weight, bias)
    OSError: Invalid enum backend type `63`.
      [..\paddle/phi/common/backend.h:140]
    

    报了新的错误:OSError: Invalid enum backend type 63.

    develop 版本安装(×)

    通过在 github 的 issue (https://github.com/PaddlePaddle/Paddle/issues/49964)上发现了同样的错误,查到有大佬给出解决方法:

    【避坑】paddlepaddle-gpu安装报错:The GPU architecture in your current machine is Pascal, which is not

    安装指令依他的,如下

    python -m pip install paddlepaddle-gpu==0.0.0.post112 -f https://www.paddlepaddle.org.cn/whl/windows/gpu/develop.html
    

    安装成功后测试结果如下,依然报错(这是最开始的错误):

    (w) D:\Downloads>python -c "import paddle; paddle.utils.run_check()"
    Running verify PaddlePaddle program ...
    I0831 10:13:26.942690 11972 program_interpreter.cc:175] New Executor is Running.
    W0831 10:13:26.943701 11972 gpu_resources.cc:96] The GPU architecture in your current machine is Pascal, which is not compatible with Paddle installation with arch: 70 75 80 86 , it is recommended to install the corresponding wheel package according to the installation information on the official Paddle website.
    W0831 10:13:26.943701 11972 gpu_resources.cc:119] Please NOTE: device: 0, GPU Compute Capability: 6.1, Driver API Version: 12.2, Runtime API Version: 11.2
    W0831 10:13:26.956668 11972 gpu_resources.cc:149] device: 0, cuDNN Version: 8.2.
    I0831 10:13:27.715677 11972 interpreter_util.cc:602] Standalone Executor is Used.
    PaddlePaddle works well on 1 GPU.
    PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.
    

    ERROR:The GPU architecture in your current machine is Pascal, which is not compatible with Paddle installation with arch: 70 75 80 86

    可以发现,GPU 版本的 paddle,ones 函数的结果都是 0,很明显安装失败!

    (w) D:\Downloads>python
    Python 3.7.16 (default, Jan 17 2023, 16:06:28) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import paddle
    >>> paddle.ones([3,3])
    W0831 10:13:48.890246 16284 gpu_resources.cc:96] The GPU architecture in your current machine is Pascal, which is not compatible with Paddle installation with arch: 70 75 80 86 , it is recommended to install the corresponding wheel package according to the installation information on the official Paddle website.
    W0831 10:13:48.891247 16284 gpu_resources.cc:119] Please NOTE: device: 0, GPU Compute Capability: 6.1, Driver API Version: 12.2, Runtime API Version: 11.2
    W0831 10:13:48.901255 16284 gpu_resources.cc:149] device: 0, cuDNN Version: 8.2.
    Tensor(shape=[3, 3], dtype=float32, place=Place(gpu:0), stop_gradient=True,
           [[0., 0., 0.],
            [0., 0., 0.],
            [0., 0., 0.]])
    >>> paddle.ones([3,3]) *3
    Tensor(shape=[3, 3], dtype=float32, place=Place(gpu:0), stop_gradient=True,
           [[0., 0., 0.],
            [0., 0., 0.],
            [0., 0., 0.]])
    

    2.3.2.post112 版本安装

    继续尝试之前的版本,在(https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html)网页下载了 2.3.2.post112 版本的 whl 文件,然后安装:

    安装指令如下:

    pip install paddlepaddle_gpu-2.3.2.post112-cp37-cp37m-win_amd64.whl
    

    环境中所有包的版本如下:

    (w) D:\Downloads>conda list
    # packages in environment at D:\anaconda3\envs\w:
    #
    # Name                    Version                   Build  Channel
    anyio                     3.7.1                    pypi_0    pypi
    astor                     0.8.1                    pypi_0    pypi
    ca-certificates           2023.05.30           haa95532_0    defaults
    certifi                   2022.12.7        py37haa95532_0    defaults
    charset-normalizer        3.2.0                    pypi_0    pypi
    decorator                 5.1.1                    pypi_0    pypi
    exceptiongroup            1.1.3                    pypi_0    pypi
    h11                       0.14.0                   pypi_0    pypi
    httpcore                  0.17.3                   pypi_0    pypi
    httpx                     0.24.1                   pypi_0    pypi
    idna                      3.4                      pypi_0    pypi
    numpy                     1.21.6                   pypi_0    pypi
    openssl                   1.1.1v               h2bbff1b_0    defaults
    opt-einsum                3.3.0                    pypi_0    pypi
    paddle-bfloat             0.1.7                    pypi_0    pypi
    paddlepaddle-gpu          2.3.2.post112            pypi_0    pypi 
    pillow                    9.5.0                    pypi_0    pypi
    pip                       22.3.1           py37haa95532_0    defaults
    protobuf                  3.20.0                   pypi_0    pypi
    python                    3.7.16               h6244533_0    defaults
    python-version            0.0.2                    pypi_0    pypi
    requests                  2.31.0                   pypi_0    pypi
    setuptools                65.6.3           py37haa95532_0    defaults
    six                       1.16.0                   pypi_0    pypi
    sniffio                   1.3.0                    pypi_0    pypi
    sqlite                    3.41.2               h2bbff1b_0    defaults
    typing-extensions         4.7.1                    pypi_0    pypi
    urllib3                   2.0.4                    pypi_0    pypi
    vc                        14.2                 h21ff451_1    defaults
    vs2015_runtime            14.27.29016          h5e58377_2    defaults
    wheel                     0.38.4           py37haa95532_0    defaults
    wincertstore              0.2              py37haa95532_2    defaults
    

    测试结果如下:

    (w) D:\Downloads>python -c "import paddle; paddle.utils.run_check()"
    Running verify PaddlePaddle program ...
    W0831 10:32:31.453032 12400 gpu_resources.cc:61] Please NOTE: device: 0, GPU Compute Capability: 6.1, Driver API Version: 12.2, Runtime API Version: 11.2
    W0831 10:32:31.468046 12400 gpu_resources.cc:91] device: 0, cuDNN Version: 8.2.
    PaddlePaddle works well on 1 GPU.
    PaddlePaddle works well on 1 GPUs.
    PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.
    (w) D:\Downloads>python -c "import paddle; conv = paddle.nn.Conv1D(3, 1, 1); ts = paddle.to_tensor([[[1.1], [4.5], [1.4]]], dtype='float32'); print(conv(ts))
    W0831 10:32:42.271850 13316 gpu_resources.cc:61] Please NOTE: device: 0, GPU Compute Capability: 6.1, Driver API Version: 12.2, Runtime API Version: 11.2
    W0831 10:32:42.285848 13316 gpu_resources.cc:91] device: 0, cuDNN Version: 8.2.
    Tensor(shape=[1, 1, 1], dtype=float32, place=Place(gpu:0), stop_gradient=False,
           [[[1.36227489]]])
    

    成功!还是不放心,再写了个脚本测试了一下:

    import paddle
    from paddle.vision.transforms import Normalize
    transform = Normalize(mean=[127.5], std=[127.5], data_format='CHW')
    # 下载数据集并初始化 DataSet
    train_dataset = paddle.vision.datasets.MNIST(mode='train', transform=transform)
    test_dataset = paddle.vision.datasets.MNIST(mode='test', transform=transform)
    # 模型组网并初始化网络
    lenet = paddle.vision.models.LeNet(num_classes=10)
    model = paddle.Model(lenet)
    # 模型训练的配置准备,准备损失函数,优化器和评价指标
    model.prepare(paddle.optimizer.Adam(parameters=model.parameters()),
                  paddle.nn.CrossEntropyLoss(),
                  paddle.metric.Accuracy())
    # 模型训练
    model.fit(train_dataset, epochs=5, batch_size=512, verbose=1)
    # 模型评估
    model.evaluate(test_dataset, batch_size=128, verbose=1)
    

    运行成功,放心了!!!

    D:\anaconda3\envs\w\python.exe E:\Code\paddle_test\p.py 
    W0831 10:51:13.105628 15956 gpu_resources.cc:61] Please NOTE: device: 0, GPU Compute Capability: 6.1, Driver API Version: 12.2, Runtime API Version: 11.2
    W0831 10:51:13.128626 15956 gpu_resources.cc:91] device: 0, cuDNN Version: 8.2.
    The loss value printed in the log is the current step, and the metric is the average value of previous steps.
    Epoch 1/5
    D:\anaconda3\envs\w\lib\site-packages\paddle\fluid\dygraph\amp\auto_cast.py:303: UserWarning: For float16, amp only support NVIDIA GPU with Compute Capability 7.0 or higher, current GPU is: NVIDIA GeForce GTX 1060 6GB, with Compute Capability: 6.1.
      % (paddle.device.cuda.get_device_name(), prop[0], prop[1]))
    step 118/118 [==============================] - loss: 0.1857 - acc: 0.8243 - 90ms/step          
    Epoch 2/5
    step 118/118 [==============================] - loss: 0.1530 - acc: 0.9593 - 76ms/step          
    Epoch 3/5
    step 118/118 [==============================] - loss: 0.1555 - acc: 0.9718 - 74ms/step          
    Epoch 4/5
    step 118/118 [==============================] - loss: 0.0283 - acc: 0.9774 - 73ms/step          
    Epoch 5/5
    step 118/118 [==============================] - loss: 0.0505 - acc: 0.9806 - 73ms/step          
    Eval begin...
    step 79/79 [==============================] - loss: 0.0014 - acc: 0.9770 - 24ms/step          
    Eval samples: 10000
    Process finished with exit code 0
    

    总结 paddlepaddle-gpu 安装方法

    paddlepaddle-gpu 安装步骤

    1. 安装 Anaconda,这里就不多说了,啥版本都可以
    2. 安装 CUDA 和 CUDNN。(划重点:这里必须参照 paddle 官网给的 cuda 和 cudnn 版本来安装!!!)

    paddlepaddle官网(https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/pip/windows-pip.html)对cuda和cudnn版本的要求描述如下:

    • 如果您的计算机没有 NVIDIA® GPU,请安装CPU 版的 PaddlePaddle
    • 如果您的计算机有 NVIDIA® GPU,请确保满足以下条件并且安装 GPU 版 PaddlePaddle
      • CUDA 工具包 10.2 配合 cuDNN v7.6.5,如需使用 PaddleTensorRT 推理,需配合 TensorRT7.0.0.11
      • CUDA 工具包 11.2 配合 cuDNN v8.2.1,如需使用 PaddleTensorRT 推理,需配合 TensorRT8.2.4.2
      • CUDA 工具包 11.6 配合 cuDNN v8.4.0,如需使用 PaddleTensorRT 推理,需配合 TensorRT8.4.0.6
      • CUDA 工具包 11.7 配合 cuDNN v8.4.1,如需使用 PaddleTensorRT 推理,需配合 TensorRT8.4.2.4
      • CUDA 工具包 11.8 配合 cuDNN v8.6.0,如需使用 PaddleTensorRT 推理,需配合 TensorRT8.5.1.7
      • CUDA 工具包 12.0 配合 cuDNN v8.9.1, 如需使用 PaddleTensorRT 推理,需配合 TensorRT8.6.1.6
      • GPU 运算能力超过 3.5 的硬件设备
      • 注:目前官方发布的 windows 安装包仅包含 CUDA 10.2/11.2/11.6/11.7/11.8/12.0,如需使用其他 cuda 版本,请通过源码自行编译。您可参考 NVIDIA 官方文档了解 CUDA、CUDNN 和 TensorRT 的安装流程和配置方法,请见CUDA,cuDNN,TensorRT

        PS: 按照官网要求我安装的版本为:CUDA11.2,cuDNN8.2.1。此外,CUDA 和 CUDNN 的安装教程可以看这位大佬写的博客:https://blog.csdn.net/Vertira/article/details/125060383,写的很详细。

        1. 安装 paddle ,这里尽量选较老一点的版本,比如我最终是选择 2.3.2.post112 版本才安装成功的。安装方法参考官网,不建议安装最新版本的 paddle。建议参考网页(https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html)下载 whl 文件,离线安装,这样可供选择的版本更多些。

        写在最后

        1. CUDA 与 CUDNN 版本一定要对应,paddle 对驱动版本限制很死!!!(无力吐槽)
        2. paddle-gpu 版本要多尝试,建议老一点的版本(CPU 版本的 paddle 不影响)
        3. 不确定我的版本是否也适合你们,但是只能多尝试版本,感觉这两个错就是paddle版本的问题,多尝试吧。诶…

        就这样,希望本文对你有所帮助,感谢阅读。

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]