这是LZ在学习tensorBoard的时候遇到的一个问题,这个其实挺Bug,因为程序是可以正常运行到step90,然后就报下面一大段错误,看到核心已转储,简直崩溃。因为这个错误明显不是语法或者是人为的一些手误。后来查找了一下,是因为如果打开/usr/local/cuda/lib64,是找不到这个这个编译好的库文件的,文件在哪呢?
1.Linux版本
在/usr/local/cuda/exteas/CUPTI/lib64中,所以应该是tensorflow1.0和cuda-8.0在这个库文件的查找位置上有点不匹配。解决方案也写在下面啦,就是添加个环境,就ok啦!
I tensorflow/stream_executor/dso_loader.cc:116] Couldn't open CUDA library libcupti.so.8.0. LD_LIBRARY_PATH: /opt/ros/indigo/lib:/usr/local/cuda/lib64
F tensorflow/core/platform/default/gpu/cupti_wrapper.cc:59] Check failed: ::tensorflow::Status::OK() == (::tensorflow::Env::Default()->GetSymbolFromLibrary( GetDsoHandle(), kName, &f)) (OK vs. Not found: /usr/local/lib/python2.7/dist-packages/tensorflow/python/_pywrap_tensorflow.so: undefined symbol: cuptiActivityRegisterCallbacks)could not find cuptiActivityRegisterCallbacksin libcupti DSO
Aborted (core dumped)
网上有很多解决方案,然而LZ可能对Ubuntu不是很熟悉,所以都不晓得说的什么意思,对LZ来说就是简单粗暴能解决问题就是好的,嗯!
export LD_LIBRARY_PATH=$/usr/local/cuda/lib64:$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64
2.Windows版本
也是LZ自己作,非得装两个版的tensorflow,然后同样的问题出现两遍,解决方案原理相同,步骤不同。我在网上搜索了一下,英文解答如是说
Regarding cupti_wrapper.cc error, could you please try adding <path-to-cuda-folder>\NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\CUPTI\libx64 to your PATH and see if it solves this problem?
Two CUDA 8 files, cupti64_80.dll and cupti.lib, are located at ...CUDA\v8.0\extras\CUPTI\libx64 and moving those files into ...\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin and \NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64 respectively might yield the same results. Another alternative if you rather this way.
大写的蒙圈,我按照刚开始第一个方案添加环境变量,结果编译还是报错,结果还是第二个解决方案简单粗暴,既然你找不到,我就把文件复制到你查找的文件夹中。我是安装在C盘的所以就以我自己的安装目录为例啦。打开下面文件目录:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\CUPTI\libx64
里面应该有两个文件:.lib和.ddl分别复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64和C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin文件夹中,问题即可解决,可能会要有个管理员权限,这个是小问题啦!
哈哈,等到下次些tensorflow系列的时候小伙伴就会了解这具体是怎么一回事了O(∩_∩)O