You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

303 lines
10 KiB

Index: Makefile
--- Makefile.orig 2016-12-26 19:55:30.000000000 +0100
+++ Makefile 2016-12-26 23:38:47.939020000 +0100
@@ -88,9 +88,9 @@
INCLUDEPATH:= $(addprefix $(SOURCEDIR)/, Common/Include CNTKv2LibraryDll CNTKv2LibraryDll/API CNTKv2LibraryDll/proto Math CNTK ActionsLib ComputationNetworkLib SGDLib SequenceTrainingLib CNTK/BrainScript Readers/ReaderLib)
INCLUDEPATH+=$(PROTOBUF_PATH)/include
# COMMON_FLAGS include settings that are passed both to NVCC and C++ compilers.
-COMMON_FLAGS:= -D_POSIX_SOURCE -D_XOPEN_SOURCE=600 -D__USE_XOPEN2K -std=c++11
+COMMON_FLAGS:= -std=c++11
CPPFLAGS:=
-CXXFLAGS:= $(SSE_FLAGS) -std=c++0x -fopenmp -fpermissive -fPIC -Werror -fcheck-new
+CXXFLAGS:= $(SSE_FLAGS) -std=c++0x -fopenmp -fpermissive -fPIC -fcheck-new
LIBPATH:=
LIBS_LIST:=
LDFLAGS:=
@@ -178,7 +178,7 @@
ifeq ("$(MATHLIB)","openblas")
INCLUDEPATH += $(OPENBLAS_PATH)/include
LIBPATH += $(OPENBLAS_PATH)/lib
- LIBS_LIST += openblas m pthread
+ LIBS_LIST += openblas gfortran quadmath m pthread
CPPFLAGS += -DUSE_OPENBLAS
endif
@@ -237,10 +237,10 @@
GENCODE_FLAGS := $(GENCODE_SM30) $(GENCODE_SM35) $(GENCODE_SM50)
endif
- CXXFLAGS += -g -O4
+ CXXFLAGS += -O2
LDFLAGS += -rdynamic
COMMON_FLAGS += -DNDEBUG -DNO_SYNC
- CUFLAGS += -O3 -g -use_fast_math $(GENCODE_FLAGS)
+ CUFLAGS += -O2 -use_fast_math $(GENCODE_FLAGS)
endif
ifdef CNTK_CUDA_DEVICE_DEBUGINFO
@@ -981,7 +981,7 @@
UNITTEST_MULTIVERSO := $(BINDIR)/multiversotests
-ALL += $(UNITTEST_MULTIVERSO)
+ALL +=
$(UNITTEST_MULTIVERSO): $(UNITTEST_MULTIVERSO_OBJ) | $(MULTIVERSO_LIB)
@echo $(SEPARATOR)
@@ -1057,7 +1057,7 @@
UNITTEST_EVAL := $(BINDIR)/evaltests
-ALL += $(UNITTEST_EVAL)
+ALL +=
SRC += $(UNITTEST_EVAL_SRC)
$(UNITTEST_EVAL) : $(UNITTEST_EVAL_OBJ) | $(EVAL_LIB) $(CNTKMATH_LIB)
@@ -1083,7 +1083,7 @@
UNITTEST_READER := $(BINDIR)/readertests
-ALL += $(UNITTEST_READER)
+ALL +=
SRC += $(UNITTEST_READER_SRC)
$(UNITTEST_READER): $(UNITTEST_READER_OBJ) | $(HTKMLFREADER) $(HTKDESERIALIZERS) $(UCIFASTREADER) $(COMPOSITEDATAREADER) $(IMAGEREADER) $(CNTKMATH_LIB)
@@ -1122,7 +1122,7 @@
UNITTEST_NETWORK := $(BINDIR)/networktests
-ALL += $(UNITTEST_NETWORK)
+ALL +=
SRC += $(UNITTEST_NETWORK_SRC)
$(UNITTEST_NETWORK): $(UNITTEST_NETWORK_OBJ) | $(CNTKMATH_LIB) $(CNTKTEXTFORMATREADER) $(MULTIVERSO_LIB)
@@ -1157,7 +1157,7 @@
UNITTEST_MATH := $(BINDIR)/mathtests
-ALL += $(UNITTEST_MATH)
+ALL +=
SRC += $(UNITTEST_MATH_SRC)
$(UNITTEST_MATH): $(UNITTEST_MATH_OBJ) | $(CNTKMATH_LIB)
@@ -1180,7 +1180,7 @@
UNITTEST_BRAINSCRIPT := $(BINDIR)/brainscripttests
-ALL += $(UNITTEST_BRAINSCRIPT)
+ALL +=
SRC += $(UNITTEST_BRAINSCRIPT_SRC)
$(UNITTEST_BRAINSCRIPT): $(UNITTEST_BRAINSCRIPT_OBJ) | $(CNTKMATH_LIB)
Index: Source/Common/File.cpp
--- Source/Common/File.cpp.orig 2016-12-26 19:55:30.000000000 +0100
+++ Source/Common/File.cpp 2016-12-26 23:37:41.818954000 +0100
@@ -23,7 +23,7 @@
#endif
#ifdef __unix__
#include <unistd.h>
-#include <linux/limits.h> // for PATH_MAX
+#include <limits.h> // for PATH_MAX
#endif
#define PCLOSE_ERROR -1
Index: Source/Common/Include/Basics.h
--- Source/Common/Include/Basics.h.orig 2016-12-26 19:55:30.000000000 +0100
+++ Source/Common/Include/Basics.h 2016-12-26 23:37:41.819165000 +0100
@@ -461,10 +461,10 @@
static inline double todouble(const std::string& s)
{
double value = 0.0;
+ char *endptr;
- size_t* idx = 0;
- value = std::stod(s, idx);
- if (idx)
+ value = strtod(s.c_str(), &endptr);
+ if (endptr == s.c_str())
RuntimeError("todouble: invalid input string '%s'", s.c_str());
return value;
Index: Source/Common/Include/TensorShape.h
--- Source/Common/Include/TensorShape.h.orig 2016-12-26 19:55:30.000000000 +0100
+++ Source/Common/Include/TensorShape.h 2016-12-26 23:37:41.819378000 +0100
@@ -13,6 +13,14 @@
#include <string>
#include <array>
+#include <sstream>
+
+template <typename T> std::string my_to_string(const T& n) {
+ std::ostringstream stm;
+ stm << n;
+ return stm.str();
+}
+
namespace Microsoft { namespace MSR { namespace CNTK {
// -----------------------------------------------------------------------
@@ -722,7 +730,7 @@
{
if (!s.empty())
s.append(" x ");
- s.append(std::to_string(m_dims[k]));
+ s.append(my_to_string(m_dims[k]));
}
#if 0 // also emit the strides, easier for debugging
s.append(" {");
Index: Source/Common/Include/TimerUtility.h
--- Source/Common/Include/TimerUtility.h.orig 2016-12-26 19:55:30.000000000 +0100
+++ Source/Common/Include/TimerUtility.h 2016-12-26 23:37:41.819500000 +0100
@@ -1,5 +1,6 @@
#pragma once
+#include <stdio.h>
#include <string>
#define MILLI_PER_SEC 1000
Index: Source/Common/Include/ssematrix.h
--- Source/Common/Include/ssematrix.h.orig 2016-12-26 19:55:31.000000000 +0100
+++ Source/Common/Include/ssematrix.h 2016-12-26 23:37:41.819825000 +0100
@@ -21,7 +21,7 @@
#endif
#include "fileutil.h" // for saving and reading matrices
#include <limits> // for NaN
-#include <malloc.h>
+#include <stdlib.h>
#ifdef min
#undef min // some garbage from some Windows header that conflicts with std::min()
Index: Source/Math/BlockHandlerAVX.cpp
--- Source/Math/BlockHandlerAVX.cpp.orig 2016-12-26 19:55:31.000000000 +0100
+++ Source/Math/BlockHandlerAVX.cpp 2016-12-26 23:37:41.819959000 +0100
@@ -3,7 +3,7 @@
// Licensed under the MIT license. See LICENSE.md file in the project root for full licence information.
//
#include "stdafx.h"
-#include <malloc.h>
+#include <stdlib.h>
#include <xmmintrin.h>
#include <emmintrin.h>
#include <tmmintrin.h>
Index: Source/Math/BlockMultiplier.h
--- Source/Math/BlockMultiplier.h.orig 2016-12-26 19:55:31.000000000 +0100
+++ Source/Math/BlockMultiplier.h 2016-12-26 23:37:41.820218000 +0100
@@ -4,7 +4,7 @@
//
#pragma once
#include "BlockMultiplierPlatform.h"
-#include <malloc.h>
+#include <stdlib.h>
#include <xmmintrin.h>
#include <emmintrin.h>
#include <tmmintrin.h>
Index: Source/Readers/ImageReader/ImageDataDeserializer.cpp
--- Source/Readers/ImageReader/ImageDataDeserializer.cpp.orig 2016-12-26 19:55:31.000000000 +0100
+++ Source/Readers/ImageReader/ImageDataDeserializer.cpp 2016-12-26 23:37:41.820542000 +0100
@@ -277,7 +277,7 @@
// Assume that only image path and class label is given (old format).
classId = imagePath;
imagePath = sequenceKey;
- sequenceKey = std::to_string(lineIndex);
+ sequenceKey = my_to_string(lineIndex);
if (classId.empty() || imagePath.empty())
RuntimeError("Invalid map file format, must contain 2 or 3 tab-delimited columns, line %" PRIu64 " in file %s.", lineIndex, mapPath.c_str());
Index: Source/Readers/Kaldi2Reader/ssematrix.h
--- Source/Readers/Kaldi2Reader/ssematrix.h.orig 2016-12-26 19:55:31.000000000 +0100
+++ Source/Readers/Kaldi2Reader/ssematrix.h 2016-12-26 23:37:41.820862000 +0100
@@ -19,7 +19,7 @@
#endif
#include "fileutil.h" // for saving and reading matrices
#include <limits> // for NaN
-#include <malloc.h>
+#include <stdlib.h>
namespace msra { namespace math {
Index: Source/Readers/LMSequenceReader/SequenceReader.cpp
--- Source/Readers/LMSequenceReader/SequenceReader.cpp.orig 2016-12-26 19:55:31.000000000 +0100
+++ Source/Readers/LMSequenceReader/SequenceReader.cpp 2016-12-26 23:37:41.821208000 +0100
@@ -634,10 +634,10 @@
tokens = msra::strfun::split(line, "\t ");
assert(tokens.size() == 4);
- b = stoi(tokens[0]);
- cnt = (size_t) stof(tokens[1]);
+ b = strtol(tokens[0].c_str(), NULL, 10);
+ cnt = (size_t) strtof(tokens[1].c_str(), NULL);
strtmp = tokens[2];
- clsidx = stoi(tokens[3]);
+ clsidx = strtol(tokens[3].c_str(), NULL, 10);
idx4cnt[b] = cnt;
word4idx[strtmp] = b;
Index: Source/Readers/ReaderLib/TruncatedBpttPacker.cpp
--- Source/Readers/ReaderLib/TruncatedBpttPacker.cpp.orig 2016-12-26 19:55:31.000000000 +0100
+++ Source/Readers/ReaderLib/TruncatedBpttPacker.cpp 2016-12-26 23:37:41.821374000 +0100
@@ -8,6 +8,7 @@
#include <cmath>
#include <deque>
+#include <cmath>
#include "TruncatedBpttPacker.h"
#include "ElementTypeUtils.h"
Index: Source/SGDLib/SGD.cpp
--- Source/SGDLib/SGD.cpp.orig 2016-12-26 19:55:31.000000000 +0100
+++ Source/SGDLib/SGD.cpp 2016-12-26 23:37:41.821863000 +0100
@@ -1385,7 +1385,7 @@
prefixMsg.c_str(), epochNumber + 1, (int)m_maxEpochs,
(int)(numMBsRunSinceLastLogged + 1), numMBsRun);
if (epochNumber > 0 || (int)epochSize > 0) // got anything? --TODO: why cast epochSize to (int) for this comparison?
- fprintf(stderr, (", %2." + to_string(mbProgNumPrecision) + "f%%").c_str(), mbProg * 100); // --TODO: use a * format?
+ fprintf(stderr, (", %2." + my_to_string(mbProgNumPrecision) + "f%%").c_str(), mbProg * 100); // --TODO: use a * format?
fprintf(stderr, "]: ");
epochCriterionSinceLastLogged.LogCriterion(criterionNodes[0]->NodeName());
for (size_t i = 0; i < epochEvalErrors.size(); i++)
Index: Tools/generate_build_info
--- Tools/generate_build_info.orig 2016-12-26 19:55:32.000000000 +0100
+++ Tools/generate_build_info 2016-12-26 23:37:41.822004000 +0100
@@ -107,11 +107,10 @@
config=$1
# Check whether we have git and what is the SHA-1 value
-if Has_Git; then has_git=1; else has_git=0; usage "git does not exist"; fi
-GIT_STATUS=' (modified)'
-git diff --quiet && git diff --cached --quiet && GIT_STATUS=''
-GIT_COMMIT=`git rev-parse HEAD`$GIT_STATUS
-GIT_BRANCH=`git rev-parse --abbrev-ref HEAD`
+has_git=0
+GIT_STATUS=''
+GIT_COMMIT="0000"
+GIT_BRANCH="master"
# Looking into Config.make
if [ ! -e $config ] ; then
Index: configure
--- configure.orig 2016-12-26 19:55:34.000000000 +0100
+++ configure 2016-12-26 23:37:41.822213000 +0100
@@ -1064,7 +1064,7 @@
# If we are not in the configure directory, generate a trampoline Makefile
makefile=$build_top/Makefile
-if test $(is_hardlinked "$configure" "$build_top/configure") = no
+if false
then
echo Generating $makefile
realconf=`readlink -f $configure`
Index: Source/PerformanceProfilerDll/PerformanceProfiler.cpp
--- Source/PerformanceProfilerDll/PerformanceProfiler.cpp.orig 2017-01-01 10:58:55.000000000 +0100
+++ Source/PerformanceProfilerDll/PerformanceProfiler.cpp 2017-01-01 11:10:31.383503000 +0100
@@ -381,8 +381,10 @@
{
#ifdef _WIN32
return (unsigned int)GetCurrentThreadId();
-#else
+#elif defined(SYS_gettid)
return (unsigned int)syscall(SYS_gettid);
+#else
+ return (unsigned int)0;
#endif
}