验证cuDNN 7.3.0安装时出现分类预测不匹配错误
cuDNN mnistCUDNN测试失败:预测不匹配问题
环境信息
- 系统:Ubuntu 18.04
- CUDA版本:10.0
- tensorflow-gpu版本:1.13.1
- cuDNN版本:7.3.0
问题描述
执行./mnistCUDNN验证cuDNN安装时,程序运行约20分钟后失败,错误输出如下:
cudnnGetVersion() : 7300 , CUDNN_VERSION from cudnn.h : 7300 (7.3.0) Host compiler version : GCC 7.5.0 There are 1 CUDA capable devices on your machine : device 0 : sms 20 Capabilities 8.6, SmClock 1485.0 Mhz, MemSize (Mb) 3910, MemClock 6001.0 Mhz, Ecc=0, boardGroupID=0 Using device 0 Testing single precision Loading image data/one_28x28.pgm Performing forward propagation ... Testing cudnnGetConvolutionForwardAlgorithm ... Fastest algorithm is Algo 0 Testing cudnnFindConvolutionForwardAlgorithm ... ^^^^ CUDNN_STATUS_SUCCESS for Algo 1: 0.001824 time requiring 100 memory ^^^^ CUDNN_STATUS_SUCCESS for Algo 0: 0.010240 time requiring 0 memory ^^^^ CUDNN_STATUS_SUCCESS for Algo 2: 0.018432 time requiring 57600 memory ^^^^ CUDNN_STATUS_SUCCESS for Algo 4: 0.052224 time requiring 207360 memory ^^^^ CUDNN_STATUS_NOT_SUPPORTED for Algo 3: -1.000000 time requiring 0 memory Resulting weights from Softmax: 0.0000000 0.9999399 0.0000000 0.0000000 0.0000561 0.0000000 0.0000012 0.0000017 0.0000010 0.0000000 Loading image data/three_28x28.pgm Performing forward propagation ... Resulting weights from Softmax: 0.0000000 0.0000000 0.0000000 0.9999288 0.0000000 0.0000711 0.0000000 0.0000000 0.0000000 0.0000000 Loading image data/five_28x28.pgm Performing forward propagation ... Resulting weights from Softmax: 0.0997550 0.0892810 0.1054468 0.1071846 0.0902156 0.1043498 0.0953814 0.0938049 0.1155469 0.0990339 Result of classification: 1 3 8 Test failed! Prediction mismatch mnistCUDNN.cpp:876 Aborting...
已验证信息
- 执行
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2,输出确认cuDNN版本为7.3.0:
#define CUDNN_MAJOR 7 #define CUDNN_MINOR 3 #define CUDNN_PATCHLEVEL 0 -- #define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL) #include "driver_types.h"
- 执行
sudo apt-get install libcudnn7-doc=7.3.0.29-1+cuda10.0,确认libcudnn7、libcudnn-dev、libcudnn-doc均为最新版本(7.3.0.29-1+cuda10.0)。
问题原因及解决方法
- GPU架构不兼容:你的GPU是Compute Capability 8.6(Ampere架构),但CUDA 10.0和cuDNN 7.3.0原生不支持该架构(CUDA 10.0最高支持到7.5架构)。新架构的指令集差异会导致运算逻辑异常,出现预测错误。
- 解决:升级CUDA到11.0及以上版本,搭配对应兼容的cuDNN版本(如cuDNN 8.0+)。若需保留tensorflow-gpu 1.13.1,需更换为支持8.6架构且兼容tensorflow 1.x的环境,或降级GPU驱动(不推荐)。
- 测试程序编译/适配问题:mnistCUDNN测试程序可能未正确适配cuDNN 7.3.0或当前GPU架构。
- 解决:重新编译测试程序,确保编译时链接的是本地安装的cuDNN库;或使用对应CUDA版本官方提供的测试样例。
- 测试权重文件异常:测试用的权重文件可能与当前网络计算逻辑不匹配,导致预测结果错误。
- 解决:检查测试程序的权重文件是否完整正确,重新下载或生成对应版本的权重文件。
内容的提问来源于stack exchange,提问作者Lei Shi
相关产品推荐
相关产品推荐

