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

本文解决Anaconda3环境下使用TensorFlow进行单机多GPU运算时遇到的“Can't find libdevice directory”错误。通过在主系统环境中安装与虚拟环境cudatoolkit相同版本的Nvidia CUDA来解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

### Anaconda 安装时遇到的非 ASCII 字符错误解决方案 当遇到 `cannot contain non-ascii characters` 错误时,这通常是因为 Python 文件或环境中存在非 UTF-8 编码的字符。为了有效处理此问题并确保顺利安装 Anaconda,可以采取以下措施: #### 修改环境变量路径中的特殊字符 确保所有环境变量路径不包含任何带有重音符号或其他非标准 ASCII 字符的内容。这些特殊的字符可能会引起解析器混淆从而引发编码异常。 #### 设置命令提示符默认编码为 UTF-8 通过调整 Windows 控制台(CMD)的代码页来规避潜在的编码冲突。具体操作是在 CMD 中输入命令 `chcp 65001` 将当前会话切换到支持多语言文本显示和支持更广泛字符集的 UTF-8 编码模式[^1]。 #### 更改文件编码格式 对于具体的 `.py` 脚本文件,在头部声明合适的编码声明可以帮助解释器正确读取源代码内的字符。虽然题目提到表头增加语言注释无效,但对于一般情况而言,在 .py 文件顶部加入如下语句可作为预防手段之一: ```python # -*- coding: utf-8 -*- ``` 此外,也可以考虑永久更改 IDE 或编辑器全局以及项目级别的文件编码设置为 UTF-8,以防止将来再次发生类似的问题[^2]。 #### 使用虚拟环境隔离依赖关系 创建一个新的干净的 Conda 环境来进行包管理和服务部署,这样能减少因不同版本库之间相互影响而导致的各种未知状况的发生几率。执行下面这条指令建立新的 conda env 并激活它: ```bash conda create --name myenv python=3.x anaconda conda activate myenv ``` 以上方法综合运用能够极大程度上降低遭遇此类编码相关错误的概率,并提高开发效率和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值