python-3.x - 错误:tensorflow/contrib/nccl/kernels/nccl_manager.cc:273 检查失败:result==ncclSuccess (2 vs 0)系统错误
问题描述
我正在尝试使用 MirrorStrategy 选项以及 tensorflow estimator API 运行分布式 tensorflow 代码,并得到标题中提到的错误。我正在使用 tensorflow-gpu 1.9.0。我正在关注分布式张量流培训的链接 。
并得到下面提到的警告和错误:您应该始终使用与您的 NVIDIA 显示驱动程序一起安装的 libnvidia-ml.so 运行。默认情况下,我安装在 /usr/lib 和 /usr/lib64 中。GDK 包中的 libnvidia-ml.so 是一个存根库,仅用于构建目的(例如,您构建应用程序的机器不必安装显示驱动程序)。
解决方案
您有可能获得了用于编译的存根库,而您的 LD_LIBRARY_PATH 不包含运行时库的路径。
检查您的库路径是否有“/usr/local/cuda/lib64/stubs”或类似的东西。如果它存在,您只需在库路径中将正确的位置放在它之前。
根据您安装的驱动程序版本,您可能能够在“/usr/lib/nvidia-384”下找到 libnvidia-ml.so 文件,或者找到与您的 nvidia 驱动程序版本匹配的除 384 以外的某个数字。
您可以在 .bashrc 文件中添加一行,如下所示:
export LD_LIBRARY_PATH=/usr/lib/nvidia-(Your driver number here):$LD_LIBRARY_PATH
推荐阅读
- amazon-web-services - 无法删除 S3 对象,“拒绝访问”
- wix - 在 WinpE 中运行 Wix MSI 安装
- azure - Spring Boot OAuth2 和 Azure AD
- javascript - 使用 sessionStorage 在页面刷新时保持子菜单显示
- python - 如何将卷积层添加到自定义估计器
- javascript - 仅 Firefox 中的 Javascript 参考错误
- regex - 每行最后两个报价的正则表达式
- javascript - 如何清空对象(对象字段可以变化和动态)
- cassandra - 如何在 cassandra 中设置分区键?
- r - 通过连接合并到数据集 - 在一个表中删除双精度值