summaryrefslogtreecommitdiffstats
path: root/build/Cuda.rules
diff options
context:
space:
mode:
Diffstat (limited to 'build/Cuda.rules')
-rw-r--r--build/Cuda.rules358
1 files changed, 358 insertions, 0 deletions
diff --git a/build/Cuda.rules b/build/Cuda.rules
new file mode 100644
index 0000000..733aa1f
--- /dev/null
+++ b/build/Cuda.rules
@@ -0,0 +1,358 @@
+<?xml version="1.0" encoding="utf-8"?>
+<VisualStudioToolFile
+ Name="CUDA Build Rule v2.1.0"
+ Version="8,00"
+ >
+ <Rules>
+ <CustomBuildRule
+ Name="CUDA Build Rule"
+ DisplayName="CUDA Build Rule v2.1.0"
+ CommandLine="echo [CompilerPath] [Keep] [ExtraNvccOptions] [Platform] [Arch] -ccbin &quot;$(VCInstallDir)bin&quot; [Emulation] [FastMath] [Defines] -Xcompiler &quot;/EHsc [Warning] /nologo [Optimization] /Zi [RuntimeChecks] [Runtime] [TypeInfo] [ExtraCppOptions]&quot; [Include] [MaxRegCount] [PtxAsOptionV] [NvccCompilation] &quot;$(InputPath)&quot; &#x0D;&#x0A; [CompilerPath] [Keep] [ExtraNvccOptions] [Platform] [Arch] -ccbin &quot;$(VCInstallDir)bin&quot; [Emulation] [FastMath] [Defines] -Xcompiler &quot;/EHsc [Warning] /nologo [Optimization] /Zi [RuntimeChecks] [Runtime] [TypeInfo] [ExtraCppOptions]&quot; [Include] [MaxRegCount] [ptxasoptionv] [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[value]"
+ DefaultValue="&quot;$(CUDA_INC_PATH)&quot;"
+ Delimited="true"
+ Delimiters=";"
+ Inheritable="true"
+ />
+ <BooleanProperty
+ Name="Debug"
+ DisplayName="Generate Debug Information"
+ Description="Specifies whether or not debugging information is generated by the CUDA compiler. (-D_DEBUG)"
+ Switch="-D_DEBUG"
+ />
+ <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="-m32 -cubin -o &quot;data\$(InputName).cubin&quot;"
+ DisplayName="Generate .cubin file (-cubin)"
+ />
+ <EnumValue
+ Value="4"
+ Switch="-ptx -o &quot;$(IntDir)\$(InputName).ptx&quot;"
+ DisplayName="Generate .ptx file (-ptx)"
+ />
+ </Values>
+ </EnumProperty>
+ <EnumProperty
+ Name="compileout"
+ DisplayName="Compiler Output (obj/cubin)"
+ Description="Sets output as an OBJ or cubin 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;"
+ />
+ </Values>
+ </EnumProperty>
+ <EnumProperty
+ Name="Arch"
+ DisplayName="GPU Architecture"
+ Description="Select option for the GPU architecture to use on the command line (-arch sm_10, sm_11, sm_12, sm_13)"
+ DefaultValue="10"
+ >
+ <Values>
+ <EnumValue
+ Value="10"
+ Switch="-arch sm_10"
+ DisplayName="sm_10"
+ />
+ <EnumValue
+ Value="11"
+ Switch="-arch sm_11"
+ DisplayName="sm_11"
+ />
+ <EnumValue
+ Value="12"
+ Switch="-arch sm_12"
+ DisplayName="sm_12"
+ />
+ <EnumValue
+ Value="13"
+ Switch="-arch sm_13"
+ DisplayName="sm_13"
+ />
+ </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="PtxAsOptionV"
+ Switch="--ptxas-options=-v"
+ />
+ <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]"
+ />
+ <EnumProperty
+ Name="Platform"
+ DisplayName="Platform"
+ >
+ <Values>
+ <EnumValue
+ Value="0"
+ DisplayName="Default"
+ />
+ <EnumValue
+ Value="1"
+ Switch="-m32"
+ DisplayName="Win32"
+ />
+ <EnumValue
+ Value="2"
+ Switch="-m64"
+ DisplayName="x64"
+ />
+ </Values>
+ </EnumProperty>
+ </Properties>
+ </CustomBuildRule>
+ </Rules>
+</VisualStudioToolFile>