https://github.com/Microsoft/CNTK
Tip revision: 1fc15ed1058afc48ade968758b2d4d23974f156d authored by Guoli Ye on 21 February 2020, 06:34:44 UTC
multithread GPU code checkin, no speedup though due to the stream in kernel function
multithread GPU code checkin, no speedup though due to the stream in kernel function
Tip revision: 1fc15ed
CNTKv2LibraryDll.vcxproj
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" InitialTargets="CheckDependencies" ToolsVersion="15.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_NoOpt|x64">
<Configuration>Release_NoOpt</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_CpuOnly|x64">
<Configuration>Debug_CpuOnly</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_CpuOnly|x64">
<Configuration>Release_CpuOnly</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_UWP|x64">
<Configuration>Debug_UWP</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_UWP|x64">
<Configuration>Release_UWP</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{E5606ECE-48CA-4464-BB12-09D81D02B9EF}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>CNTKv2LibraryDll</RootNamespace>
<ProjectName>CNTKv2LibraryDll</ProjectName>
</PropertyGroup>
<Import Project="$(SolutionDir)\CNTK.Cpp.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="$(DebugBuild)" Label="Configuration">
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</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="$(DebugBuild)">
<LinkIncremental>true</LinkIncremental>
<TargetName>Cntk.Core$(OutputSuffix)-$(CntkComponentVersion)</TargetName>
</PropertyGroup>
<PropertyGroup Condition="$(ReleaseBuild)">
<TargetName>Cntk.Core$(OutputSuffix)-$(CntkComponentVersion)</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="$(IsUWP)">
<ClCompile>
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>.\proto\onnx;.\proto\onnx\onnx_repo;.\API;.\API\Internals;.\proto;$(BOOST_INCLUDE_PATH);$(SolutionDir)\Source\CNTKv2LibraryDll;$(SolutionDir)Source\SGDLib;$(SolutionDir)Source\Readers\ReaderLib;$(SolutionDir)Source\ComputationNetworkLib;$(SolutionDir)Source\SequenceTrainingLib;$(SolutionDir)Source\Math;$(SolutionDir)Source\Common\Include;$(SolutionDir)Source\CNTK\BrainScript;$(SolutionDir)Source\ActionsLib;$(MSMPI_INC);$(NvmlInclude);$(ProtobufInclude);$(SolutionDir)Source\PerformanceProfilerDll;..\..\external\gsl\include;$(ProjectDir)Generated\Windows</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'!$(IsUWP)'">$(SolutionDir)Source\1BitSGD;$(ProjectDir)Generated\Windows;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'!$(IsUWP)'">CNTK_PARALLEL_TRAINING_SUPPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<OpenMPSupport>true</OpenMPSupport>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(SolutionDir)Source\ComputationNetworkLib;$(SolutionDir)Source\Math;$(MSMPI_LIB64);$(SolutionDir)$(Platform)\$(Configuration);$(NvmlLibPath);$(ProtobufLibPath)</AdditionalLibraryDirectories>
<AdditionalDependencies>$(ReaderLibs);Cntk.Common$(OutputSuffix)-$(CntkComponentVersion).lib;Cntk.ComputationNetwork$(OutputSuffix)-$(CntkComponentVersion).lib;Cntk.SequenceTrainingLib$(OutputSuffix)-$(CntkComponentVersion).lib;$(ProtobufLib);%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PreBuildEvent>
<Command>prebuild.bat "$(Configuration)" "$(CNTK_MKL_SEQUENTIAL)" "$(CudaPath)" "$(CUDNN_PATH)" "$(CUB_PATH)" "$(CNTK_ENABLE_ASGD)"</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="$(DebugBuild)">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>ONNX_NAMESPACE=onnx;ONNX_ML=1;ONNX_V1_OPSCHEMA_COMPAT;CNTKV2LIBRARYDLL;WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<TreatWarningAsError>true</TreatWarningAsError>
<DisableSpecificWarnings>4800;4610;4512;4510;4267;4127;4125;4100;4456;4189;4996;4503;4146</DisableSpecificWarnings>
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<DelayLoadDLLs>Cntk.Math$(OutputSuffix)-$(CntkComponentVersion).dll; nvml.dll; $(CudaRuntimeDll); msmpi.dll;</DelayLoadDLLs>
<DelayLoadDLLs Condition="!$(IsUWP)">%(DelayLoadDLLs); Cntk.PerformanceProfiler-$(CntkComponentVersion).dll;Cntk.DelayLoadedExtensions-$(CntkComponentVersion).dll</DelayLoadDLLs>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="$(ReleaseBuild)">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<PreprocessorDefinitions>ONNX_NAMESPACE=onnx;ONNX_ML=1;ONNX_V1_OPSCHEMA_COMPAT;CNTKV2LIBRARYDLL;WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalOptions>/d2Zi+ /bigobj %(AdditionalOptions)</AdditionalOptions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<TreatWarningAsError>true</TreatWarningAsError>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<DisableSpecificWarnings>4800;4610;4512;4510;4267;4127;4125;4100;4456;4189;4996;4503;4146</DisableSpecificWarnings>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<DelayLoadDLLs>Cntk.Math$(OutputSuffix)-$(CntkComponentVersion).dll; nvml.dll; $(CudaRuntimeDll); msmpi.dll;</DelayLoadDLLs>
<DelayLoadDLLs Condition="!$(IsUWP)">%(DelayLoadDLLs); Cntk.PerformanceProfiler-$(CntkComponentVersion).dll;Cntk.DelayLoadedExtensions-$(CntkComponentVersion).dll</DelayLoadDLLs>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="$(CpuOnlyBuild)">
<ClCompile>
<PreprocessorDefinitions>ONNX_NAMESPACE=onnx;ONNX_ML=1;ONNX_V1_OPSCHEMA_COMPAT;CPUONLY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release_CpuOnly|x64'">$(IntDir)\$(ProjectName)\$(ConfigurationName)\%(RelativeDir)</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug_CpuOnly|x64'">$(IntDir)\$(ProjectName)\$(ConfigurationName)\%(RelativeDir)</ObjectFileName>
</ClCompile>
<Link>
<DelayLoadDLLs>Cntk.Math$(OutputSuffix)-$(CntkComponentVersion).dll; msmpi.dll;</DelayLoadDLLs>
<DelayLoadDLLs Condition="!$(IsUWP)">%(DelayLoadDLLs); Cntk.PerformanceProfiler-$(CntkComponentVersion).dll;Cntk.DelayLoadedExtensions-$(CntkComponentVersion).dll</DelayLoadDLLs>
<OptimizeReferences Condition="'$(Configuration)|$(Platform)'=='Debug_CpuOnly|x64'">false</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="$(GpuBuild)">
<ClCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(CudaInclude);$(ProjectDir)Generated\Windows</AdditionalIncludeDirectories>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release_NoOpt|x64'">$(IntDir)\$(ProjectName)\$(ConfigurationName)\%(RelativeDir)</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)\$(ProjectName)\$(ConfigurationName)\%(RelativeDir)</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)\$(ProjectName)\$(ConfigurationName)\%(RelativeDir)</ObjectFileName>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(CudaLibPath)</AdditionalLibraryDirectories>
</Link>
<PostBuildEvent>
<Command>if exist "$(NvmlDll)" xcopy /I /D /Y "$(NvmlDll)" "$(TargetDir)"</Command>
<Message>Copying NVidia GDK extension DLL to target folder</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="$(IsUWP)">
<PostBuildEvent>
<Command>
xcopy /D /I /Y "$(TargetDir)$(TargetName).lib" "$(TargetDir).."
xcopy /D /I /Y "$(TargetPath)" "$(TargetDir).."
</Command>
</PostBuildEvent>
<ClCompile>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release_UWP|x64'">$(IntDir)\$(ProjectName)\$(ConfigurationName)\%(RelativeDir)</ObjectFileName>
</ClCompile>
<ClCompile>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug_UWP|x64'">$(IntDir)\$(ProjectName)\$(ConfigurationName)\%(RelativeDir)</ObjectFileName>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="API\CNTKLibrary.h" />
<ClInclude Include="API\CNTKLibraryC.h" />
<ClInclude Include="API\CNTKLibraryExperimental.h" />
<ClInclude Include="API\CNTKLibraryInternals.h" />
<ClInclude Include="API\HalfConverter.hpp" />
<ClInclude Include="API\Internals\ComputationGraphAlgorithms.h" />
<ClInclude Include="API\Internals\EvaluatorWrapper.h" />
<ClInclude Include="API\Internals\PrimitiveFunction.h" />
<ClInclude Include="API\Internals\PrimitiveFunctionAttribute.h" />
<ClInclude Include="API\Internals\PrimitiveOpType.h" />
<ClInclude Include="BackCompat.h" />
<ClInclude Include="BlockFunction.h" />
<ClInclude Include="CompositeFunction.h" />
<ClInclude Include="DataParallelDistributedLearner.h" />
<ClInclude Include="DistributedCommunicator.h" />
<ClInclude Include="DistributedLearnerBase.h" />
<ClInclude Include="Learner.h" />
<ClInclude Include="Logger.h" />
<ClInclude Include="MinibatchSource.h" />
<ClInclude Include="proto\onnx\CNTKToONNX.h" />
<ClInclude Include="proto\onnx\core\common\code_location.h" />
<ClInclude Include="proto\onnx\core\common\common.h" />
<ClInclude Include="proto\onnx\core\common\const_pointer_container.h" />
<ClInclude Include="proto\onnx\core\common\exceptions.h" />
<ClInclude Include="proto\onnx\core\common\logging\capture.h" />
<ClInclude Include="proto\onnx\core\common\logging\isink.h" />
<ClInclude Include="proto\onnx\core\common\logging\logging.h" />
<ClInclude Include="proto\onnx\core\common\logging\macros.h" />
<ClInclude Include="proto\onnx\core\common\logging\severity.h" />
<ClInclude Include="proto\onnx\core\common\status.h" />
<ClInclude Include="proto\onnx\core\graph\constants.h" />
<ClInclude Include="proto\onnx\core\graph\function.h" />
<ClInclude Include="proto\onnx\core\graph\graph.h" />
<ClInclude Include="proto\onnx\core\graph\graph_nodes.h" />
<ClInclude Include="proto\onnx\core\graph\graph_transformer.h" />
<ClInclude Include="proto\onnx\core\graph\model.h" />
<ClInclude Include="proto\onnx\core\graph\op.h" />
<ClInclude Include="proto\onnx\core\graph\record.h" />
<ClInclude Include="proto\onnx\core\graph\rewrite_rule.h" />
<ClInclude Include="proto\onnx\core\graph\schema_registry.h" />
<ClInclude Include="proto\onnx\core\graph\tensorutils.h" />
<ClInclude Include="proto\onnx\core\graph\utils.h" />
<ClInclude Include="proto\onnx\core\inc\ml_status.h" />
<ClInclude Include="proto\onnx\core\inc\op_kernel_author.h" />
<ClInclude Include="proto\onnx\core\inc\op_kernel_author_helper.h" />
<ClInclude Include="proto\onnx\ONNX.h" />
<ClInclude Include="proto\onnx\ONNXToCNTK.h" />
<ClInclude Include="proto\onnx\onnx_repo\onnx\checker.h" />
<ClInclude Include="proto\onnx\onnx_repo\onnx\common\assertions.h" />
<ClInclude Include="proto\onnx\onnx_repo\onnx\common\stl_backports.h" />
<ClInclude Include="proto\onnx\onnx_repo\onnx\defs\data_type_utils.h" />
<ClInclude Include="proto\onnx\onnx_repo\onnx\defs\schema.h" />
<ClInclude Include="proto\onnx\onnx_repo\onnx\defs\shape_inference.h" />
<ClInclude Include="proto\onnx\onnx_repo\onnx\onnx-operators_pb.h" />
<ClInclude Include="proto\onnx\onnx_repo\onnx\onnx_pb.h" />
<ClInclude Include="proto\onnx\onnx_repo\onnx\proto_utils.h" />
<ClInclude Include="proto\onnx\onnx_repo\onnx\string_utils.h" />
<ClInclude Include="proto\onnx\Operators.h" />
<ClInclude Include="proto\onnx\RNNHelper.h" />
<ClInclude Include="Serialization.h" />
<ClInclude Include="tensorboard\TensorBoardUtils.h" />
<ClInclude Include="UserDefinedFunction.h" />
<ClInclude Include="UserFunctionFactory.h" />
<ClInclude Include="Utils.h" />
<ClInclude Include="stdafx.h" />
<ClInclude Include="targetver.h" />
<ClInclude Include="Value.h" />
<ClInclude Include="Variable.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="BackCompat.cpp" />
<ClCompile Include="Common.cpp" />
<ClCompile Include="CompositeFunction.cpp" />
<ClCompile Include="ComputeInputStatistics.cpp" />
<ClCompile Include="DataParallelDistributedLearner.cpp" />
<ClCompile Include="DistributedCommunicator.cpp" />
<ClCompile Include="DistributedLearnerBase.cpp" />
<ClCompile Include="dllmain.cpp">
<CompileAsManaged>false</CompileAsManaged>
<PrecompiledHeader>
</PrecompiledHeader>
</ClCompile>
<ClCompile Include="Evaluator.cpp" />
<ClCompile Include="CNTKLibraryC.cpp" />
<ClCompile Include="EvaluatorWrapper.cpp" />
<ClCompile Include="Function.cpp" />
<ClCompile Include="Learner.cpp" />
<ClCompile Include="MinibatchSource.cpp" />
<ClCompile Include="NDArrayView.cpp" />
<ClCompile Include="NDMask.cpp" />
<ClCompile Include="PrimitiveFunction.cpp" />
<ClCompile Include="PrimitiveFunctionAttribute.cpp" />
<ClCompile Include="proto\CNTK.pb.cc.VS_wrapper.cpp" />
<ClCompile Include="proto\onnx\CNTKToONNX.cpp" />
<ClCompile Include="proto\onnx\core\common\logging\capture.cc" />
<ClCompile Include="proto\onnx\core\common\logging\logging.cc" />
<ClCompile Include="proto\onnx\core\common\status.cc" />
<ClCompile Include="proto\onnx\core\graph\graph.cc" />
<ClCompile Include="proto\onnx\core\graph\graph_transformer.cc" />
<ClCompile Include="proto\onnx\core\graph\model.cc" />
<ClCompile Include="proto\onnx\core\graph\op.cc" />
<ClCompile Include="proto\onnx\core\graph\tensorutils.cc" />
<ClCompile Include="proto\onnx\onnx-ml.pb.cc.VS_wrapper.cpp" />
<ClCompile Include="proto\onnx\onnx-operators-ml.pb.cc.VS_wrapper.cpp" />
<ClCompile Include="proto\onnx\ONNX.cpp" />
<ClCompile Include="proto\onnx\ONNXToCNTK.cpp" />
<ClCompile Include="proto\onnx\onnx_repo\onnx\checker.cc" />
<ClCompile Include="proto\onnx\onnx_repo\onnx\common\assertions.cc" />
<ClCompile Include="proto\onnx\onnx_repo\onnx\defs\controlflow\defs.cc" />
<ClCompile Include="proto\onnx\onnx_repo\onnx\defs\data_type_utils.cc" />
<ClCompile Include="proto\onnx\onnx_repo\onnx\defs\experiments\defs.cc" />
<ClCompile Include="proto\onnx\onnx_repo\onnx\defs\generator\defs.cc" />
<ClCompile Include="proto\onnx\onnx_repo\onnx\defs\logical\defs.cc" />
<ClCompile Include="proto\onnx\onnx_repo\onnx\defs\logical\old.cc" />
<ClCompile Include="proto\onnx\onnx_repo\onnx\defs\math\defs.cc" />
<ClCompile Include="proto\onnx\onnx_repo\onnx\defs\math\old.cc" />
<ClCompile Include="proto\onnx\onnx_repo\onnx\defs\nn\defs.cc" />
<ClCompile Include="proto\onnx\onnx_repo\onnx\defs\nn\old.cc" />
<ClCompile Include="proto\onnx\onnx_repo\onnx\defs\reduction\defs.cc" />
<ClCompile Include="proto\onnx\onnx_repo\onnx\defs\rnn\defs.cc" />
<ClCompile Include="proto\onnx\onnx_repo\onnx\defs\rnn\old.cc" />
<ClCompile Include="proto\onnx\onnx_repo\onnx\defs\schema.cc" />
<ClCompile Include="proto\onnx\onnx_repo\onnx\defs\tensor\defs.cc" />
<ClCompile Include="proto\onnx\onnx_repo\onnx\defs\tensor\old.cc" />
<ClCompile Include="proto\onnx\onnx_repo\onnx\defs\traditionalml\defs.cc" />
<ClCompile Include="proto\onnx\Operators.cpp" />
<ClCompile Include="proto\onnx\RNNHelper.cpp" />
<ClCompile Include="Serialization.cpp" />
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="ProgressWriter.cpp" />
<ClCompile Include="tensorboard\tensorboard.pb.cc.VS_wrapper.cpp" />
<ClCompile Include="tensorboard\TensorBoardFileWriter.cpp" />
<ClCompile Include="tensorboard\TensorBoardUtils.cpp" />
<ClCompile Include="Trainer.cpp" />
<ClCompile Include="TrainingSession.cpp" />
<ClCompile Include="UserDefinedFunction.cpp" />
<ClCompile Include="Utils.cpp" />
<ClCompile Include="Value.cpp" />
<ClCompile Include="Variable.cpp" />
</ItemGroup>
<ItemGroup>
<Proto Include="proto\CNTK.proto" />
<Proto Include="tensorboard\tensorboard.proto" />
<Proto Include="proto\onnx\onnx_repo\onnx\onnx-ml.proto" />
<Proto Include="proto\onnx\onnx_repo\onnx\onnx-operators-ml.proto" />
</ItemGroup>
<Target Name="ProtoGen" Inputs="@(Proto)" Outputs="@(Proto->'%(RelativeDir)%(Filename).pb.cc')">
<Message Text="Compiling %(Proto.Identity)" />
<Exec Command="$(PROTOBUF_PATH)\bin\protoc --proto_path=$(ProjectDir)%(Proto.RelativeDir) --cpp_out=$(ProjectDir)%(Proto.RelativeDir) %(Proto.FullPath)" WorkingDirectory="$(ProjectDir)" />
</Target>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<Target Name="Build" Condition="$(HasProtobuf)" Outputs="$(TargetPath)" DependsOnTargets="ProtoGen;$(BuildDependsOn)" />
<ImportGroup Label="ExtensionTargets" />
<Target Name="CheckDependencies">
<Warning Condition="!$(HasProtobuf)" Text="CNTKv2LibraryDll requires Protocol Buffers to build. Please see https://docs.microsoft.com/en-us/cognitive-toolkit/Setup-CNTK-on-Windows#protobuf for installation instructions." />
<Error Condition="!$(HasBoost)" Text="CNTKv2LibraryDll requires the Boost library to build. Please see https://docs.microsoft.com/en-us/cognitive-toolkit/Setup-CNTK-on-Windows#boost for installation instructions." />
</Target>
</Project>