diff --git a/Source/CNTK/CNTK.vcxproj b/Source/CNTK/CNTK.vcxproj
index bb6f9e8c1..9a69ba87a 100644
--- a/Source/CNTK/CNTK.vcxproj
+++ b/Source/CNTK/CNTK.vcxproj
@@ -158,7 +158,7 @@
-
+
diff --git a/Source/CNTK/CNTK.vcxproj.filters b/Source/CNTK/CNTK.vcxproj.filters
index 3d80e55c8..39b063809 100644
--- a/Source/CNTK/CNTK.vcxproj.filters
+++ b/Source/CNTK/CNTK.vcxproj.filters
@@ -133,7 +133,7 @@
Common\Include
-
+
Common\Include
diff --git a/Source/CNTK/SynchronousExecutionEngine.cpp b/Source/CNTK/SynchronousExecutionEngine.cpp
index 996619102..5cd5e845b 100644
--- a/Source/CNTK/SynchronousExecutionEngine.cpp
+++ b/Source/CNTK/SynchronousExecutionEngine.cpp
@@ -15,7 +15,7 @@
#include "ConvolutionalNodes.h"
#include "NonlinearityNodes.h"
#include "ReshapingNodes.h"
-#include "DataTensor.h"
+#include "TensorShape.h"
namespace Microsoft { namespace MSR { namespace CNTK {
diff --git a/Source/Common/Include/DataTensor.h b/Source/Common/Include/TensorShape.h
similarity index 99%
rename from Source/Common/Include/DataTensor.h
rename to Source/Common/Include/TensorShape.h
index 6df7488b1..55124dd19 100644
--- a/Source/Common/Include/DataTensor.h
+++ b/Source/Common/Include/TensorShape.h
@@ -1,4 +1,4 @@
-// DataTensor.h -- tensor descriptor that describes the inner structure of data vectors
+// TensorShape.h -- tensor descriptor that describes the inner structure of data vectors
//
//
// Copyright (c) Microsoft Corporation. All rights reserved.
diff --git a/Source/ComputationNetworkLib/ComputationNetworkBuilder.h b/Source/ComputationNetworkLib/ComputationNetworkBuilder.h
index 8c09e9b2e..ce0dc84cc 100644
--- a/Source/ComputationNetworkLib/ComputationNetworkBuilder.h
+++ b/Source/ComputationNetworkLib/ComputationNetworkBuilder.h
@@ -9,7 +9,7 @@
#include "ComputationNetwork.h"
#include "TrainingCriterionNodes.h" // for NCEEvalMode
#include "ScriptableObjects.h"
-#include "DataTensor.h"
+#include "TensorShape.h"
#include
namespace Microsoft { namespace MSR { namespace CNTK {
diff --git a/Source/ComputationNetworkLib/ComputationNetworkLib.vcxproj b/Source/ComputationNetworkLib/ComputationNetworkLib.vcxproj
index f1960d8ba..8669940d7 100644
--- a/Source/ComputationNetworkLib/ComputationNetworkLib.vcxproj
+++ b/Source/ComputationNetworkLib/ComputationNetworkLib.vcxproj
@@ -155,7 +155,7 @@
-
+
diff --git a/Source/ComputationNetworkLib/ComputationNetworkLib.vcxproj.filters b/Source/ComputationNetworkLib/ComputationNetworkLib.vcxproj.filters
index ca51f6cd5..d65affb21 100644
--- a/Source/ComputationNetworkLib/ComputationNetworkLib.vcxproj.filters
+++ b/Source/ComputationNetworkLib/ComputationNetworkLib.vcxproj.filters
@@ -117,7 +117,7 @@
Nodes
-
+
Common\Include
diff --git a/Source/ComputationNetworkLib/ComputationNode.cpp b/Source/ComputationNetworkLib/ComputationNode.cpp
index 70a63c806..c655903b1 100644
--- a/Source/ComputationNetworkLib/ComputationNode.cpp
+++ b/Source/ComputationNetworkLib/ComputationNode.cpp
@@ -9,7 +9,7 @@
#include "ComputationNode.h"
#include "InputAndParamNodes.h"
#include "ComputationNetworkBuilder.h" // TODO: We should only pull in NewComputationNodeFromConfig(). Nodes should not know about network at large.
-#include "DataTensor.h"
+#include "TensorShape.h"
#ifndef let
#define let const auto
diff --git a/Source/ComputationNetworkLib/ComputationNode.h b/Source/ComputationNetworkLib/ComputationNode.h
index 6ae542997..e6d85dde8 100644
--- a/Source/ComputationNetworkLib/ComputationNode.h
+++ b/Source/ComputationNetworkLib/ComputationNode.h
@@ -10,7 +10,7 @@
#include "TensorView.h"
#include "ScriptableObjects.h"
#include "Sequences.h"
-#include "DataTensor.h"
+#include "TensorShape.h"
#include "MatrixPool.h"
#include
diff --git a/Source/Math/ConvolutionEngine.h b/Source/Math/ConvolutionEngine.h
index a5b7bd2db..2b3a77681 100644
--- a/Source/Math/ConvolutionEngine.h
+++ b/Source/Math/ConvolutionEngine.h
@@ -18,7 +18,7 @@
#endif
#include "Matrix.h"
-#include "DataTensor.h" // for ImageLayoutKind
+#include "TensorShape.h" // for ImageLayoutKind
namespace Microsoft { namespace MSR { namespace CNTK {
diff --git a/Source/Math/GPUMatrix.h b/Source/Math/GPUMatrix.h
index 87c7c9d9a..5943b133f 100644
--- a/Source/Math/GPUMatrix.h
+++ b/Source/Math/GPUMatrix.h
@@ -9,7 +9,7 @@
#include "File.h"
#include "Helpers.h"
#include "CommonMatrix.h"
-#include "DataTensor.h" // only for SmallVector; I was hoping to keep this out
+#include "TensorShape.h" // only for SmallVector; I was hoping to keep this out
#include "DebugUtil.h"
#include "BestGpu.h" // for CPUONLY macro
#include "ConcStack.h"
diff --git a/Source/Math/GPUTensor.cu b/Source/Math/GPUTensor.cu
index 4f1b92cea..86dd4164e 100644
--- a/Source/Math/GPUTensor.cu
+++ b/Source/Math/GPUTensor.cu
@@ -378,6 +378,7 @@ namespace Microsoft { namespace MSR { namespace CNTK {
{
if (tid < i && tid + i < tids) accumulators[tid] += accumulators[tid + i];
if (0 + i < tids) __syncthreads(); // sync if condition true for at least one thread
+ // TODO: use volatile* and then we can skip the __syncthreads() for the last 32 values
}
// now set final value to output coordinate
diff --git a/Source/Math/GPUTensor.h b/Source/Math/GPUTensor.h
index 954be8aad..d24094ed2 100644
--- a/Source/Math/GPUTensor.h
+++ b/Source/Math/GPUTensor.h
@@ -6,7 +6,7 @@
#pragma once
#include "CommonMatrix.h"
-#include "DataTensor.h" // only for SmallVector; I was hoping to keep this out
+#include "TensorShape.h" // only for SmallVector; I was hoping to keep this out
#include "GPUMatrixCUDAKernels.cuh"
#include
diff --git a/Source/Math/Math.vcxproj b/Source/Math/Math.vcxproj
index eaba79f58..950fab341 100644
--- a/Source/Math/Math.vcxproj
+++ b/Source/Math/Math.vcxproj
@@ -156,7 +156,7 @@
-
+
diff --git a/Source/Math/Math.vcxproj.filters b/Source/Math/Math.vcxproj.filters
index c828e33db..0282e8f60 100644
--- a/Source/Math/Math.vcxproj.filters
+++ b/Source/Math/Math.vcxproj.filters
@@ -76,7 +76,7 @@
Tensors
-
+
Common\Include
diff --git a/Source/Math/Matrix.h b/Source/Math/Matrix.h
index 6eab0fa47..379169529 100644
--- a/Source/Math/Matrix.h
+++ b/Source/Math/Matrix.h
@@ -13,7 +13,7 @@
#include "Basics.h"
#include "File.h"
#include "CommonMatrix.h"
-#include "DataTensor.h" // only for SmallVector; I was hoping to keep this out
+#include "TensorShape.h" // only for SmallVector; I was hoping to keep this out
#include
#include // for shared_ptr
#include
diff --git a/Source/Math/NoGPU.cpp b/Source/Math/NoGPU.cpp
index f728bb579..6951629b9 100644
--- a/Source/Math/NoGPU.cpp
+++ b/Source/Math/NoGPU.cpp
@@ -13,7 +13,7 @@
#include "GPUSparseMatrix.h"
#include "MatrixQuantizerGPU.h"
#include "CuDnnConvolutionEngine.h"
-#include "DataTensor.h"
+#include "TensorShape.h"
#pragma warning (disable: 4100) // unreferenced formal parameter, which is OK since all functions in here are dummies; disabling this allows to copy-paste prototypes here when we add new functions
#pragma warning (disable: 4702) // unreachable code, which we get from the NOT_IMPLEMENTED macro which is OK
diff --git a/Source/Math/TensorView.h b/Source/Math/TensorView.h
index 88f8dcdac..c768a7ed7 100644
--- a/Source/Math/TensorView.h
+++ b/Source/Math/TensorView.h
@@ -10,7 +10,7 @@
#include "Basics.h"
#include "Matrix.h"
-#include "DataTensor.h"
+#include "TensorShape.h"
#pragma warning (push)
#pragma warning (disable: 4251) // needs to have dll-interface to be used by clients of... caused by TensorView::m_shape which is only private. We use the same compiler everywhere.
diff --git a/Source/SGDLib/SGDLib.vcxproj b/Source/SGDLib/SGDLib.vcxproj
index c157972e1..9985eff6c 100644
--- a/Source/SGDLib/SGDLib.vcxproj
+++ b/Source/SGDLib/SGDLib.vcxproj
@@ -156,7 +156,7 @@
-
+
diff --git a/Source/SGDLib/SGDLib.vcxproj.filters b/Source/SGDLib/SGDLib.vcxproj.filters
index dd984702f..be0cb5acd 100644
--- a/Source/SGDLib/SGDLib.vcxproj.filters
+++ b/Source/SGDLib/SGDLib.vcxproj.filters
@@ -141,7 +141,7 @@
Common\Include
-
+
Common\Include