MathCUDA.vcxproj
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" InitialTargets="CheckDependencies" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{B3DD765E-694E-4494-BAD7-37BBF2942517}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>Math</RootNamespace>
<ProjectName>MathCUDA</ProjectName>
<CudaPath>$(CUDA_PATH_V7_0)</CudaPath>
<CudaToolkitCustomDir>$(CudaPath)</CudaToolkitCustomDir>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="$(SolutionDir)\CNTK.Cpp.props" />
<PropertyGroup>
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<UseDebugLibraries>false</UseDebugLibraries>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Choose>
<When Condition="Exists('$(CUDNN_PATH)')">
<PropertyGroup>
<UseCuDnn>true</UseCuDnn>
<CuDnnDefine>USE_CUDNN</CuDnnDefine>
<CuDnnIncPath>$(CUDNN_PATH)\include</CuDnnIncPath>
<CuDnnLibPath>$(CUDNN_PATH)\lib\x64</CuDnnLibPath>
<CuDnnLib>cudnn.lib</CuDnnLib>
<CuDnnDll>$(CUDNN_PATH)\bin\cudnn64_4.dll</CuDnnDll>
</PropertyGroup>
</When>
<Otherwise>
<PropertyGroup>
<UseCuDnn>false</UseCuDnn>
</PropertyGroup>
</Otherwise>
</Choose>
<PropertyGroup>
<IncludePath>..\Common\include;$(ACML_PATH)\include;$(CudaPath)\include;$(CUB_PATH);$(CuDnnIncPath);$(IncludePath)</IncludePath>
<LibraryPath>$(SolutionDir)$(Platform)\$(Configuration);$(ACML_PATH)\lib;$(CudaPath)\lib\$(Platform);$(CuDnnLibPath);$(LibraryPath)</LibraryPath>
<IntDir>$(IntDir)\MathCUDA\</IntDir>
</PropertyGroup>
<ImportGroup Label="ExtensionSettings">
<Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 7.0.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<CudaCodeGen>$(CNTK_CUDA_CODEGEN_DEBUG)</CudaCodeGen>
<CudaCodeGen Condition="'$(CudaCodeGen)'==''">compute_20,compute_20;compute_30,sm_30</CudaCodeGen>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<CudaCodeGen>$(CNTK_CUDA_CODEGEN_RELEASE)</CudaCodeGen>
<CudaCodeGen Condition="'$(CudaCodeGen)'==''">compute_30,sm_30;compute_35,sm_35;compute_50,sm_50;</CudaCodeGen>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<PreprocessorDefinitions>NO_SYNC; WIN32; _WINDOWS; _USRDLL; MATH_EXPORTS; $(CuDnnDefine); %(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\Common\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<FloatingPointModel>Fast</FloatingPointModel>
<OpenMPSupport>true</OpenMPSupport>
<TreatWarningAsError>true</TreatWarningAsError>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>cudart.lib;cublas.lib;cusparse.lib;curand.lib;libacml_mp_dll.lib;%(AdditionalDependencies)</AdditionalDependencies>
<Profile>true</Profile>
<DelayLoadDLLs>cublas64_70.dll;cusparse64_70.dll;curand64_70.dll;cudart64_70.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Lib>
<AdditionalLibraryDirectories>$(CuDnnLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>$(CuDnnLib)</AdditionalDependencies>
</Lib>
<CudaCompile>
<TargetMachinePlatform>64</TargetMachinePlatform>
<GenerateLineInfo>true</GenerateLineInfo>
<AdditionalCompilerOptions>/WX</AdditionalCompilerOptions>
<CodeGeneration>$(CudaCodeGen)</CodeGeneration>
<FastMath>true</FastMath>
<GPUDebugInfo>false</GPUDebugInfo>
<GPUDebugInfo Condition="'$(CNTK_CUDA_DEVICE_DEBUGINFO)'=='1'">true</GPUDebugInfo>
<AdditionalOptions>-Xcudafe "--diag_suppress=field_without_dll_interface" %(AdditionalOptions)</AdditionalOptions>
</CudaCompile>
<PostBuildEvent>
<Command>if exist "$(CudaPath)\bin\cublas64_*.dll" (xcopy /Y "$(CudaPath)\bin\cublas64_*.dll" $(OutputPath))
if exist "$(CudaPath)\bin\cusparse64_*.dll" (xcopy /Y "$(CudaPath)\bin\cusparse64_*.dll" $(OutputPath))
if exist "$(CudaPath)\bin\curand64_*.dll" (xcopy /Y "$(CudaPath)\bin\curand64_*.dll" $(OutputPath))
if exist "$(CudaPath)\bin\cudart64_*.dll" (xcopy /Y "$(CudaPath)\bin\cudart64_*.dll" $(OutputPath))
if exist "$(CuDnnDll)" (xcopy /Y "$(CuDnnDll)" $(OutputPath))
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>_DEBUG; %(PreprocessorDefinitions)</PreprocessorDefinitions>
<Optimization>Disabled</Optimization>
<MinimalRebuild>false</MinimalRebuild>
</ClCompile>
<Link>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>NDEBUG; %(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
<FloatingPointExceptions>false</FloatingPointExceptions>
<AdditionalOptions>/d2Zi+ %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
<CudaCompile>
<HostDebugInfo>false</HostDebugInfo>
</CudaCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\Common\Include\File.h" />
<ClInclude Include="..\Common\Include\fileutil.h" />
<ClInclude Include="ColumnQuantizer.h" />
<ClInclude Include="CommonMatrix.h" />
<ClInclude Include="cudabasetypes.h" />
<ClInclude Include="cudadevice.h" />
<ClInclude Include="cudalattice.h" />
<ClInclude Include="cudalatticeops.cu.h" />
<ClInclude Include="cudalatticeops.h" />
<ClInclude Include="cudalib.h" />
<ClInclude Include="CuDnnConvolutionEngine.cuh" />
<ClInclude Include="CuDnnConvolutionEngine.h" />
<ClInclude Include="GPUDataTransferer.h" />
<ClInclude Include="GPUTensor.h" />
<ClInclude Include="latticefunctionskernels.h" />
<ClInclude Include="TensorOps.h" />
<ClInclude Include="ValueQuantizer.h" />
<None Include="GPUWatcher.h">
<FileType>CppHeader</FileType>
</None>
<None Include="GPUSparseMatrix.h">
<FileType>CppHeader</FileType>
</None>
<ClInclude Include="Helpers.h" />
<ClInclude Include="MatrixQuantizerGPU.h" />
<ClInclude Include="stdafx.h" />
<ClInclude Include="targetver.h" />
</ItemGroup>
<ItemGroup>
<CudaCompile Include="GPUTensor.cu">
<InterleaveSourceInPTX Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</InterleaveSourceInPTX>
<Keep Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</Keep>
<FileType>CppCode</FileType>
</CudaCompile>
<CudaCompile Include="cudalatticeops.cu">
<FileType>CppCode</FileType>
</CudaCompile>
<CudaCompile Include="GPUSparseMatrix.cu">
<FileType>CppCode</FileType>
</CudaCompile>
<CudaCompile Include="GPUWatcher.cu">
<FileType>CppCode</FileType>
</CudaCompile>
<ClCompile Include="..\Common\ExceptionWithCallStack.cpp" />
<ClCompile Include="cudalattice.cpp" />
<ClCompile Include="cudalib.cpp" />
<CudaCompile Include="CuDnnConvolutionEngine.cu">
<FileType>CppCode</FileType>
</CudaCompile>
<ClCompile Include="GPUDataTransferer.cpp" />
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
</ClCompile>
<CudaCompile Include="MatrixQuantizerGPU.cu">
<FileType>CppCode</FileType>
</CudaCompile>
<CudaCompile Include="MatrixQuantizer_kernel.cu">
<ExcludedFromBuild>true</ExcludedFromBuild>
<FileType>CppCode</FileType>
</CudaCompile>
</ItemGroup>
<ItemGroup>
<CudaCompile Include="GPUMatrix.cu">
<FileType>CppCode</FileType>
<Keep Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</Keep>
<InterleaveSourceInPTX Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</InterleaveSourceInPTX>
</CudaCompile>
<CudaCompile Include="GPUMatrixCUDAKernels.cuh">
<ExcludedFromBuild>true</ExcludedFromBuild>
<FileType>CppCode</FileType>
</CudaCompile>
</ItemGroup>
<ItemGroup>
<None Include="GPUMatrix.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 7.0.targets" />
</ImportGroup>
<Target Name="CheckDependencies">
<Error Condition="!Exists('$(CUB_PATH)')" Text="CNTK requires the NVIDIA CUB library to build. Please see https://github.com/Microsoft/CNTK/wiki/Setup-CNTK-on-Windows#cuda for installation instructions." />
<Warning Condition="!Exists('$(CUDNN_PATH)')" Text="CNTK requires the NVIDIA cuDNN library to build. Please see https://github.com/Microsoft/CNTK/wiki/Setup-CNTK-on-Windows#cuda for installation instructions." />
</Target>
</Project>