/sbin/ldconfig.real: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8 is not a symbolic link
/sbin/ldconfig.real: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8 is not a symbolic link
/sbin/ldconfig.real: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8 is not a symbolic link
/sbin/ldconfig.real: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8 is not a symbolic link
/sbin/ldconfig.real: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn.so.8 is not a symbolic link
/sbin/ldconfig.real: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_train.so.8 is not a symbolic link
/sbin/ldconfig.real: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_train.so.8 is not a symbolic link
执行 ldconfig
时遇到了多个关于 CUDA/cuDNN 库的警告信息。这些警告表明 /usr/local/cuda-11.1/targets/x86_64-linux/lib/
目录下的 cuDNN 库文件(如 libcudnn_*.so.8
)不是符号链接(symbolic link),而是实际的文件。这可能会影响动态链接器的库加载效率。
问题原因
符号链接缺失:ldconfig
期望库文件以符号链接的形式存在(例如 libcudnn.so.8 -> libcudnn.so.8.x.x
),但当前这些文件是直接的实际文件。符号链接有助于版本管理和库的灵活切换。
cuDNN 安装方式:可能是手动安装 cuDNN 时未正确创建符号链接,或安装包未自动处理这一步骤。
解决方法
手动创建符号链接
cd /usr/local/cuda-11.1/targets/x86_64-linux/lib/
sudo ln -sf libcudnn.so.8.x.x libcudnn.so.8 # 替换x.x为实际版本号
sudo ldconfig
需对每个报错的库文件执行类似操作(如 libcudnn_adv_infer.so.8``libcudnn_ops_infer.so.8
等)。
重新安装 cuDNN
使用 NVIDIA 官方提供的 deb 包或 runfile 安装 cuDNN,这些安装方式通常会自动处理符号链接。 - 确保安装的 cuDNN 版本与 CUDA 11.1 兼容。
验证修复
ldconfig -v | grep cudnn
检查输出中是否显示正确的符号链接路径。
注意事项
操作前建议备份原有库文件。
如果系统中有多个 CUDA 版本,需确保环境变量(如 LD_LIBRARY_PATH
)指向正确的路径。
此问题不会立即导致功能异常,但可能影响库的版本管理和更新。
如果需要更详细的 cuDNN 安装指导,可以参考 NVIDIA 官方文档或社区教程。