文章目录
前言
记录一下使用NVIDIA GPU运行tensorflow+keras代码时遇见的问题及解决方法。
一、CUPTI_ERROR_INSUFFICIENT_PRIVILEGES问题
问题:function cupti_interface_->Subscribe(&subscriber_, (CUpti_CallbackFunc)ApiCallback, this)failed with CUPTI_ERROR_INSUFFICIENT_PRIVILEGES
原因:默认情况下显卡的算力仅限制管理员访问,作为普通用户进行访问时会出现INSUFFICIENT_PRIVILEGES警告。
解决方法:
1.打开Nvidia Control Panel,即Nvidia控制面板。
2.查看左侧栏中是否有“开发者”一栏。
若没有“开发者”这一栏,点击上方菜单栏中的“桌面”选项,勾选“启用开发者设置”。
3.在“开发者”这一栏下点击“管理GPU性能计数器”,在右侧选择“允许所有用户访问GPU性能计数器”,问题即可解决。
二、cupti64_101.dll not found问题
问题:Could not load dynamic library ‘cupti64_101.dll’; dlerror: cupti64_101.dll not found
原因:环境变量未设置好
解决方法:
1.打开环境变量
2.找到自己的NVIDIA GPU Computing Toolkit的路径,将“D:\xxx\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\CUPTI\lib64\”,添加到环境变量Path中。
注意:
lib64后面有\
v10.1是CUDA的版本号,每个人的版本可能不一样。
以下是按照我的路径添加的,每个人的路径不同,注意修改。
添加:
3.在其他博客上提到的另一个方法:复制cupti64_101.dll到"D:\xxx\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin"下。
因添加环境变量后已解决问题,这个方法未尝试过
三、CUDNN_STATUS_ALLOC_FAILED问题
问题:Could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILED
原因:显卡内存不足
解决方法:
1.在另一个终端或者软件也运行了 tensorflow(import tensorflow),可能导致显存不足,关闭另一个即可。
2.若没有其他正在运行的,在代码最前面加入:
config = tf.compat.v1.ConfigProto(allow_soft_placement=True)
config.gpu_options.per_process_gpu_memory_fraction = 0.3
tf.compat.v1.keras.backend.set_session(tf.compat.v1.Session(config=config))