anaconda3报错Can‘t find libdevice directory解决方案

anaconda3报错Can't find libdevice directory解决方案

1. 问题描述

使用anaconda3运行tensorflow进行单机多GPU运算时报错:

error: Can't find libdevice directory ${CUDA_DIR}/nvvm/libdevice

较的全报错如下(其中[…]为省略内容):

[] TensorFloat-32 will be used for the matrix multiplication. This will only be logged once.
error: Can't find libdevice directory ${CUDA_DIR}/nvvm/libdevice
[]
2022-11-19 20:59:24.723478: W tensorflow/core/framework/op_kernel.cc:1768] UNKNOWN: JIT compilation failed.
[]
  File "/home/bit202/anaconda3/lib/python3.9/site-packages/tensorboard/plugins/scalar/summary_v2.py", line 89, in scalar
    return tf.summary.write(
tensorflow.python.framework.errors_impl.UnknownError: {{function_node __wrapped__FloorMod_device_/job:localhost/replica:0/task:0/device:GPU:0}} JIT compilation failed. [Op:FloorMod]

2. 解决方案

在主系统环境安装Nvidia CUDA,即可解决该问题,关于CUDA安装教程,网上有很多,简而言之就是下载到你的系统和Nvidia显卡驱动对应的CUDA版本,手动安装即可。

3. 原理分析

由于报错为找不到${CUDA_DIR}/nvvm/libdevice文件夹,那么这是个什么文件夹呢?通过头部环境变量的宏名称${CUDA_DIR},我们可以推断出,该文件夹应该是CUDA的库文件位置。那么我们找一台已经在主系统环境下安装了CUDA的电脑看一下其安装路径下是否有这个文件。

CUDA的安装路径为/usr/local/cuda*,如下图可以看到libdevice这个文件,说明报错内容的路径就是指这个。
${CUDA_DIR}/nvvm路径
按照这个逻辑,我在anaconda虚拟环境路径下的lib目录下也找到了libdevice所包含的文件,如下图所示,但是手动在lib路径下添加了/nvvm/libdevice路径,并且将libdevice.10.bc拷贝进该路径下,重新设置CUDA_DIR环境变量为~/anaconda3/lib,运行程序仍然报错。
在这里插入图片描述
所以最后只有一个办法,在主系统环境下安装与虚拟环境cudatookit相同版本的Nvidia CUDA,最后正常运行。

4. 其他解决方案

  1. 复制路径
  2. 新建环境变量
  3. 安装cuda-nvcc
conda install -c nvidia cuda-nvcc

但是这三种方案都没有尝试,读者可以自行尝试

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值