Skip to content

Commit

Permalink
Added several internal API header files
Browse files Browse the repository at this point in the history
In case other projects may use these header files, we added
them into API/Internals.

* ComputationGraphAlgorithms.h was moved from Source/ComputationNetworkLib

* PrimitiveOpType.h and EvaluatorWrapper.h were moved from Source/CNTKv2Library

* PrimitiveFunctionAttribute.h was extracted from PrimitiveFunction.h. It contains
  a new class PrimitiveFunctionAttribute which is the collection of all attribute
  names for PrimitiveFunction.

  This change actually had a subtle side-effect. We had a global static variable
  s_stateAttributes that depended on PrimitiveFunction::AttributeNameRngSeed and
  PrimitiveFunction::AttributeNameRngOffset. After we moved those static
  attribute-variables into another translation unit, s_stateAttributes can be
  initialized with empty wstring, because PrimitiveFunctionAttribute::AttributeNameRngSeed
  PrimitiveFunctionAttribute::AttributeNameRngSeedOffset were initialized after
  s_stateAttributes. Note that the initialization order of global static variables
  is not well-defined cross translation units. To fix the issue, we also moved
  s_stateAttributes into PrimitiveFunctionAttribute class, and renamed it to
  s_rngStateAttributes. I think it's reasonable to consider s_rngStateAttributes
  to be part of the PrimitiveFunctionAttribute class.

* PrimitiveFunction.h was moved from Source/CNTKv2Library
  • Loading branch information
yangchen-MS committed Aug 22, 2018
1 parent 8a244e6 commit 3d809bf
Show file tree
Hide file tree
Showing 26 changed files with 898 additions and 848 deletions.
3 changes: 2 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ SOURCEDIR:= Source
GSL_PATH:=$(SOURCEDIR)/../external/gsl
ONNX_PATH:=$(SOURCEDIR)/CNTKv2LibraryDll/proto/onnx
ONNX_REPO_PATH:=$(SOURCEDIR)/CNTKv2LibraryDll/proto/onnx/onnx_repo
INCLUDEPATH:= $(addprefix $(SOURCEDIR)/, Common/Include CNTKv2LibraryDll CNTKv2LibraryDll/API CNTKv2LibraryDll/Generated/Linux CNTKv2LibraryDll/proto ../Examples/Extensibility/CPP Math CNTK ActionsLib ComputationNetworkLib SGDLib SequenceTrainingLib CNTK/BrainScript Readers/ReaderLib PerformanceProfilerDll)
INCLUDEPATH:= $(addprefix $(SOURCEDIR)/, Common/Include CNTKv2LibraryDll CNTKv2LibraryDll/API CNTKv2LibraryDll/API/Internals CNTKv2LibraryDll/Generated/Linux CNTKv2LibraryDll/proto ../Examples/Extensibility/CPP Math CNTK ActionsLib ComputationNetworkLib SGDLib SequenceTrainingLib CNTK/BrainScript Readers/ReaderLib PerformanceProfilerDll)
INCLUDEPATH+=$(PROTOBUF_PATH)/include
INCLUDEPATH+=$(GSL_PATH)/include
INCLUDEPATH+=$(ONNX_PATH)
Expand Down Expand Up @@ -502,6 +502,7 @@ CNTKLIBRARY_COMMON_SRC =\
$(SOURCEDIR)/CNTKv2LibraryDll/Common.cpp \
$(SOURCEDIR)/CNTKv2LibraryDll/Function.cpp \
$(SOURCEDIR)/CNTKv2LibraryDll/PrimitiveFunction.cpp \
$(SOURCEDIR)/CNTKv2LibraryDll/PrimitiveFunctionAttribute.cpp \
$(SOURCEDIR)/CNTKv2LibraryDll/CompositeFunction.cpp \
$(SOURCEDIR)/CNTKv2LibraryDll/UserDefinedFunction.cpp \
$(SOURCEDIR)/CNTKv2LibraryDll/NDArrayView.cpp \
Expand Down
4 changes: 2 additions & 2 deletions Source/ActionsLib/ActionsLib.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(SolutionDir)Source\Readers\ReaderLib;$(SolutionDir)Source\CNTKv2LibraryDll;$(SolutionDir)Source\CNTKv2LibraryDll\API;$(SolutionDir)Source\SequenceTrainingLib;$(SolutionDir)Source\SGDLib;$(SolutionDir)Source\ComputationNetworkLib;$(SolutionDir)Source\CNTK;$(SolutionDir)Source\Math;$(SolutionDir)Source\Common\Include;$(SolutionDir)Source\CNTK\BrainScript;$(MSMPI_INC);$(NvmlInclude)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)Source\Readers\ReaderLib;$(SolutionDir)Source\CNTKv2LibraryDll;$(SolutionDir)Source\CNTKv2LibraryDll\API;$(SolutionDir)Source\CNTKv2LibraryDll\API\Internals;$(SolutionDir)Source\SequenceTrainingLib;$(SolutionDir)Source\SGDLib;$(SolutionDir)Source\ComputationNetworkLib;$(SolutionDir)Source\CNTK;$(SolutionDir)Source\Math;$(SolutionDir)Source\Common\Include;$(SolutionDir)Source\CNTK\BrainScript;$(MSMPI_INC);$(NvmlInclude)</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4819</DisableSpecificWarnings>
</ClCompile>
<Link>
Expand Down Expand Up @@ -140,4 +140,4 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>
</Project>
4 changes: 2 additions & 2 deletions Source/CNTK/CNTK.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(SolutionDir)Source\CNTKv2LibraryDll;$(SolutionDir)Source\CNTKv2LibraryDll\API;$(SolutionDir)Source\CNTKv2LibraryDll\Generated\Windows;$(SolutionDir)Source\Readers\ReaderLib;$(SolutionDir)Source\ActionsLib;$(SolutionDir)Source\SequenceTrainingLib;$(SolutionDir)Source\SGDLib;$(SolutionDir)Source\ComputationNetworkLib;$(SolutionDir)Source\Math;$(SolutionDir)Source\Common\Include;$(SolutionDir)Source\CNTK\BrainScript;$(MSMPI_INC);$(NvmlInclude);$(SolutionDir)Source\PerformanceProfilerDll</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)Source\CNTKv2LibraryDll;$(SolutionDir)Source\CNTKv2LibraryDll\API;$(SolutionDir)Source\CNTKv2LibraryDll\API\Internals;$(SolutionDir)Source\CNTKv2LibraryDll\Generated\Windows;$(SolutionDir)Source\Readers\ReaderLib;$(SolutionDir)Source\ActionsLib;$(SolutionDir)Source\SequenceTrainingLib;$(SolutionDir)Source\SGDLib;$(SolutionDir)Source\ComputationNetworkLib;$(SolutionDir)Source\Math;$(SolutionDir)Source\Common\Include;$(SolutionDir)Source\CNTK\BrainScript;$(MSMPI_INC);$(NvmlInclude);$(SolutionDir)Source\PerformanceProfilerDll</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4819</DisableSpecificWarnings>
</ClCompile>
<Link>
Expand Down Expand Up @@ -222,4 +222,4 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>
</Project>
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

#pragma once

#include "stdafx.h"
#include "CNTKLibrary.h"
#include "PrimitiveOpType.h"

Expand Down Expand Up @@ -212,121 +211,6 @@ namespace CNTK
friend inline std::shared_ptr<T> MakeSharedObject(CtorArgTypes&& ...ctorArgs);

public:
static const std::wstring InternalSumReductionOpName;
static const std::wstring InternalLogSumReductionOpName;
static const std::wstring InternalMeanReductionOpName;
static const std::wstring InternalMaxReductionOpName;
static const std::wstring InternalMinReductionOpName;
static const std::wstring InternalProdReductionOpName;
static const std::wstring InternalAllReductionOpName;
static const std::wstring InternalAnyReductionOpName;
static const std::wstring InternalArgmaxReductionOpName;
static const std::wstring InternalArgminReductionOpName;

static const std::wstring AttributeNameAxis;
static const std::wstring AttributeNameAxisVec;
static const std::wstring AttributeNameAxis1;
static const std::wstring AttributeNameAxis2;
static const std::wstring AttributeNameAllowDuplicates;
static const std::wstring AttributeNameNumSamples;
static const std::wstring AttributeNameDropoutRate;
static const std::wstring AttributeNameNewShape;
static const std::wstring AttributeNameBeginAxis;
static const std::wstring AttributeNameEndAxis;
static const std::wstring AttributeNameOutputRank;
static const std::wstring AttributeNameInferInputRankToMap;
static const std::wstring AttributeNameOffset;
static const std::wstring AttributeNameStrides;
static const std::wstring AttributeNameDilation;
static const std::wstring AttributeNameSharing;
static const std::wstring AttributeNameAutoPadding;
static const std::wstring AttributeNameSequential;
static const std::wstring AttributeNameLowerPad;
static const std::wstring AttributeNameUpperPad;
static const std::wstring AttributeNameCeilOutDim;
static const std::wstring AttributeNameIncludePad;
static const std::wstring AttributeNameTranspose;
static const std::wstring AttributeNameOutputShape;
static const std::wstring AttributeNameMaxTempMemSizeInSamples;
static const std::wstring AttributeNameROIOutputShape;
static const std::wstring AttributeNamePoolingType;
static const std::wstring AttributeNamePoolingWindowShape;
static const std::wstring AttributeNameSpatial;
static const std::wstring AttributeNameNormalizationTimeConstant;
static const std::wstring AttributeNameBlendTimeConstant;
static const std::wstring AttributeNameEpsilon;
static const std::wstring AttributeNameUseCuDNNEngine;
static const std::wstring AttributeNameDisableRegularization;
static const std::wstring AttributeNameNewDataType;
static const std::wstring AttributeNameNewDynamicAxes;
static const std::wstring AttributeNameNewSequenceAxisLengthScalingFactor;
static const std::wstring AttributeNameNewSequenceAxisLengthAdditiveFactor;
static const std::wstring AttributeNameBeginIndex;
static const std::wstring AttributeNameBeginIndexVec;
static const std::wstring AttributeNameEndIndex;
static const std::wstring AttributeNameEndIndexVec;
static const std::wstring AttributeNameReductionOpName;
static const std::wstring AttributeNameReductionKeepDimensions;
static const std::wstring AttributeNameRngSeed;
static const std::wstring AttributeNameRngOffset;
static const std::wstring AttributeNameBidirectional;
static const std::wstring AttributeNameNumLayers;
static const std::wstring AttributeNameHiddenSize;
static const std::wstring AttributeNameRecurrentOp;
static const std::wstring AttributeNameUnpoolingWindowShape;
static const std::wstring AttributeNameSubstitutionPenalty;
static const std::wstring AttributeNameDeletionPenalty;
static const std::wstring AttributeNameInsertionPenalty;
static const std::wstring AttributeNameSquashInputs;
static const std::wstring AttributeNameTokensToIgnore;
static const std::wstring AttributeNameDelayConstraint;
static const std::wstring AttributeNameBlankTokenId;
static const std::wstring AttributeNamePhonePath;
static const std::wstring AttributeNameSymListPath;
static const std::wstring AttributeNameStateListPath;
static const std::wstring AttributeNameTransProbPath;
static const std::wstring AttributeNameLatticeConfigPath;
static const std::wstring AttributeNameHSmoothingWeight;
static const std::wstring AttributeNameFrameDropThresh;
static const std::wstring AttributeNameDoReferenceAlign;
static const std::wstring AttributeNameSeqGammarUsesMBR;
static const std::wstring AttributeNameSeqGammarAMF;
static const std::wstring AttributeNameSeqGammarLMF;
static const std::wstring AttributeNameSeqGammarBMMIFactor;
static const std::wstring AttributeNameSeqGammarWordPen;
static const std::wstring AttributeNameNumClass;
static const std::wstring AttributeNameOneHotOutputSparse;
static const std::wstring AttributeNameOutputSparse;
static const std::wstring AttributeNameOneHotAxis;
static const std::wstring AttributeNameSequenceAxisNamePrefix;
static const std::wstring AttributeNameSequenceUnpackPaddingValue;
static const std::wstring AttributeNameSequenceUnpackSuppressMaskOutput;
static const std::wstring AttributeNameRandomDistributionType;
static const std::wstring AttributeNameRandomDistributionArgs;
static const std::wstring AttributeNameSpatialScale;
static const std::wstring AttributeNameSliceStrides;
static const std::wstring AttributeNameSliceStridesVec;
static const std::wstring AttributeNamePaddingHead;
static const std::wstring AttributeNamePaddingFoot;
static const std::wstring AttributeNamePaddingMode;
static const std::wstring AttributeNamePaddingConstantValue;
static const std::wstring AttributeNameAlpha;
static const std::wstring AttributeNameBeta;
static const std::wstring AttributeNameGamma;
static const std::wstring AttributeNameKernelShape;
static const std::wstring AttributeNameBias;
static const std::wstring AttributeNameDepthRadius;
static const std::wstring AttributeNameBlockSize;
static const std::wstring AttributeNameCustomAttributes;
static const std::wstring AttributeNameNumItems;
static const std::wstring AttributeNameFillValue;
static const std::wstring AttributeNameUseStatsAcrossChannels;
static const std::wstring AttributeNameDoVarianceScaling;
static const std::wstring AttributeNameGroups;
static const std::wstring AttributeNameCustomOp;
static const std::wstring AttributeNameTransposeLeftOperand;
static const std::wstring AttributeNameTransposeRightOperand;

static const size_t convolutionOpDefaultValueForGroups = 1;

protected:
Expand Down
Loading

0 comments on commit 3d809bf

Please sign in to comment.