nvcc 错误:使用 bazel 构建 tensorflow 时,'cicc' 以状态 0xC0000005 (ACCESS_VIOLATION) 死亡
Posted
技术标签:
【中文标题】nvcc 错误:使用 bazel 构建 tensorflow 时,\'cicc\' 以状态 0xC0000005 (ACCESS_VIOLATION) 死亡【英文标题】:nvcc error : 'cicc' died with status 0xC0000005 (ACCESS_VIOLATION) when building tensorflow with bazelnvcc 错误:使用 bazel 构建 tensorflow 时,'cicc' 以状态 0xC0000005 (ACCESS_VIOLATION) 死亡 【发布时间】:2019-12-18 11:49:05 【问题描述】:我正在尝试构建 Tensorflow 1.14.0 dll。我正在使用 bazel 0.24.1 来做到这一点。我还使用 cuDNN 7.1.4 和 CUDA 9.0。我希望它使用 Visual C++ Build Tools 2015,但是在运行 bazel 构建 dll 时:
bazel build --config=cuda tensorflow:tensorflow.dll,
默认情况下,在 LIB 和 INCLUDE 变量路径 C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023 中设置。然后我得到一堆错误,如 C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\include\xutility(796): error: expression must have a常数值。构建失败并出现错误:nvcc 错误:'cicc' 死亡,状态为 0xC0000005 (ACCESS_VIOLATION)。
我尝试设置:
set BAZEL_VS=C:\Program Files (x86)\Microsoft Visual Studio 14.0
set BAZEL_VC=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
但仍然出现错误。有什么想法吗?
【问题讨论】:
【参考方案1】:我终于找到了解决办法。您可以通过设置以下环境变量来强制使用正确的路径:
CPU_COMPILER = ('C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe') GCC_HOST_COMPILER_PATH = ('C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe')
就在运行之前
bazel build --config=cuda tensorflow:tensorflow.dll
在命令行中。最好在 Powershell 中进行,因为使用 Windows 命令行时路径中的空格/撇号会出现问题。
【讨论】:
以上是关于nvcc 错误:使用 bazel 构建 tensorflow 时,'cicc' 以状态 0xC0000005 (ACCESS_VIOLATION) 死亡的主要内容,如果未能解决你的问题,请参考以下文章