nvcc 致命:尽管 Visual Studio 12.0 已添加到 PATH,但在 PATH 中找不到编译器“cl.exe”

Posted

技术标签:

【中文标题】nvcc 致命:尽管 Visual Studio 12.0 已添加到 PATH,但在 PATH 中找不到编译器“cl.exe”【英文标题】:nvcc fatal : Cannot find compiler 'cl.exe' in PATH although Visual Studio 12.0 is added to PATH 【发布时间】:2016-09-19 12:53:12 【问题描述】:

我已遵循https://datanoord.com/2016/02/01/setup-a-deep-learning-environment-on-windows-theano-keras-with-gpu-enabled/ 的所有指示 但似乎无法正常工作。

我添加了 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin 到我的 PATH 变量

每次我从 Theano 网站运行代码来测试是否使用 CPU 或 GPU 时,它都会给我一个致命错误 “nvcc 致命:在 PATH 中找不到编译器 'cl.exe'”

这是我用来测试的代码:

from theano import function, config, shared, sandbox
import theano.tensor as T
import numpy
import time

vlen = 10 * 30 * 768  # 10 x #cores x # threads per core
iters = 1000

rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], T.exp(x))
print(f.maker.fgraph.toposort())
t0 = time.time()
for i in range(iters):
    r = f()
t1 = time.time()
print("Looping %d times took %f seconds" % (iters, t1 - t0))
print("Result is %s" % (r,))
if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):
    print('Used the cpu')
else:
    print('Used the gpu')

我该如何解决这个问题?

【问题讨论】:

请提供完整的错误信息,包括回溯。否则,很难识别和解决您的问题。 【参考方案1】:

我遇到了同样的问题。我使用的是 64 位 Windows 8.1,我必须将以下内容添加到我的路径中,现在它工作正常:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\cl.exe

希望对你有帮助

【讨论】:

【参考方案2】:

Visual Studio 2017 在这里

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\Hostx64\x64

【讨论】:

【参考方案3】:

您可以添加参数 -ccbin 来设置 cl.exe 的位置。它看起来像这样

nvcc "File path" -ccbin "cl.exe path"

【讨论】:

以上是关于nvcc 致命:尽管 Visual Studio 12.0 已添加到 PATH,但在 PATH 中找不到编译器“cl.exe”的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 是不是使用 nvcc 编译 cuda 代码?

如何编辑 Visual Studio CUDA nvcc.exe 命令行

Visual Studio 2017 - Git 因致命错误而失败

Visual Studio 2010:致命错误 C1189:#error

Visual Studio 2019 CVT1101 & LNK1123 致命错误

致命错误 C1010 - Visual Studio 中的“stdafx.h”如何纠正?