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
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 |
|
} |
|
|
|
|