Visual studio 2015 包含future标头的代码中出现nvcc编译错误

Visual studio 2015 包含future标头的代码中出现nvcc编译错误,visual-studio-2015,nvcc,std-future,Visual Studio 2015,Nvcc,Std Future,在重新安装VS2015以在我的Windows 7 dell笔记本电脑上安装版本为with Update 3后,我开始在编译cuda项目时遇到问题,其标题为future: #包括“cuda_runtime.h” #包括 #包括 int main() { auto future=std::async(std::launch::async,[](inti){ 标准时间:2019-05-16 01:23:56开始建造。 1> 1> 1> 初始化BuildStatus: 1> 触摸“x64\Debug\T

在重新安装VS2015以在我的Windows 7 dell笔记本电脑上安装版本为with Update 3后,我开始在编译cuda项目时遇到问题,其标题为future:

#包括“cuda_runtime.h”
#包括
#包括
int main()
{
auto future=std::async(std::launch::async,[](inti){
标准时间:2019-05-16 01:23:56开始建造。
1> 1>
1> 初始化BuildStatus:
1> 触摸“x64\Debug\TestFuture.tlog\unsuccessfulbuild”。
1> ADDCUDA公司:
1> 跳过目标“AddCudCompileDeps”,因为所有输出文件相对于输入文件都是最新的。
1> 1>
1> CudaBuildCore:
1> 正在编译CUDA源文件kernel.cu。。。
1>
1> C:\Users\dell\documents\visual studio 2015\Projects\TestFuture\TestFuture>“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin\nvcc.exe”-gencode=arch=compute\u 20,code=\“sm\u 20,compute\u 20\”--使用本地环境--cl版本2015-ccbin“C:\Program Files(x86)\Microsoft visual studio 14.0\VC\bin\x86\x86\u amd64”-I“C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\include“-I”C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include“-I”C:\Program Files(x86)\Windows Kits\10\include\10.0.10240.0\ucrt“-I”C:\Program Files(x86)\Windows Kits\8.1\include\shared“-I”C:\Program Files(x86)\Windows Kits\8.1\\Windows Kits\8.1\Include\winrt“-I”C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\Include“-I”C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\Include“-G--keep dir x64\Debug-maxrregcount=0--machine 64--compile-cudart static-G-DWIN32-DWIN64-D_Debug-D_CONSOLE-DŪ-DŪ-DŪ-DŪ-MBCS-Xcompiler”/EHsc/W3/nologo/Od/FS/-o x64\Debug\kernel.cu.obj“C:\Users\dell\documents\visualstudio 2015\Projects\TestFuture\TestFuture\kernel.cu”
1> 1>
1> C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\include\utility(445):错误:静态断言因“元组索引超出范围”而失败
1> 在以下期间检测到:
1> 类“std::tuple_元素[具有_索引=0ULL]”的实例化
1> (461):这里
1> 类“std::tuple\u元素[with _Index=1ULL,_This=std::decation\u t,_Rest=]的实例化”
1> (461):这里
1> 类“std::tuple\u元素[具有_Index=2ULL,_This=std::decation\u tvoid>,_Rest=]的实例化”
1> C:\ProgramFiles(x86)\Microsoft Visual Studio 14.0\VC\include\future(1888):此处
1> 类“std::_Fake_no_copy_callable_adapter[with _Types=void,int>]的实例化
1> C:\ProgramFiles(x86)\Microsoft Visual Studio 14.0\VC\include\future(1925):此处
1> 实例化“std::future std::async(std::launch,_Fty&&,_ArgTypes&&…[带_Fty=lambda[](int)->void,_ArgTypes=]”
1> C:/Users/dell/documents/visualstudio 2015/Projects/TestFuture/TestFuture/kernel.cu(19):这里
1>
1> 1>
1> C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\include\future(1888):错误:函数模板“std::\u Invoke\u stored”的实例与参数列表不匹配
1> 参数类型有:(std::tuple,std::decation\u t>)
1> 在以下期间检测到:
1> 类“std::_Fake_no_copy_callable_adapter[with _Types=void,int>]的实例化
1> (1925):这里
1> 实例化“std::future std::async(std::launch,_Fty&&,_ArgTypes&&…[带_Fty=lambda[](int)->void,_ArgTypes=]”
1> C:/Users/dell/documents/visualstudio 2015/Projects/TestFuture/TestFuture/kernel.cu(19):这里
1>
1> 1>
1> C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\include\future(720):错误:构造函数“std::function::function[with _Fty=void()]”的实例与参数列表不匹配
1> 参数类型有:(std::_false\u no\u copy\u callable\u adaptervoid,int>)
1> 在以下期间检测到:
1> 实例化“std::_Packaged_state::_Packaged_state(_Fty2&)[with _ArgTypes=,_Fty2=std:_Fake_no_copy_callable_adaptervoid,int>]”
1> (902):这里
1> 实例化“std::_Task\u async\u state::_Task\u async\u state(_Fty2&)[with _Rx=std::result\u of_t(std::decation\u t)>,_Inline=false,_Fty2=std:_Fake\u no\u copy\u callable\u adaptervoid,int>]
1> (1906):这里
1> 实例化“std::_关联的_状态*std:_获取_关联的_状态(std::_启动类型,_Fty&)[with _Ret=std::result_of_t(std::detacient_t)>,_Fty=std:_伪_no_copy_callable_adaptervoid,int>]
1> (1928):这里
1> 实例化“std::future std::async(std::launch,_Fty&&,_ArgTypes&&…[带_Fty=lambda[](int)->void,_ArgTypes=]”
1> C:/Users/dell/documents/visualstudio 2015/Projects/TestFuture/TestFuture/kernel.cu(19):这里
1>
1> 在编译“C:/Users/dell/AppData/Local/Temp/tmpxft_0000182c_00000000-8_kernel.cpp1.ii”时检测到3个错误。
1> 1>
1> CUDACOMPILE:nvcc警告:“compute_20”、“sm_20”和“sm_21”体系结构已弃用,可能会在将来的版本中删除(使用-Wno弃用的gpu目标来抑制警告)。
1> kernel.cu
1> 1>
1> C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations\CUDA 8.0.targets(689,9):错误MSB3721:命令“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin\nvcc.exe”-gencode=arch=compute\u 20,code=\“sm\u 20,compute\u 20\”--使用本地环境--cl version 2015-ccbin“C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\bin\x86\u amd64“-I”C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\include“-I”C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include“-I”C:\Program Files(x86)\10\include\10.0.10240.0\ucrt“-I”C:\Program Files(x86)\Windows Kits\8.1\include\um“-I”C:\Program Files(x86)\Windows工具包\8.1\Include\shared“-I”C:\Program Files(x86)\Windows工具包\8.1\Include\winrt“-I”C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\Include“-I”C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\Include“-G--keep dir x64\Debug-maxregcount=0--machine 64--compile-cudart static-G-DWIN32-DWIN64-D_Debug-D_CONSOLE-D_MBCS-Xcompiler”/EHsc/W3/nologo/Od/FS/Zi/RTC1/MDd“-o x64\Debug\kernel.cu.obj”C:\Users\dell\documents\visualstudio 2015\Projects\TestFuture\TestFuture\kernel.cu”退出,代码为2。
1>
1> 生成失败。
1>
1>------ Build started: Project: TestFuture, Configuration: Debug x64 ------
1>Build started 2019-05-16 01:23:56.
1> 1>
1>InitializeBuildStatus:
1> Touching "x64\Debug\TestFuture.tlog\unsuccessfulbuild".
1> AddCudaCompileDeps:
1> Skipping target "AddCudaCompileDeps" because all output files are up-to-date with respect to the input files.
1> 1>
1>CudaBuildCore:
1> Compiling CUDA source file kernel.cu...
1>
1> C:\Users\dell\documents\visual studio 2015\Projects\TestFuture\TestFuture>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin\nvcc.exe" -gencode=arch=compute_20,code=\"sm_20,compute_20\" --use-local-env --cl-version 2015 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64" -I"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include" -I"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include" -I"C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt" -I"C:\Program Files (x86)\Windows Kits\8.1\Include\um" -I"C:\Program Files (x86)\Windows Kits\8.1\Include\shared" -I"C:\Program Files (x86)\Windows Kits\8.1\Include\winrt" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include" -G --keep-dir x64\Debug -maxrregcount=0 --machine 64 --compile -cudart static -g -DWIN32 -DWIN64 -D_DEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /FS /Zi /RTC1 /MDd " -o x64\Debug\kernel.cu.obj "C:\Users\dell\documents\visual studio 2015\Projects\TestFuture\TestFuture\kernel.cu"
1> 1>
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\utility(445): error : static assertion failed with "tuple index out of bounds"
1> detected during:
1> instantiation of class "std::tuple_element<_Index, std::tuple<>> [with _Index=0ULL]"
1> (461): here
1> instantiation of class "std::tuple_element<_Index, std::tuple<_This, _Rest...>> [with _Index=1ULL, _This=std::decay_t<int>, _Rest=<>]"
1> (461): here
1> instantiation of class "std::tuple_element<_Index, std::tuple<_This, _Rest...>> [with _Index=2ULL, _This=std::decay_t<lambda [](int)->void>, _Rest=<std::decay_t<int>>]"
1> C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\future(1888): here
1> instantiation of class "std::_Fake_no_copy_callable_adapter<_Types...> [with _Types=<lambda [](int)->void, int>]"
1> C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\future(1925): here
1> instantiation of "std::future<std::result_of_t<std::decay_t<_Fty> (std::decay_t<_ArgTypes>...)>> std::async(std::launch, _Fty &&, _ArgTypes &&...) [with _Fty=lambda [](int)->void, _ArgTypes=<int>]"
1> C:/Users/dell/documents/visual studio 2015/Projects/TestFuture/TestFuture/kernel.cu(19): here
1>
1> 1>
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\future(1888): error : no instance of function template "std::_Invoke_stored" matches the argument list
1> argument types are: (std::tuple<std::decay_t<lambda [](int)->void>, std::decay_t<int>>)
1> detected during:
1> instantiation of class "std::_Fake_no_copy_callable_adapter<_Types...> [with _Types=<lambda [](int)->void, int>]"
1> (1925): here
1> instantiation of "std::future<std::result_of_t<std::decay_t<_Fty> (std::decay_t<_ArgTypes>...)>> std::async(std::launch, _Fty &&, _ArgTypes &&...) [with _Fty=lambda [](int)->void, _ArgTypes=<int>]"
1> C:/Users/dell/documents/visual studio 2015/Projects/TestFuture/TestFuture/kernel.cu(19): here
1>
1> 1>
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\future(720): error : no instance of constructor "std::function<_Fty>::function [with _Fty=void ()]" matches the argument list
1> argument types are: (std::_Fake_no_copy_callable_adapter<lambda [](int)->void, int>)
1> detected during:
1> instantiation of "std::_Packaged_state<void (_ArgTypes...)>::_Packaged_state(_Fty2 &&) [with _ArgTypes=<>, _Fty2=std::_Fake_no_copy_callable_adapter<lambda [](int)->void, int>]"
1> (902): here
1> instantiation of "std::_Task_async_state<_Rx, _Inline>::_Task_async_state(_Fty2 &&) [with _Rx=std::result_of_t<std::decay_t<lambda [](int)->void> (std::decay_t<int>)>, _Inline=false, _Fty2=std::_Fake_no_copy_callable_adapter<lambda [](int)->void, int>]"
1> (1906): here
1> instantiation of "std::_Associated_state<std::_P_arg_type<_Ret>::type> *std::_Get_associated_state<_Ret,_Fty>(std::_Launch_type, _Fty &&) [with _Ret=std::result_of_t<std::decay_t<lambda [](int)->void> (std::decay_t<int>)>, _Fty=std::_Fake_no_copy_callable_adapter<lambda [](int)->void, int>]"
1> (1928): here
1> instantiation of "std::future<std::result_of_t<std::decay_t<_Fty> (std::decay_t<_ArgTypes>...)>> std::async(std::launch, _Fty &&, _ArgTypes &&...) [with _Fty=lambda [](int)->void, _ArgTypes=<int>]"
1> C:/Users/dell/documents/visual studio 2015/Projects/TestFuture/TestFuture/kernel.cu(19): here
1>
1> 3 errors detected in the compilation of "C:/Users/dell/AppData/Local/Temp/tmpxft_0000182c_00000000-8_kernel.cpp1.ii".
1> 1>
1>CUDACOMPILE : nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
1> kernel.cu
1> 1>
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations\CUDA 8.0.targets(689,9): error MSB3721: The command ""C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin\nvcc.exe" -gencode=arch=compute_20,code=\"sm_20,compute_20\" --use-local-env --cl-version 2015 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64" -I"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include" -I"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include" -I"C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt" -I"C:\Program Files (x86)\Windows Kits\8.1\Include\um" -I"C:\Program Files (x86)\Windows Kits\8.1\Include\shared" -I"C:\Program Files (x86)\Windows Kits\8.1\Include\winrt" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include" -G --keep-dir x64\Debug -maxrregcount=0 --machine 64 --compile -cudart static -g -DWIN32 -DWIN64 -D_DEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /FS /Zi /RTC1 /MDd " -o x64\Debug\kernel.cu.obj "C:\Users\dell\documents\visual studio 2015\Projects\TestFuture\TestFuture\kernel.cu"" exited with code 2.
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:03.80
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========