Revision c27018b9e09d17578bec7c18520250ef98e278eb authored by Nikola Milosavljevic on 06 February 2018, 10:56:01 UTC, committed by Nikola Milosavljevic on 06 February 2018, 11:07:08 UTC
When saving a legacy model, the set of output nodes in the saved
model is currently always empty, so information about network
outputs is lost. After this change the set of output nodes will be
equal to outputs of the root function.
1 parent d615602
Raw File
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_V9_0)') And '$(CudaVersion)' == ''">9.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>
    <OutputSuffix Condition="!$(IsUWP)"/>

  </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>10.0.14393.0</WindowsTargetPlatformVersion>
    <WindowsTargetPlatformMinVersion>10.0.10586.0</WindowsTargetPlatformMinVersion>
    <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)">
    <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>
    <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)' == '9.0'">
    <CudaPath>$(CUDA_PATH_V9_0)</CudaPath>
    <CudaRuntimeDll>cudart64_90.dll</CudaRuntimeDll>
    <CudaDlls>cublas64_90.dll;cusparse64_90.dll;curand64_90.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</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_COMPONENT_VERSION="$(CntkComponentVersion)"</PreprocessorDefinitions>
      <!-- UWP does not use MPI -->
      <PreprocessorDefinitions Condition="!$(IsUWP)">%(PreprocessorDefinitions);HAS_MPI=1</PreprocessorDefinitions>
      <PreprocessorDefinitions Condition="'$(CudaVersion)' == '9.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