python - nvcc 致命:无法打开输出文件
问题描述
我使用 pytorch 在 Windows 上进行对象检测算法:
当我从 https://github.com/lufficc/SSD 存储库运行脚本ext/build.py build_ext develop
或从
https://github.com/potterhsu/easy-faster-rcnn.pytorch存储库运行时python support/setup.py develop
import glob
import os
import torch
from setuptools import setup
from torch.utils.cpp_extension import CUDA_HOME
from torch.utils.cpp_extension import CppExtension
from torch.utils.cpp_extension import CUDAExtension
requirements = ["torch", "torchvision"]
def get_extensions():
this_dir = os.path.dirname(os.path.abspath(__file__))
extensions_dir = os.path.join(this_dir, "src")
main_file = glob.glob(os.path.join(extensions_dir, "*.cpp"))
source_cpu = glob.glob(os.path.join(extensions_dir, "cpu", "*.cpp"))
source_cuda = glob.glob(os.path.join(extensions_dir, "cuda", "*.cu"))
sources = main_file + source_cpu
extension = CppExtension
extra_compile_args = {"cxx": []}
define_macros = []
if torch.cuda.is_available() and CUDA_HOME is not None:
extension = CUDAExtension
sources += source_cuda
define_macros += [("WITH_CUDA", None)]
extra_compile_args["nvcc"] = [
"-DCUDA_HAS_FP16=1",
"-D__CUDA_NO_HALF_OPERATORS__",
"-D__CUDA_NO_HALF_CONVERSIONS__",
"-D__CUDA_NO_HALF2_OPERATORS__",
]
sources = [os.path.join(extensions_dir, s) for s in sources]
include_dirs = [extensions_dir]
ext_modules = [
extension(
"support._C",
sources,
include_dirs=include_dirs,
define_macros=define_macros,
extra_compile_args=extra_compile_args,
)
]
return ext_modules
setup(
name="support",
version="0.1",
ext_modules=get_extensions(),
cmdclass={"build_ext": torch.utils.cpp_extension.BuildExtension},
)
我犯了同样的错误:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin\nvcc.exe -c C:\Users\along\PycharmProjects\SSD\ext\cuda\nms.cu -o build\temp.win- amd64-3.7\Release\Users\along\PycharmProjects\SSD\ext\cuda\nms.obj -IC:\Users\along\PycharmProjects\SSD\ext -IC:\Users\along\Anaconda3\lib\site-packages\ torch\include -IC:\Users\along\Anaconda3\lib\site-packages\torch\include\torch\csrc\api\include -IC:\Users\along\Anaconda3\lib\site-packages\torch\include\ TH -IC:\Users\along\Anaconda3\lib\site-packages\torch\include\THC "-IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\include" -IC:\Users\along \Anaconda3\include -IC:\Users\along\Anaconda3\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-我知道了:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt " "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" " -IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt"-Xcompiler /EHsc -Xcompiler /wd4819 -Xcompiler /MD -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr -DCUDA_HAS_FP16=1 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torch_extension -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch= compute_75,code=sm_75 nvcc 致命:无法打开输出文件“along\AppData\Local\Temp/tmpxft_00005b70_00000000”错误:命令“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin\nvcc.exe ' 退出状态为 1 失败\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin\nvcc.exe' 失败,退出状态为 1\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin\nvcc.exe' 失败,退出状态为 1
我不知道是什么错误,我的电脑上有一个 GPU 设备
我认为问题出在 Anaconda3\pkgs\pytorch-1.3.1-py3.7_cuda92_cudnn7_0\info\test\test\custom_operator 目录上的 CMakeLists.txt 文件上:
# Basic CMake setup
cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
project(custom_ops)
find_package(Torch REQUIRED)
add_library(custom_ops SHARED op.cpp)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../../third_party/pybind11/ ./pybind11)
pybind11_add_module(custom_class SHARED classes.cpp)
target_link_libraries(custom_class PRIVATE "${TORCH_LIBRARIES}")
target_compile_features(custom_ops PUBLIC cxx_range_for)
target_link_libraries(custom_ops "${TORCH_LIBRARIES}")
target_compile_definitions(custom_ops PRIVATE custom_ops_EXPORTS)
add_executable(test_custom_ops test_custom_ops.cpp)
target_link_libraries(test_custom_ops custom_ops)
解决方案
推荐阅读
- flutter - 在列表视图中滚动时图像消失
- react-native - 是否可以在不需要本机代码的情况下在 React Native 中制作 webdav 客户端?
- asp.net - INSERT 语句与 FOREIGN KEY 约束冲突“FK_ 但主键确实存在于父表中
- javascript - Babel JS 编译器如何将用户定义的组件语法 (JSX) 转换为常规函数调用?
- r - R-Dataframe :在所有 DF 上按行表示,在其他列上有条件
- azure - 总时间查询
- liquibase - Liquibase 回滚在 Sprintboot 2.0 中不起作用
- arrays - 如何使用 pySpark 转换项目行中的数组列单元格以计算出现次数?
- neo4j - 在 Neo4j 中取每种电影类型的平均评分
- c# - 如何在文件名上传到asp.net之前检查文件名