Tensorflow CUDA - CUPTI error: CUPTI could not be loaded or symbol could not be found
Tensorflow CUDA - CUPTI error: CUPTI could not be loaded or symbol could not be found
我使用的是 Tensorflow v 1.14.0。我在 Windows 10 上工作。下面是 环境变量 在 PATH
:
中的相关性
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\libnvvp
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common
C:\Users\sinthes\AppData\Local\Programs\Python\Python37
C:\Users\sinthes\AppData\Local\Programs\Python\Python37\Scripts
C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\cuda\bin
也许还值得一提,以防万一它可能是相关的。我使用 Sublime Text 3 进行开发,我不使用 Anaconda。我发现在 conda 环境中对 tensorflow 进行更新有点麻烦,所以我现在只使用 Sublime Text。 (我之前使用的是 Anaconda (Spyder),但我从我的电脑上卸载了它。)
除了偶尔出现一些奇怪的警告外,一切似乎都运行良好。但是每当我 运行 fit
函数时,我得到的一个一致的警告如下。
E tensorflow/core/platform/default/device_tracer.cc:68] CUPTI error: CUPTI could not be loaded or symbol could not be found.
下面是我调用拟合函数的方式:
history = model.fit(x=train_x,
y=train_y,
batch_size=BATCH_SIZE,
epochs=110,
verbose=2,
callbacks=[tensorboard, checkpoint, reduce_lr_on_plateau],
validation_data=(dev_x, dev_y),
shuffle=True,
class_weight=class_weight,
steps_per_epoch=None,
validation_steps=None)
我只是想知道为什么我在 运行 时间看到 CUPTI Error
消息?它只打印一次。这是我需要修复的东西还是可以忽略的东西?这条消息没有告诉我任何具体的事情让我能够采取任何行动。
我在尝试获取 tensorboard 图表时遇到了类似的错误,我认为它只会影响你是否打算使用 tensorboard。
我在 post 中找到了解决方案,但它适用于 linux
https://gist.github.com/Brainiarc7/6d6c3f23ea057775b72c52817759b25c
我认为您需要为 cupti 创建一个库配置文件。
这是解决 "my" 问题的方法:
我刚刚用 tensorflow v 1.13.1
替换了我的 tensorflow v 1.14
。并且不再有 CUPTI 错误 消息。甚至其他一些奇怪的警告/问题也消失了。所有问题显然都应该有特定原因,但不幸的是,Tensorflow(很多次)没有提供可理解的 error/warning 消息,这些消息给出了有助于解决问题的 good/fair 想法。我最终会在这些奇怪的问题上花费数小时(甚至数天),这大大降低了我的工作效率。
我的一个普遍学习(可能与此处分享相关)是我不应该急于将我的 tensorflow 安装升级到最新版本。最新的几乎从来都不稳定,每当我尝试时,我最终都会花费 大量 时间来解决由 tensorflow 引起的问题。糟糕的文档和错误消息使其非常难以使用。
如果有人有更好的答案,非常欢迎 s/he 分享我在这个问题中分享的问题的 his/her 见解。
在 path
中为 Windows 添加这个:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\CUPTI\libx64
The NVIDIA® CUDA Profiling Tools Interface (CUPTI) is a dynamic
library that enables the creation of profiling and tracing tools that
target CUDA applications.
CPUTI 似乎是由 Tensorflow 开发人员添加的,以允许进行分析。如果您不介意异常或调整您的环境路径,则可以简单地忽略该错误,以便在执行过程中找到动态链接库 (DLL)。
在您的 CUDA 安装目录中,有一个 extras\CUPTI\lib64
目录,其中包含正在尝试加载的 cupti64_101.dll
。将该目录添加到您的路径应该可以解决问题,例如
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\CUPTI\lib64;%PATH%
N.B。如果你接下来得到 INSUFFICIENT_PRIVILEGES error,请尝试 运行 你的程序作为管理员。
此答案适用于 Ubuntu-16.04
。
我在使用 Python2.7
和 Python3.6
升级到 Tensorflow-1.14
时遇到了这个问题。我必须使用 export LD_LIBRARY_PATH=/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
将 /usr/local/cuda/extras/CUPTI/lib64
添加到 LD_LIBRARY_PATH
并注销并登录。 source ~/.bashrc
没有帮助。请注意,我的 cuda
文件夹指向 cuda-10.0
。
这是解决“我的”问题的方法:
Windows10、Tensorflow-GPU 2.4
第一个问题是不清楚它试图加载的确切“哪个”cupti64 版本。考虑到这一点,我搜索了所有名为 cupti*
的 dll
然后我将它们全部复制到我的
C:\Program Files\NVIDIA GPU 计算 Toolkit\CUDA\v11.0\extras\CUPTI\lib64
文件夹(cupti64_2020.1.0.dll 已经在里面了)
然后我还需要设置文件夹权限才能使其正常工作,这很奇怪,因为我是 运行 VS 作为管理员
运行 同样的问题。这就是为我修复它的方法,以防其他人遇到类似的问题来解决这个问题。
我收到错误:
function cupti_interface_->Subscribe( &subscriber_, (CUpti_CallbackFunc)ApiCallback, this)failed with error CUPTI could not be loaded or symbol could not be found.
- Windows 服务器 2019
- 张量流 2.5
- Cuda 11.2(CUDA_PATH环境变量已设置并添加到PATH环境变量中)
- Cudnn 8.1.0
我已经在 PATH 环境变量中设置了 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\extras\CUPTI\lib64
,但仍然收到错误。
运行 where /r c:\ cupti*.dll
在命令提示符下在 c:\Program Files\NVIDIA Corporation\Nsight Systems 2020.4.3\target-windows-x64\
目录中找到了 dll。只需将此目录添加到 PATH 环境变量即可修复错误。
我也刚刚 运行 进入这个问题,与 jreeves 完全一样。我完全按照 jreeves 的方法(上图)解决了它。 (感谢 jreeves his/her 寻找和记录解决方案的工作。)
我的设置:
- Windows 10
- Gpu 支持:正确
- Cuda 支持:正确
- 张量流:2.4.1
- Python版本:3.8.8.
- Tensorboard 版本 2.4.1.
- Cuda 11.1
- Cudnn 8.0.5
我使用的是 Tensorflow v 1.14.0。我在 Windows 10 上工作。下面是 环境变量 在 PATH
:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\libnvvp
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common
C:\Users\sinthes\AppData\Local\Programs\Python\Python37
C:\Users\sinthes\AppData\Local\Programs\Python\Python37\Scripts
C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\cuda\bin
也许还值得一提,以防万一它可能是相关的。我使用 Sublime Text 3 进行开发,我不使用 Anaconda。我发现在 conda 环境中对 tensorflow 进行更新有点麻烦,所以我现在只使用 Sublime Text。 (我之前使用的是 Anaconda (Spyder),但我从我的电脑上卸载了它。)
除了偶尔出现一些奇怪的警告外,一切似乎都运行良好。但是每当我 运行 fit
函数时,我得到的一个一致的警告如下。
E tensorflow/core/platform/default/device_tracer.cc:68] CUPTI error: CUPTI could not be loaded or symbol could not be found.
下面是我调用拟合函数的方式:
history = model.fit(x=train_x,
y=train_y,
batch_size=BATCH_SIZE,
epochs=110,
verbose=2,
callbacks=[tensorboard, checkpoint, reduce_lr_on_plateau],
validation_data=(dev_x, dev_y),
shuffle=True,
class_weight=class_weight,
steps_per_epoch=None,
validation_steps=None)
我只是想知道为什么我在 运行 时间看到 CUPTI Error
消息?它只打印一次。这是我需要修复的东西还是可以忽略的东西?这条消息没有告诉我任何具体的事情让我能够采取任何行动。
我在尝试获取 tensorboard 图表时遇到了类似的错误,我认为它只会影响你是否打算使用 tensorboard。
我在 post 中找到了解决方案,但它适用于 linux https://gist.github.com/Brainiarc7/6d6c3f23ea057775b72c52817759b25c 我认为您需要为 cupti 创建一个库配置文件。
这是解决 "my" 问题的方法:
我刚刚用 tensorflow v 1.13.1
替换了我的 tensorflow v 1.14
。并且不再有 CUPTI 错误 消息。甚至其他一些奇怪的警告/问题也消失了。所有问题显然都应该有特定原因,但不幸的是,Tensorflow(很多次)没有提供可理解的 error/warning 消息,这些消息给出了有助于解决问题的 good/fair 想法。我最终会在这些奇怪的问题上花费数小时(甚至数天),这大大降低了我的工作效率。
我的一个普遍学习(可能与此处分享相关)是我不应该急于将我的 tensorflow 安装升级到最新版本。最新的几乎从来都不稳定,每当我尝试时,我最终都会花费 大量 时间来解决由 tensorflow 引起的问题。糟糕的文档和错误消息使其非常难以使用。
如果有人有更好的答案,非常欢迎 s/he 分享我在这个问题中分享的问题的 his/her 见解。
在 path
中为 Windows 添加这个:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\CUPTI\libx64
The NVIDIA® CUDA Profiling Tools Interface (CUPTI) is a dynamic library that enables the creation of profiling and tracing tools that target CUDA applications.
CPUTI 似乎是由 Tensorflow 开发人员添加的,以允许进行分析。如果您不介意异常或调整您的环境路径,则可以简单地忽略该错误,以便在执行过程中找到动态链接库 (DLL)。
在您的 CUDA 安装目录中,有一个 extras\CUPTI\lib64
目录,其中包含正在尝试加载的 cupti64_101.dll
。将该目录添加到您的路径应该可以解决问题,例如
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\CUPTI\lib64;%PATH%
N.B。如果你接下来得到 INSUFFICIENT_PRIVILEGES error,请尝试 运行 你的程序作为管理员。
此答案适用于 Ubuntu-16.04
。
我在使用 Python2.7
和 Python3.6
升级到 Tensorflow-1.14
时遇到了这个问题。我必须使用 export LD_LIBRARY_PATH=/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
将 /usr/local/cuda/extras/CUPTI/lib64
添加到 LD_LIBRARY_PATH
并注销并登录。 source ~/.bashrc
没有帮助。请注意,我的 cuda
文件夹指向 cuda-10.0
。
这是解决“我的”问题的方法:
Windows10、Tensorflow-GPU 2.4
第一个问题是不清楚它试图加载的确切“哪个”cupti64 版本。考虑到这一点,我搜索了所有名为 cupti*
的 dll然后我将它们全部复制到我的
C:\Program Files\NVIDIA GPU 计算 Toolkit\CUDA\v11.0\extras\CUPTI\lib64
文件夹(cupti64_2020.1.0.dll 已经在里面了)
然后我还需要设置文件夹权限才能使其正常工作,这很奇怪,因为我是 运行 VS 作为管理员
运行 同样的问题。这就是为我修复它的方法,以防其他人遇到类似的问题来解决这个问题。
我收到错误:
function cupti_interface_->Subscribe( &subscriber_, (CUpti_CallbackFunc)ApiCallback, this)failed with error CUPTI could not be loaded or symbol could not be found.
- Windows 服务器 2019
- 张量流 2.5
- Cuda 11.2(CUDA_PATH环境变量已设置并添加到PATH环境变量中)
- Cudnn 8.1.0
我已经在 PATH 环境变量中设置了 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\extras\CUPTI\lib64
,但仍然收到错误。
运行 where /r c:\ cupti*.dll
在命令提示符下在 c:\Program Files\NVIDIA Corporation\Nsight Systems 2020.4.3\target-windows-x64\
目录中找到了 dll。只需将此目录添加到 PATH 环境变量即可修复错误。
我也刚刚 运行 进入这个问题,与 jreeves 完全一样。我完全按照 jreeves 的方法(上图)解决了它。 (感谢 jreeves his/her 寻找和记录解决方案的工作。) 我的设置:
- Windows 10
- Gpu 支持:正确
- Cuda 支持:正确
- 张量流:2.4.1
- Python版本:3.8.8.
- Tensorboard 版本 2.4.1.
- Cuda 11.1
- Cudnn 8.0.5