boinc/win_build/cuda.rules

456 lines
14 KiB
XML

<?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 &quot;$(VCInstallDir)bin&quot; [Emulation] [Debug] [FastMath] [Defines] -I&quot;$(CUDA_INC_PATH)&quot; [Include] -Xcompiler &quot;/EHsc [Warning] /nologo [Optimization] /Zi [RuntimeChecks] [Runtime] [TypeInfo] [ExtraCppOptions]&quot; [MaxRegCount] [PtxAsOptionV] [Arch1] [Arch2] [Arch3] [NvccCompilation] &quot;$(InputPath)&quot; &#x0D;&#x0A; [CompilerPath] [Keep] [CInterleavedPTX] [ExtraNvccOptions] [Arch1] [Arch2] [Arch3] -ccbin &quot;$(VCInstallDir)bin&quot; [Emulation] [Debug] [FastMath] [Defines] -I&quot;$(CUDA_INC_PATH)&quot; [Include] -Xcompiler &quot;/EHsc [Warning] /nologo [Optimization] /Zi [RuntimeChecks] [Runtime] [TypeInfo] [ExtraCppOptions]&quot; [Include] [MaxRegCount] [ptxasoptionv] [Arch1] [Arch2] [Arch3] [NvccCompilation] &quot;$(InputPath)&quot;"
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&quot;[value]&quot;"
DefaultValue="&quot;$(CUDA_INC_PATH)&quot;"
Inheritable="true"
Delimited="true"
Delimiters=";"
/>
<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 &quot;$(IntDir)\$(InputName).cu.obj&quot;"
DisplayName="Generate hybrid object file (--compile / -c)"
/>
<EnumValue
Value="1"
Switch="-cuda -o &quot;$(IntDir)\$(InputName).cu.c&quot;"
DisplayName="Generate hybrid .c file (-cuda)"
/>
<EnumValue
Value="2"
Switch="-gpu -o &quot;$(IntDir)\$(InputName).gpu&quot;"
DisplayName="Generate .gpu file (-gpu)"
/>
<EnumValue
Value="3"
Switch="-cubin -o &quot;data\$(InputName).cubin&quot;"
DisplayName="Generate .cubin file (-cubin)"
/>
<EnumValue
Value="4"
Switch="-ptx -o &quot;data\$(InputName).ptx&quot;"
DisplayName="Generate .ptx file (-ptx)"
/>
<EnumValue
Value="5"
Switch="-cubin -o &quot;[OutputFile].cubin&quot;"
DisplayName="Custom CUBIN Filename"
/>
<EnumValue
Value="6"
Switch="-ptx -o &quot;[OutputFile].ptx&quot;"
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="&quot;$(IntDir)/$(InputName).cu.obj&quot;"
DisplayName="&quot;$(IntDir)/$(InputName).cu.obj&quot;"
/>
<EnumValue
Value="1"
Switch="&quot;data/$(InputName).cubin&quot;"
DisplayName="&quot;data/$(InputName).cubin&quot;"
/>
<EnumValue
Value="2"
Switch="&quot;data/$(InputName).ptx&quot;"
DisplayName="&quot;data/$(InputName).ptx&quot;"
/>
</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"
Switch=""
DisplayName="0"
/>
<EnumValue
Value="10"
Switch="-gencode=arch=compute_10,code=\&quot;sm_10,compute_10\&quot;"
DisplayName="sm_10"
/>
<EnumValue
Value="11"
Switch="-gencode=arch=compute_11,code=\&quot;sm_11,compute_11\&quot;"
DisplayName="sm_11"
/>
<EnumValue
Value="12"
Switch="-gencode=arch=compute_12,code=\&quot;sm_12,compute_12\&quot;"
DisplayName="sm_12"
/>
<EnumValue
Value="13"
Switch="-gencode=arch=compute_13,code=\&quot;sm_13,compute_13\&quot;"
DisplayName="sm_13"
/>
<EnumValue
Value="20"
Switch="-gencode=arch=compute_20,code=\&quot;sm_20,compute_20\&quot;"
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"
Switch=""
DisplayName="0"
/>
<EnumValue
Value="10"
Switch="-gencode=arch=compute_10,code=\&quot;sm_10,compute_10\&quot;"
DisplayName="sm_10"
/>
<EnumValue
Value="11"
Switch="-gencode=arch=compute_11,code=\&quot;sm_11,compute_11\&quot;"
DisplayName="sm_11"
/>
<EnumValue
Value="12"
Switch="-gencode=arch=compute_12,code=\&quot;sm_12,compute_12\&quot;"
DisplayName="sm_12"
/>
<EnumValue
Value="13"
Switch="-gencode=arch=compute_13,code=\&quot;sm_13,compute_13\&quot;"
DisplayName="sm_13"
/>
<EnumValue
Value="20"
Switch="-gencode=arch=compute_20,code=\&quot;sm_20,compute_20\&quot;"
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)"
DefaultValue="0"
>
<Values>
<EnumValue
Value="0"
Switch=""
DisplayName="0"
/>
<EnumValue
Value="10"
Switch="-gencode=arch=compute_10,code=\&quot;sm_10,compute_10\&quot;"
DisplayName="sm_10"
/>
<EnumValue
Value="11"
Switch="-gencode=arch=compute_11,code=\&quot;sm_11,compute_11\&quot;"
DisplayName="sm_11"
/>
<EnumValue
Value="12"
Switch="-gencode=arch=compute_12,code=\&quot;sm_12,compute_12\&quot;"
DisplayName="sm_12"
/>
<EnumValue
Value="13"
Switch="-gencode=arch=compute_13,code=\&quot;sm_13,compute_13\&quot;"
DisplayName="sm_13"
/>
<EnumValue
Value="20"
Switch="-gencode=arch=compute_20,code=\&quot;sm_20,compute_20\&quot;"
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="&quot;$(CUDA_BIN_PATH)\nvcc.exe&quot;"
DisplayName="Installed Toolkit (uses CUDA_BIN_PATH environment varible)"
/>
<EnumValue
Value="1"
Switch="&quot;[AlternateNvccPath]&quot;"
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>