我正在使用 Anaconda,并使用以下命令安装了 PyTorch:
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116
现在我在 torch/utils/cpp_extension.py 中收到以下错误:
UserWarning: Error checking compiler version for cl: [WinError 2] The system cannot find the file specified
我使用的是 Windows 10,并且已安装 Visual Studio Community 2022 和 Visual Studio Build Tools 2022,请参阅下面的屏幕截图。
有人有什么问题或遗漏吗?
编辑:我正在使用 Cuda 11.6。我现在还安装了 Visual Studio 2019,包括构建工具。现在上面的错误消失了,但我有一个新的错误:
Traceback (most recent call last):
File "C:\Users\myUser\Anaconda3\envs\parlai\lib\site-packages\torch\utils\cpp_extension.py", line 1808, in _run_ninja_build
subprocess.run(
File "C:\Users\myUser\Anaconda3\envs\parlai\lib\subprocess.py", line 528, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\myUser\ParlAI\server\server.py", line 3, in <module>
from parlai.utils.safety import OffensiveStringMatcher, OffensiveLanguageClassifier
File "c:\users\myUser\parlai\parlai\utils\safety.py", line 10, in <module>
from parlai.agents.transformer.transformer import TransformerClassifierAgent
File "c:\users\myUser\parlai\parlai\agents\transformer\transformer.py", line 15, in <module>
from parlai.core.torch_generator_agent import TorchGeneratorAgent
File "c:\users\myUser\parlai\parlai\core\torch_generator_agent.py", line 48, in <module>
from parlai.ops.ngram_repeat_block import NGramRepeatBlock
File "c:\users\myUser\parlai\parlai\ops\ngram_repeat_block.py", line 23, in <module>
ngram_repeat_block_cuda = load(
File "C:\Users\myUser\Anaconda3\envs\parlai\lib\site-packages\torch\utils\cpp_extension.py", line 1202, in load
return _jit_compile(
File "C:\Users\myUser\Anaconda3\envs\parlai\lib\site-packages\torch\utils\cpp_extension.py", line 1425, in _jit_compile
_write_ninja_file_and_build_library(
File "C:\Users\myUser\Anaconda3\envs\parlai\lib\site-packages\torch\utils\cpp_extension.py", line 1537, in _write_ninja_file_and_build_library
_run_ninja_build(
File "C:\Users\myUser\Anaconda3\envs\parlai\lib\site-packages\torch\utils\cpp_extension.py", line 1824, in _run_ninja_build
raise RuntimeError(message) from e
RuntimeError: Error building extension 'ngram_repeat_block_cuda': [1/2] C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin\nvcc --generate-dependencies-with-compile --dependency-output ngram_repeat_block_cuda_kernel.cuda.o.d -Xcudafe --diag_suppress=dll_interface_conflict_dllexport_assumed -Xcudafe --diag_suppress=dll_interface_conflict_none_assumed -Xcudafe --diag_suppress=field_without_dll_interface -Xcudafe --diag_suppress=base_class_has_different_dll_interface -Xcompiler /EHsc -Xcompiler /wd4190 -Xcompiler /wd4018 -Xcompiler /wd4275 -Xcompiler /wd4267 -Xcompiler /wd4244 -Xcompiler /wd4251 -Xcompiler /wd4819 -Xcompiler /MD -DTORCH_EXTENSION_NAME=ngram_repeat_block_cuda -DTORCH_API_INCLUDE_EXTENSION_H -IC:\Users\myUser\Anaconda3\envs\parlai\lib\site-packages\torch\include -IC:\Users\myUser\Anaconda3\envs\parlai\lib\site-packages\torch\include\torch\csrc\api\include -IC:\Users\myUser\Anaconda3\envs\parlai\lib\site-packages\torch\include\TH -IC:\Users\myUser\Anaconda3\envs\parlai\lib\site-packages\torch\include\THC "-IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\include" -IC:\Users\myUser\Anaconda3\envs\parlai\Include -D_GLIBCXX_USE_CXX11_ABI=0 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 -c c:\users\myUser\parlai\parlai\clib\cuda\ngram_repeat_block_cuda_kernel.cu -o ngram_repeat_block_cuda_kernel.cuda.o
FAILED: ngram_repeat_block_cuda_kernel.cuda.o
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin\nvcc --generate-dependencies-with-compile --dependency-output ngram_repeat_block_cuda_kernel.cuda.o.d -Xcudafe --diag_suppress=dll_interface_conflict_dllexport_assumed -Xcudafe --diag_suppress=dll_interface_conflict_none_assumed -Xcudafe --diag_suppress=field_without_dll_interface -Xcudafe --diag_suppress=base_class_has_different_dll_interface -Xcompiler /EHsc -Xcompiler /wd4190 -Xcompiler /wd4018 -Xcompiler /wd4275 -Xcompiler /wd4267 -Xcompiler /wd4244 -Xcompiler /wd4251 -Xcompiler /wd4819 -Xcompiler /MD -DTORCH_EXTENSION_NAME=ngram_repeat_block_cuda -DTORCH_API_INCLUDE_EXTENSION_H -IC:\Users\myUser\Anaconda3\envs\parlai\lib\site-packages\torch\include -IC:\Users\myUser\Anaconda3\envs\parlai\lib\site-packages\torch\include\torch\csrc\api\include -IC:\Users\myUser\Anaconda3\envs\parlai\lib\site-packages\torch\include\TH -IC:\Users\myUser\Anaconda3\envs\parlai\lib\site-packages\torch\include\THC "-IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\include" -IC:\Users\myUser\Anaconda3\envs\parlai\Include -D_GLIBCXX_USE_CXX11_ABI=0 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 -c c:\users\myUser\parlai\parlai\clib\cuda\ngram_repeat_block_cuda_kernel.cu -o ngram_repeat_block_cuda_kernel.cuda.o
C:/Users/myUser/Anaconda3/envs/parlai/lib/site-packages/torch/include\c10/macros/Macros.h(143): warning C4067: unexpected tokens following preprocessor directive - expected a newline
C:/Users/myUser/Anaconda3/envs/parlai/lib/site-packages/torch/include\c10/macros/Macros.h(143): warning C4067: unexpected tokens following preprocessor directive - expected a newline
C:/Users/myUser/Anaconda3/envs/parlai/lib/site-packages/torch/include\c10/core/SymInt.h(84): warning #68-D: integer conversion resulted in a change of sign
C:\Users\myUser\Anaconda3\envs\parlai\lib\site-packages\torch\include\pybind11\cast.h(1429): error: too few arguments for template template parameter "Tuple"
detected during instantiation of class "pybind11::detail::tuple_caster<Tuple, Ts...> [with Tuple=std::pair, Ts=<T1, T2>]"
(1507): here
C:\Users\myUser\Anaconda3\envs\parlai\lib\site-packages\torch\include\pybind11\cast.h(1503): error: too few arguments for template template parameter "Tuple"
detected during instantiation of class "pybind11::detail::tuple_caster<Tuple, Ts...> [with Tuple=std::pair, Ts=<T1, T2>]"
(1507): here
2 errors detected in the compilation of "c:/users/myUser/parlai/parlai/clib/cuda/ngram_repeat_block_cuda_kernel.cu".
ngram_repeat_block_cuda_kernel.cu
ninja: build stopped: subcommand failed.
我遇到了同样的问题,但我可以按照以下说明进行解决。想法是在你的windows系统中找到编译器
cl
并将目录添加到路径中
x86
,您将看到名为 - x86 Native tools command prompt for vs 2022
的内容。选择该选项。它将打开命令提示符cl
。确保已安装where cl
以获取编译器的路径PATH
并将此目录添加到其中。