【发布时间】:2020-03-23 06:12:09
【问题描述】:
我正在编写一个使用 tensorflow-gpu (1.14.0) 并使用 PyInstaller 3.5 将此脚本转换为可执行文件的 Python 脚本(我使用 Python 3.7.3)。我使用的是 CUDA 10.0 和 cuDNN 7.6.1,我的显卡是 NVIDIA GeForce GTX 960M。我最近卸载了 CUDA 以测试 Python 脚本的可执行文件是否仍然运行,令人惊讶的是它仍然通过 GPU 运行,当我现在直接运行 Python 脚本时它不起作用。
我的问题是,这个可执行文件可以在没有 CUDA 工具包但有支持 CUDA 的显卡的系统上运行吗?
【问题讨论】:
-
“没有 CUDA”是什么意思?没有 CUDA 工具包?没有 CUDA 驱动程序?
-
我的印象是 CUDA 工具包包含 CUDA 驱动程序?无论如何,我说的是工具包。
-
在某些平台上可以,但卸载工具包不会删除驱动程序。在那种情况下,我猜 PyInstaller 会生成静态链接的可执行代码(CUDA 在大多数平台上也支持)
-
我在 Windows 10 上运行所有东西,并通过 nvcc -V 命令验证了 CUDA 工具包的正确卸载。由于我依赖于 tensorflow-gpu 的 Python 脚本在卸载后不再运行,我是否可以假设驱动程序也被卸载了?
-
没有。卸载工具包会删除 Python 脚本所依赖的动态库,从而破坏它们。但是您的可执行文件可能具有链接到其中的所有 CUDA 库的静态版本,因此它不受影响。我从未听说过 PyInstaller,也不知道它是如何工作的,但这是我能想到的唯一解释。
标签: tensorflow cuda pyinstaller cudnn