<?xml version="1.0" encoding="utf-8"?> <VisualStudioToolFile Name="CUDA Build Rule v3.0.14" Version="8.00" > <Rules> <CustomBuildRule Name="CUDA Build Rule" DisplayName="CUDA Build Rule v3.0.14" CommandLine="echo [CompilerPath] [Keep] [CInterleavedPTX] [ExtraNvccOptions] -ccbin "$(VCInstallDir)bin" [Emulation] [Debug] [FastMath] [Defines] -I"$(CUDA_INC_PATH)" -I"./" -I"$(CUDA_COMMON_LIB)/inc" -I"$(CUDA_SHARED_UTILS_LIB)/inc" [Include] -Xcompiler "/EHsc [Warning] /nologo [Optimization] /Zi [RuntimeChecks] [Runtime] [TypeInfo] [ExtraCppOptions]" [MaxRegCount] [PtxAsOptionV] [Arch1] [Arch2] [Arch3] [NvccCompilation] "$(InputPath)" 
 [CompilerPath] [Keep] [CInterleavedPTX] [ExtraNvccOptions] [Arch1] [Arch2] [Arch3] -ccbin "$(VCInstallDir)bin" [Emulation] [Debug] [FastMath] [Defines] -I"$(CUDA_INC_PATH)" -I"./" -I"$(CUDA_COMMON_LIB)/inc" -I"$(CUDA_SHARED_UTILS_LIB)/inc" [Include] -Xcompiler "/EHsc [Warning] /nologo [Optimization] /Zi [RuntimeChecks] [Runtime] [TypeInfo] [ExtraCppOptions]" [Include] [MaxRegCount] [ptxasoptionv] [Arch1] [Arch2] [Arch3] [NvccCompilation] "$(InputPath)"" Outputs="[compileout]" AdditionalDependencies="[AddedDependencies]" FileExtensions="*.cu" ExecutionDescription="Compiling with CUDA Build Rule..." > <Properties> <StringProperty Name="Include" DisplayName="Additional Include Directories" Description="Specifies one or more directories to add to the include path; use semi-colon delimited list if more than one. (/I[path])" Switch="-I"[value]"" DefaultValue=""$(CUDA_INC_PATH)"" Delimited="true" Delimiters=";" Inheritable="true" /> <BooleanProperty Name="Debug" DisplayName="Generate Debug Information" Description="Specifies whether debugging with Nexus support is generated by the CUDA compiler. (-D_DEBUG -D_WIN32)" Switch="-D_DEBUG -D_WIN32" /> <EnumProperty Name="NvccCompilation" DisplayName="NVCC Compilation Type" Description="Select desired output of NVCC compilation (-c/-compile, -cuda, -gpu, -cubin, -ptx)" > <Values> <EnumValue Value="0" Switch="--compile -o "$(IntDir)\$(InputName).cu.obj"" DisplayName="Generate hybrid object file (--compile / -c)" /> <EnumValue Value="1" Switch="-cuda -o "$(IntDir)\$(InputName).cu.c"" DisplayName="Generate hybrid .c file (-cuda)" /> <EnumValue Value="2" Switch="-gpu -o "$(IntDir)\$(InputName).gpu"" DisplayName="Generate .gpu file (-gpu)" /> <EnumValue Value="3" Switch="-cubin -o "data\$(InputName).cubin"" DisplayName="Generate .cubin file (-cubin)" /> <EnumValue Value="4" Switch="-ptx -o "data\$(InputName).ptx"" DisplayName="Generate .ptx file (-ptx)" /> <EnumValue Value="5" Switch="-cubin -o "[OutputFile].cubin"" DisplayName="Custom CUBIN Filename" /> <EnumValue Value="6" Switch="-ptx -o "[OutputFile].ptx"" DisplayName="Custom PTX Filename" /> </Values> </EnumProperty> <StringProperty Name="OutputFile" DisplayName="Compiler Output Filename" Switch="[value]" /> <EnumProperty Name="compileout" DisplayName="Compiler Output (obj/cubin/ptx)" Description="Sets output as an OBJ, CUBIN, or PTX file" > <Values> <EnumValue Value="0" Switch=""$(IntDir)/$(InputName).cu.obj"" DisplayName=""$(IntDir)/$(InputName).cu.obj"" /> <EnumValue Value="1" Switch=""data/$(InputName).cubin"" DisplayName=""data/$(InputName).cubin"" /> <EnumValue Value="2" Switch=""data/$(InputName).ptx"" DisplayName=""data/$(InputName).ptx"" /> </Values> </EnumProperty> <StringProperty Name="OverrideCompileOutName" DisplayName="Alternate Compiler Output File (non-standard installation)" Switch="[value]" /> <EnumProperty Name="Arch1" DisplayName="GPU Architecture (1)" Description="Select GPU architecture (1) to use on the command line (-arch sm_10, sm_11, sm_12, sm_13, sm_20)" DefaultValue="10" > <Values> <EnumValue Value="0" DisplayName="0" /> <EnumValue Value="10" Switch="-gencode=arch=compute_10,code=\"sm_10,compute_10\"" DisplayName="sm_10" /> <EnumValue Value="11" Switch="-gencode=arch=compute_11,code=\"sm_11,compute_11\"" DisplayName="sm_11" /> <EnumValue Value="12" Switch="-gencode=arch=compute_12,code=\"sm_12,compute_12\"" DisplayName="sm_12" /> <EnumValue Value="13" Switch="-gencode=arch=compute_13,code=\"sm_13,compute_13\"" DisplayName="sm_13" /> <EnumValue Value="20" Switch="-gencode=arch=compute_20,code=\"sm_20,compute_20\"" DisplayName="sm_20" /> </Values> </EnumProperty> <EnumProperty Name="Arch2" DisplayName="GPU Architecture (2)" Description="Select GPU architecture (2) to use on the command line (-arch sm_10, sm_11, sm_12, sm_13, sm_20)" DefaultValue="20" > <Values> <EnumValue Value="0" DisplayName="0" /> <EnumValue Value="10" Switch="-gencode=arch=compute_10,code=\"sm_10,compute_10\"" DisplayName="sm_10" /> <EnumValue Value="11" Switch="-gencode=arch=compute_11,code=\"sm_11,compute_11\"" DisplayName="sm_11" /> <EnumValue Value="12" Switch="-gencode=arch=compute_12,code=\"sm_12,compute_12\"" DisplayName="sm_12" /> <EnumValue Value="13" Switch="-gencode=arch=compute_13,code=\"sm_13,compute_13\"" DisplayName="sm_13" /> <EnumValue Value="20" Switch="-gencode=arch=compute_20,code=\"sm_20,compute_20\"" DisplayName="sm_20" /> </Values> </EnumProperty> <EnumProperty Name="Arch3" DisplayName="GPU Architecture (3)" Description="Select GPU architecture (3) to use on the command line (-arch sm_10, sm_11, sm_12, sm_13, sm_20)" > <Values> <EnumValue Value="0" DisplayName="0" /> <EnumValue Value="10" Switch="-gencode=arch=compute_10,code=\"sm_10,compute_10\"" DisplayName="sm_10" /> <EnumValue Value="11" Switch="-gencode=arch=compute_11,code=\"sm_11,compute_11\"" DisplayName="sm_11" /> <EnumValue Value="12" Switch="-gencode=arch=compute_12,code=\"sm_12,compute_12\"" DisplayName="sm_12" /> <EnumValue Value="13" Switch="-gencode=arch=compute_13,code=\"sm_13,compute_13\"" DisplayName="sm_13" /> <EnumValue Value="20" Switch="-gencode=arch=compute_20,code=\"sm_20,compute_20\"" DisplayName="sm_20" /> </Values> </EnumProperty> <EnumProperty Name="CompilerPath" DisplayName="Path to nvcc.exe" Description="Specifies the path to the CUDA compiler, nvcc.exe " > <Values> <EnumValue Value="0" Switch=""$(CUDA_BIN_PATH)\nvcc.exe"" DisplayName="Installed Toolkit (uses CUDA_BIN_PATH environment varible)" /> <EnumValue Value="1" Switch=""[AlternateNvccPath]"" DisplayName="Use Alternate path to CUDA, specified below" /> </Values> </EnumProperty> <StringProperty Name="AlternateNvccPath" DisplayName="Alternate path to NVCC.exe (non-standard installation)" Switch="[value]\nvcc.exe" /> <BooleanProperty Name="Emulation" DisplayName="Emulation Mode" Description="Whether or not to generate emulated code." Switch="-deviceemu -D_DEVICEEMU" /> <BooleanProperty Name="FastMath" DisplayName="Use Fast Math" Category="Default" Description="Make use of the fast math library." Switch="-use_fast_math" /> <IntegerProperty Name="MaxRegCount" DisplayName="maxrregcount" Switch="-maxrregcount=[value]" DefaultValue="32" /> <BooleanProperty Name="PtxAsOptionV" DisplayName="Verbose PTXAS Output" Switch="--ptxas-options=-v" /> <BooleanProperty Name="CInterleavedPTX" DisplayName="Interleave C in PTXAS Output" Switch="--opencc-options -LIST:source=on" /> <StringProperty Name="ExtraNvccOptions" DisplayName="Extra Options" Description="Supply any additional command line options to NVCC" Switch="[value]" /> <StringProperty Name="Defines" DisplayName="Preprocessor Definitions" PropertyPageName="Preprocessor" Description="Specifies one or more preprocessor defines. (-D[macro])" Switch="-D[value]" Delimited="true" Inheritable="true" /> <BooleanProperty Name="Keep" DisplayName="Keep preprocessed files (.ptx, .cubin, cudafe1.c, cudafe1.cpp, cudafe1.gpu, etc.)" PropertyPageName="Preprocessor" Description="Specifies that preprocessor files generated by the CUDA compiler are not deleted." Switch="--keep" /> <EnumProperty Name="Warning" DisplayName="Warning Level" PropertyPageName="Hybrid CUDA/C++ Options" Description="Select how strict you want the compiler to be about checking for potentially suspect constructs. (/W0 - /W4)" DefaultValue="3" > <Values> <EnumValue Value="0" Switch="/W0" DisplayName="Off: Turn Off All Warnings (/W0)" /> <EnumValue Value="1" Switch="/W1" DisplayName="Level 1 (/W1)" /> <EnumValue Value="2" Switch="/W2" DisplayName="Level 2 (/W2)" /> <EnumValue Value="3" Switch="/W3" DisplayName="Level 3 (/W3)" /> <EnumValue Value="4" Switch="/W4" DisplayName="Level 4 (/W4)" /> </Values> </EnumProperty> <EnumProperty Name="Optimization" DisplayName="Optimization" Description="Select option for code optimization; choose Custom to use specific optimization options. (/Od, /O1, /O2, /Ox)" DefaultValue="2" > <Values> <EnumValue Value="0" Switch="/Od" DisplayName="Disabled (/Od)" /> <EnumValue Value="1" Switch="/O1" DisplayName="Minimize Size (/O1)" /> <EnumValue Value="2" Switch="/O2" DisplayName="Maximize Speed (/O2)" /> <EnumValue Value="3" Switch="/Ox" DisplayName="Full Optimization (/Ox)" /> </Values> </EnumProperty> <StringProperty Name="AddedDependencies" DisplayName="Source Dependencies" Description="Add additional CUDA file dependencies" Switch="[value]" /> <EnumProperty Name="RuntimeChecks" DisplayName="Basic Runtime Checks" PropertyPageName="Hybrid CUDA/C++ Options" Description="Perform basic runtime error checks, incompatible with any optimization type other than debug. (/RTCs, /RTCu, /RTC1)" > <Values> <EnumValue Value="0" Switch=" " DisplayName="Default" /> <EnumValue Value="1" Switch="/RTCs" DisplayName="Stack Frames (/RTCs)" /> <EnumValue Value="2" Switch="/RTCu" DisplayName="Uninitialized Variables (/RTCu)" /> <EnumValue Value="3" Switch="/RTC1" DisplayName="Both (/RTC1, equiv. to /RTCsu)" /> </Values> </EnumProperty> <EnumProperty Name="Runtime" DisplayName="Runtime Library" PropertyPageName="Hybrid CUDA/C++ Options" Description="Specify runtime library for linking. (/MT, /MTd, /MD, /MDd, /ML, /MLd)" > <Values> <EnumValue Value="0" Switch="/MT" DisplayName="Multi-Threaded (/MT)" /> <EnumValue Value="1" Switch="/MTd" DisplayName="Multi-Threaded Debug (/MTd)" /> <EnumValue Value="2" Switch="/MD" DisplayName="Multi-Threaded DLL (/MD)" /> <EnumValue Value="3" Switch="/MDd" DisplayName="Multi-Threaded Debug DLL (/MDd)" /> <EnumValue Value="4" Switch="/ML" DisplayName="Single-Threaded (/ML)" /> <EnumValue Value="5" Switch="/MLd" DisplayName="Single-Threaded Debug (/MLd)" /> </Values> </EnumProperty> <BooleanProperty Name="TypeInfo" DisplayName="Enable Run-Time Type Info" PropertyPageName="Hybrid CUDA/C++ Options" Description="Adds code for checking C++ object types at run time (runtime type information). (/GR)" Switch="/GR" /> <StringProperty Name="ExtraCppOptions" DisplayName="Extra C++ Options" PropertyPageName="Hybrid CUDA/C++ Options" Description="Supply any additional command line options to the host C++ compiler" Switch="[value]" /> </Properties> </CustomBuildRule> </Rules> </VisualStudioToolFile>