• 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
    
    • 1

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

    [] 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]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    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

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

  • 相关阅读:
    数仓开发之DWD层(四)
    盈利背后,美团渴望第二曲线
    充分条件、必要条件、充要条件
    听大佬讲:学习 AXI从哪里开始?
    vue基于element封装上传图片,拖拽
    调试工具记录
    解读RSAC 2022 | 深度学习是不是应该深度应用到网络安全?
    读书笔记: 这就是搜索引擎
    手把手教你做智能合约开源|多文件合约开源|引用文件开源
    化工单元操作试题(含答案)
  • 原文地址:https://blog.csdn.net/ly869915532/article/details/127951243