https://github.com/Microsoft/CNTK
Raw File
Tip revision: af267cf4457db9941bb4528efc939e8e4efb0638 authored by renbo on 04 June 2019, 08:19:34 UTC
update onnx_repo submodule from release_2.7
Tip revision: af267cf
CNTK.Cpp.props
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(SolutionDir)\CNTK.Common.props" />
  <PropertyGroup>
    <CudaVersion />
    <CudaVersion Condition="Exists('$(CUDA_PATH_V10_0)') And '$(CudaVersion)' == ''">10.0</CudaVersion>

    <NvmlDll>%ProgramW6432%\NVIDIA Corporation\NVSMI\nvml.dll</NvmlDll>
    <NvmlDll Condition="Exists('c:\local\nvsmi9\NVSMI\nvml.dll')">c:\local\nvsmi9\NVSMI\nvml.dll</NvmlDll>

    <HasOpenCv>false</HasOpenCv>
    <HasOpenCv Condition="Exists('$(OPENCV_PATH)') Or Exists('$(OPENCV_PATH_V31)')">true</HasOpenCv>
    
    <HasProtobuf>false</HasProtobuf>
    <HasProtobuf Condition="Exists('$(PROTOBUF_PATH)')">true</HasProtobuf>

    <HasBoost>false</HasBoost>
    <HasBoost Condition="Exists('$(BOOST_INCLUDE_PATH)') And Exists('$(BOOST_LIB_PATH)')">true</HasBoost>

    <UseZip>false</UseZip>
    <UseZip Condition="Exists('$(ZLIB_PATH)')">true</UseZip>

    <HasMultiverso>false</HasMultiverso>
    <HasMultiverso Condition="Exists('$(SolutionDir)\Source\Multiverso\include\multiverso')">true</HasMultiverso>

    <IsUWP>false</IsUWP>
    <IsUWP Condition="'$(Configuration)'=='Debug_UWP' Or '$(Configuration)'=='Release_UWP'">true</IsUWP>
  </PropertyGroup>

  <PropertyGroup Condition="!$(IsUWP)">
    <OutputSuffix />
  </PropertyGroup>
  
  <PropertyGroup Condition="$(IsUWP)">
    <MathLibrary>OpenBLAS</MathLibrary>
    <CNTKCustomOpenBLASVersion>2</CNTKCustomOpenBLASVersion>
    <MathLibraryName>OpenBLAS library (Version: $(CNTKCustomOpenBLASVersion))</MathLibraryName>
    <CNTKCustomOpenBLASPath>$(CNTK_OPENBLAS_PATH)\$(CNTKCustomOpenBLASVersion)</CNTKCustomOpenBLASPath>    
    <MathIncludePath>$(CNTKCustomOpenBLASPath)</MathIncludePath>
    <MathLibraryPath>$(CNTKCustomOpenBLASPath)\lib\x64\RELEASE</MathLibraryPath>
    <MathDefine>USE_OPENBLAS;OS_WINNT;ARCH_X86_64;C_MSVC</MathDefine>
    <MathLinkLibrary>libopenblas.lib</MathLinkLibrary>
    <MathDelayLoad>libopenblas.dll</MathDelayLoad>
    <MathPostBuildCopyPattern>$(MathLibraryPath)\*.dll</MathPostBuildCopyPattern>
    <OutputSuffix>_app</OutputSuffix>
    <AppContainerApplication>true</AppContainerApplication>
    <ApplicationType>Windows Store</ApplicationType>
    <WindowsTargetPlatformVersion>$(UCRTVersion)</WindowsTargetPlatformVersion>
    <TargetPlatformMinVersion>10.0.10586.0</TargetPlatformMinVersion> <!-- Windows 10, November 2015 -->
    <ApplicationTypeRevision>10.0</ApplicationTypeRevision>
    <DefaultLanguage>en-US</DefaultLanguage>
  </PropertyGroup>

  <PropertyGroup>
    <!-- If an executable links Cntk.Reader-$(CntkComponentVersion).lib, it has dependency on Cntk.Common.dll, Cntk.Math.dll and Cntk.PerformanceProfiler.dll -->
    <ReaderLibs>Cntk.Reader$(OutputSuffix)-$(CntkComponentVersion).lib;Cntk.Common$(OutputSuffix)-$(CntkComponentVersion).lib;Cntk.Math$(OutputSuffix)-$(CntkComponentVersion).lib;</ReaderLibs>
  </PropertyGroup>

  <PropertyGroup Condition="!$(IsUWP)">
    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
    <MathLibrary>MKL</MathLibrary>
    <MathIncludePath>$(MKL_PATH)\include</MathIncludePath>
    <MathDefine>USE_MKL</MathDefine>
    <!-- Only non-UWP configurations consume PerformanceProfiler -->
    <ReaderLibs>Cntk.PerformanceProfiler-$(CntkComponentVersion).lib;$(ReaderLibs)</ReaderLibs>
    <MathLibraryName>MKL Library</MathLibraryName>
    <MathLibraryPath>$(MKL_PATH)\lib</MathLibraryPath>
    <MathLinkLibrary>mklml.lib</MathLinkLibrary>
    <MathDelayLoad>mklml.dll</MathDelayLoad>
    <MathPostBuildCopyPattern>$(MathLibraryPath)\*.dll</MathPostBuildCopyPattern>
    <HasMklDnn>false</HasMklDnn>
    <!-- disable MKL-DNN until we pick up the fix for AMD cache size https://github.com/intel/mkl-dnn/commit/ccfbf83ab489b42f7452b6701498b07c28cdb502
    <HasMklDnn Condition="Exists('$(MKL_PATH)\include\mkldnn.h')">true</HasMklDnn>
    <MathDefine Condition="$(HasMklDnn)">$(MathDefine);USE_MKLDNN</MathDefine>
    -->
    <MathLinkLibrary Condition="$(HasMklDnn)">$(MathLinkLibrary);mkldnn.lib</MathLinkLibrary>
    <MathDelayLoad Condition="$(HasMklDnn)">$(MathDelayLoad);mkldnn.dll</MathDelayLoad>
  </PropertyGroup>
  
  <PropertyGroup Condition="$(UseZip)">
    <ZipInclude>$(ZLIB_PATH)\include;$(ZLIB_PATH)\lib\libzip\include;</ZipInclude>
    <ZipDefine>USE_ZIP</ZipDefine>
    <ZipLibPath>$(ZLIB_PATH)\lib;</ZipLibPath>
    <ZipLibs>zlib.lib;zip.lib;</ZipLibs>
  </PropertyGroup>

  <PropertyGroup Condition="Exists('$(OPENCV_PATH)')">
    <OpenCvPath>$(OPENCV_PATH)</OpenCvPath>
    <OpenCvVersion>300</OpenCvVersion>
  </PropertyGroup>

  <PropertyGroup Condition="Exists('$(OPENCV_PATH_V31)')">
    <OpenCvPath>$(OPENCV_PATH_V31)</OpenCvPath>
    <OpenCvVersion>310</OpenCvVersion>
  </PropertyGroup>

  <PropertyGroup Condition="$(HasOpenCv)">
    <OpenCvInclude>$(OpenCvPath)\include;</OpenCvInclude>
    <OpenCvWorld Condition="$(ReleaseBuild)">opencv_world$(OpenCvVersion)</OpenCvWorld>
    <OpenCvWorld Condition="$(DebugBuild)">opencv_world$(OpenCvVersion)d</OpenCvWorld>
    <OpenCvLib>$(OpenCvWorld).lib</OpenCvLib>
    <OpenCvLibPath>$(OpenCvPath)\x64\vc14\lib</OpenCvLibPath>
    <OpenCvBinPath>$(OpenCvPath)\x64\vc14\bin</OpenCvBinPath>
  </PropertyGroup>

  <PropertyGroup Condition="$(HasProtobuf)">
    <ProtobufInclude>$(PROTOBUF_PATH)\include;</ProtobufInclude>
    <ProtobufLibPath>$(PROTOBUF_PATH)\lib;</ProtobufLibPath>
    <ProtobufLib Condition="$(ReleaseBuild)">libprotobuf.lib</ProtobufLib>
    <ProtobufLib Condition="$(DebugBuild)">libprotobufd.lib</ProtobufLib>
  </PropertyGroup>

  <PropertyGroup Condition="'$(CudaVersion)' == '10.0'">
    <CudaPath>$(CUDA_PATH_V10_0)</CudaPath>
    <CudaRuntimeDll>cudart64_100.dll</CudaRuntimeDll>
    <CudaDlls>cublas64_100.dll;cusparse64_100.dll;curand64_100.dll;$(CudaRuntimeDll)</CudaDlls>

    <!-- Use NvidiaCompute to define nvcc target architectures (will generate code to support them all, i.e. fat-binary, in release mode)
    In debug mode we only include cubin/PTX for 30 and rely on PTX / JIT to generate the required native cubin format
    http://docs.nvidia.com/cuda/pascal-compatibility-guide/index.html#building-applications-with-pascal-support -->
    <NvidiaCompute Condition="$(DebugBuild)">$(CNTK_CUDA_CODEGEN_DEBUG)</NvidiaCompute>
    <NvidiaCompute Condition="$(DebugBuild) And '$(NvidiaCompute)'==''">compute_30,sm_30</NvidiaCompute>

    <NvidiaCompute Condition="$(ReleaseBuild)">$(CNTK_CUDA_CODEGEN_RELEASE)</NvidiaCompute>
    <NvidiaCompute Condition="$(ReleaseBuild) And '$(NvidiaCompute)'==''">compute_30,sm_30;compute_35,sm_35;compute_50,sm_50;compute_60,sm_60;compute_61,sm_61;compute_70,sm_70;compute_75,sm_75</NvidiaCompute>
  </PropertyGroup>

  <PropertyGroup>
    <CudaLibs>cudart.lib;cublas.lib;cusparse.lib;curand.lib</CudaLibs>
    <CudaInclude>$(CudaPath)\include</CudaInclude>
    <CudaLibPath>$(CudaPath)\lib\$(Platform)</CudaLibPath>

    <CudaMsbuildPath Condition="'$(CudaMsbuildPath)' == ''">$(VCTargetsPath)\BuildCustomizations</CudaMsbuildPath>
  </PropertyGroup>

  <PropertyGroup>
    <PlatformToolset>v141</PlatformToolset>
  </PropertyGroup>

  <PropertyGroup Condition="Exists('$(HALIDE_PATH)')">
    <HalidePath>$(HALIDE_PATH)</HalidePath>
    <HalideInclude>$(HALIDE_PATH)\include;</HalideInclude>
    <HalideLibPath>$(HALIDE_PATH)\Release;</HalideLibPath>
    <HalideLib>halide.lib</HalideLib>
  </PropertyGroup>
 
  <!-- TODO warn if ConfigurationType not (yet) defined -->

  <PropertyGroup Condition="'$(ConfigurationType)' == 'StaticLibrary'">
    <UseDebugLibraries>$(DebugBuild)</UseDebugLibraries>
    <CharacterSet>Unicode</CharacterSet>
    <WholeProgramOptimization>$(ReleaseBuild)</WholeProgramOptimization>
    <LinkIncremental>$(DebugBuild)</LinkIncremental>
  </PropertyGroup>

  <ItemDefinitionGroup>
    <ClCompile>
      <PreprocessorDefinitions>CNTK_VERSION="$(CntkVersion)";CNTK_VERSION_BANNER="$(CntkVersionBanner)";CNTK_COMPONENT_VERSION="$(CntkComponentVersion)"</PreprocessorDefinitions>
      <!-- UWP does not use MPI -->
      <PreprocessorDefinitions Condition="!$(IsUWP)">%(PreprocessorDefinitions);HAS_MPI=1</PreprocessorDefinitions>
      <PreprocessorDefinitions Condition="'$(CudaVersion)' == '10.0'">%(PreprocessorDefinitions);CUDA_NO_HALF;__CUDA_NO_HALF_OPERATORS__</PreprocessorDefinitions>
    </ClCompile>
  </ItemDefinitionGroup>

  <ItemDefinitionGroup Condition="$(IsUWP)">
    <ClCompile>
      <CompileAsWinRT>false</CompileAsWinRT>
      <PreprocessorDefinitions>CNTK_UWP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link Condition="$(ReleaseBuild)">
      <AdditionalOptions>/nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib %(AdditionalOptions)</AdditionalOptions>
    </Link>
    <Link Condition="$(DebugBuild)">
      <AdditionalOptions>/nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib %(AdditionalOptions)</AdditionalOptions>
    </Link>
  </ItemDefinitionGroup>

  <ItemDefinitionGroup Condition="'$(ConfigurationType)' == 'StaticLibrary'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <TreatWarningAsError>true</TreatWarningAsError>
      <SDLCheck>true</SDLCheck>
      <OpenMPSupport>true</OpenMPSupport>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
    </Link>
  </ItemDefinitionGroup>

  <ItemDefinitionGroup Condition="'$(ConfigurationType)' == 'StaticLibrary' And $(DebugBuild)">
    <ClCompile>
      <Optimization>Disabled</Optimization>
      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <StackReserveSize>100000000</StackReserveSize>
    </Link>
  </ItemDefinitionGroup>

  <ItemDefinitionGroup Condition="$(ReleaseBuild) And !$(NoOptBuild)">
    <ClCompile>
      <Optimization>MaxSpeed</Optimization>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <OptimizeReferences>true</OptimizeReferences>
      <Profile>true</Profile>
    </Link>
  </ItemDefinitionGroup>

  <ItemDefinitionGroup Condition="$(NoOptBuild)">
    <ClCompile>
      <Optimization>Disabled</Optimization>
      <FunctionLevelLinking>false</FunctionLevelLinking>
      <IntrinsicFunctions>false</IntrinsicFunctions>
    </ClCompile>
    <Link>
      <EnableCOMDATFolding>false</EnableCOMDATFolding>
      <OptimizeReferences>false</OptimizeReferences>
      <Profile>false</Profile>
    </Link>
  </ItemDefinitionGroup>

  <PropertyGroup Condition="$(NoOptBuild)" Label="Configuration">
    <UseDebugLibraries>false</UseDebugLibraries>
    <WholeProgramOptimization>false</WholeProgramOptimization>
    <LinkIncremental>true</LinkIncremental>
  </PropertyGroup>

</Project>
back to top