tensorflow PyInstaller是否包含CUDA

ttisahbt  于 2022-12-19  发布在  其他
关注(0)|答案(2)|浏览(226)

我正在写Python脚本(我使用Python 3.7.3),它使用tensorflow GPU(1.14.0)并使用PyInstaller 3. 5将此脚本转换为可执行文件,我使用的是CUDA 10. 0和CUDNN 7. 6. 1,我的显卡是NVIDIA GeForce GTX 960M。我最近卸载了CUDA来测试Python脚本的可执行文件是否仍然运行,令人惊讶的是,它仍然通过GPU运行,当我现在直接运行Python脚本时,GPU不起作用。
我的问题是,这个可执行文件可以在没有CUDA工具包但有支持CUDA的显卡的系统上运行吗?

neekobn8

neekobn81#

根据这篇文档,PyInstaller将创建并存储所有依赖外部库的私有副本,Python代码在构建单个可执行文件时将依赖这些库。
因此,可以安全地假设您的可执行文件在运行时与CUDA工具包的安装状态无关,因为它内部拥有必要CUDA库的完整私有副本,在运行可执行文件时会使用这些库。

ffscu2ro

ffscu2ro2#

根据官方资源库中的GitHub问题(例如herehere)CUDA库通常在运行时动态加载,而不是在链接时动态加载,因此它们通常不包括在最终的exe文件中(或文件夹),导致exe文件无法在未安装CUDA的计算机上运行。(也请参考链接的问题)是将运行exe所需的DLL放入其dist文件夹(如果生成时未使用--onefile选项)或在目标计算机上安装CUDA运行时。
您正在试验的行为可能是由于TF的特定版本,它以与上面描述的不同的方式加载库,但这不是现在所期望的行为。

相关问题