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) 死亡的主要内容,如果未能解决你的问题,请参考以下文章

使用 openCV 构建 Bazel,错误:架构 x86_64 的未定义符号

Bazel 构建 Retrainer 失败

使用仿真模式的 nvcc 错误

在IBM lsf.conf上构建Bazel

在 ppc64le 上构建 Bazel 0.5.3 时出错

如何使用 Bazel 构建项目使用 OpenCV [关闭]