Граф коммитов

3136 Коммитов

Автор SHA1 Сообщение Дата
bmitra fd47759b0a Merge branch 'master' of https://git01.codeplex.com/cntk into bmitra/Changes 2016-01-04 10:23:01 -08:00
Frank Seide cfd4a8ee3f Coup de grâce: the 3 basic elementwise arithmetic operation (plus, minus, element times) and the 6 main non-linearity nodes (all except softmax and GMM) have been replaced by the new tensor library. This makes the code significantly more compact and allows broadcasting along any dimension, e.g. for implementing the image bias 2016-01-01 20:38:31 -08:00
Frank Seide 2d8b9e7c6e bug fix in ConvolutionEngineTests.cpp: when testing CPU, use HWC layout 2016-01-01 19:20:35 -08:00
Frank Seide 7ee40e6cc8 bug fix: Pooling nodes initialized wrong conv-engine factory class 2016-01-01 19:14:10 -08:00
Frank Seide 5bfc54b8a8 reenabled TensorView for PlusNode--nearly identical result Image/QuickE2E test 2016-01-01 17:46:05 -08:00
Frank Seide 61469c0638 temporarily disabled TensorView in PlusNode 2016-01-01 17:31:45 -08:00
Frank Seide 4adb66c764 added clipping of log and quotient, as SequenceTraining failed without 2016-01-01 17:27:36 -08:00
Frank Seide b5a5c86020 made gcc happy 2016-01-01 16:47:20 -08:00
Frank Seide e09548f391 replaced 6 non-linearity nodes by a single base class and 6 macros, as those 6 nodes were now structurally identical and only differed in TensorView opcodes 2016-01-01 16:38:20 -08:00
Frank Seide 351358eb46 implemented most non-linearity nodes using the tensor lib 2016-01-01 16:14:01 -08:00
Frank Seide 5ff5d685db added imageLayout parameter to Convolution, MaxPooling, and AveragePooling (only Convolution had it, and BrainScrip only);
bug fix: LearnableParameter must also serialize m_sampleLayout
2016-01-01 15:05:19 -08:00
Frank Seide 50218cd031 Image/QuickE2E now implements both legacy and cudnn layouts, selected by a command-line overridable parameter 'useCuDnn' that defaults to cudnn;
added printfs to cunn tests
2016-01-01 13:18:49 -08:00
Frank Seide ec29314a36 move ScaleNode, RowElementTimesNode, and ColumnElementTimesNode to EsotericNodes.h, to indicate that they are deprecated (which they will be once tensor lib is enabled generally);
changed Image/QuickE2E test to use cudnn
2016-01-01 13:04:59 -08:00
Frank Seide 1506c6780d made gcc happy;
changed ConvolutionEngineTests.cpp to use CHW layout since it only runs with cuDNN
2016-01-01 12:45:08 -08:00
Frank Seide 0c79c928ff cleanedup ConvolutionNode vs. image interpretation of TensorShape;
TensorOp() optimization to use SGEMM disabled for 'double' in Debug builds, so we get our code path tested once in a while;
fixed ConvolutionEngineTests.cpp w.r.t. Create();
removed unused InputIsImage() methods
2016-01-01 12:25:24 -08:00
Frank Seide f369a8e94e bug fix: that new call to cublas_gemm() should no lonver have the explicit casts to float* 2016-01-01 10:29:39 -08:00
Frank Seide 42ff20b864 (comment) 2015-12-30 21:20:11 -08:00
Frank Seide 9db7cce89a towards passing the ImageLayoutKind into ConvolutionNode and friends;
ConvolutionEngineFactory::Create() now chooses the layout based on the user-specified ImageLayoutKind. Something is borked, this version mixes up dimensions somewhere
2015-12-30 21:19:03 -08:00
Frank Seide d11532cf69 (deleted some obsolete debug code) 2015-12-30 19:55:06 -08:00
Frank Seide 9372b6afdd bug fix: SetMaxTempMemSizeForCNN() was missing the 'double' case;
added an optimization to unary TensorOp() to use cublasS/Dgemm() when we are reducing a matrix
2015-12-30 19:51:28 -08:00
Frank Seide 329c77c3a4 switched ReduceElemType to ElemType instead of double while reenabling PlusNode TensorView--desparate to get Image/QuickE2E to pass 2015-12-30 16:55:27 -08:00
Frank Seide 9003f4cbdd disabled TensorView for PlusNode::BackpropTo(), as that causes a difference for Image/QuickE2E;
GetTensorShape() now adds the column dimension as one more dimension
2015-12-30 16:40:49 -08:00
Frank Seide 411e21fad5 switched inaccurate Sigmoid() and PlusNode::BackpropTo() back on;
changed Image/QuickE2E to use BrainScript, in order to allow specifiyng tensor dimensions for the bias
2015-12-30 16:00:02 -08:00
Frank Seide ac61d224f9 switched to new Sigmoid(), PlusNode::BackpropTo() still not TensorView 2015-12-30 14:51:52 -08:00
Frank Seide 6da94ebb73 re-disabled PlusNode::BackpropTo() once again 2015-12-30 14:40:53 -08:00
Frank Seide ec4c08d6cd reenabled ENABLE_BROADCASTING_ELEMENTTIMES 2015-12-30 14:31:35 -08:00
Frank Seide 50159b7215 switched TensorOp.h's Sigmoid() to the less accurate version from the .cuh file, to remove failure in SequenceTraining test. This is not good! Reenabled all TensorView 2015-12-30 14:30:30 -08:00
Frank Seide 3f5e5b9e40 disabled TensorView for PlusNode::BackpropTo() and SigmoidNode, now gives the same for Image/QuickE2E 2015-12-30 14:15:00 -08:00
Frank Seide 710e2b5dae InputValue and LearnableParameter C++ objects now take their dimensions as a general tensor (but not yet on BS level);
InputValue no longer accepts a column argument (ignored in NDL, forbidden in BS);
bug fix in ConfigArray::AsVector()
2015-12-30 12:50:13 -08:00
Frank Seide c6d908eff8 new optional NDL/BS parameter 'imageLayout' to say according to which of the two layouts (cudnn or CNTL legacy) we should interpret a W, H, C specification. Currently implemented for InputImage;
InputValue no longer accepts a 'cols' parameter. Instead, it ignores it and uses 0 instead, since InputValues must always be minibatches
2015-12-30 11:35:40 -08:00
Frank Seide d0b5c8d3c4 bug fix: CeilDiv() overflowed for b == INT_MAX 2015-12-30 10:57:08 -08:00
Frank Seide da2b298ca3 (fix in previous debug logging) 2015-12-30 09:44:45 -08:00
Frank Seide 91667acc6e (added heavy logging to track down the crash) 2015-12-30 09:43:10 -08:00
Frank Seide 159e380cd7 (added logging for tracking down SeqTrain problem) 2015-12-30 09:13:30 -08:00
Frank Seide 44c1e5457a merged GPUMatrixCUDAKernels.cuh DEF_ELEMENT_PRIMITIVE macro with TensorOps.h OverloadUnaryMathFns, as both did the same thing;
new #define ENABLE_BROADCASTING_ELEMENTTIMES to specifically select whether we want to replace ScaleNode etc with ElementTimesNode
2015-12-30 09:11:02 -08:00
Frank Seide cd86e1f301 (comments) 2015-12-29 22:11:57 -08:00
Frank Seide 60187190a9 new base node UnaryElementWiseNode;
SigmoidNode implemented with that
2015-12-29 22:01:37 -08:00
Frank Seide ed35440053 added new tensor operations: And, Or, Xor, ElementwiseProductWithSigmoidDerivative (SigmoidDerivative is only ever used in this context), and Clip 2015-12-29 21:29:17 -08:00
Frank Seide c4356c16f2 reenabled all existing uses of TensorView;
ScaleNode and Row/ColumnElementTimesNode now implemented as ElementTimesNode
2015-12-29 20:50:54 -08:00
Frank Seide e38b8288cb cleaned up tensor reduction code 2015-12-29 20:13:10 -08:00
Frank Seide 4f298fa35d intermediate check-in of heavily instrumented reduction code 2015-12-29 20:02:11 -08:00
Frank Seide 40733c2ab4 towards parallel reduction--works again with 1 block 2015-12-29 15:45:34 -08:00
Frank Seide 5fedb69ea9 towards pallel reduction with multiple chunks 2015-12-29 12:00:00 -08:00
Frank Seide a1affda118 GridDim now distributes over multiprocs more evenly;
fixed two Jenkins failures (a linux link error and a log error)
2015-12-29 10:38:15 -08:00
Frank Seide cdcc4bb3d2 new condition for tensor lib: output cannot be in-place and inverse-broadcasting (reducing) at the same time. This makes reduction easier 2015-12-28 23:48:40 -08:00
Frank Seide 01a33f7bea towards reductions that don't fit into __shared__ memory 2015-12-28 23:07:36 -08:00
Frank Seide c3cf76fc14 (minor change) 2015-12-28 21:35:57 -08:00
Frank Seide e37a053842 TensorOpElement::Compute() now uses tree-based reduction 2015-12-28 20:53:04 -08:00
Frank Seide 24900d073f made gcc happy 2015-12-28 20:03:50 -08:00
Frank Seide d8ce6b71d1 GPUMatrix.cu split: moved TensorView support to separate compilation unit (GPUMatrix had gotten too large for MSVC to compile the fatbin file). No code change otherwise 2015-12-28 19:45:36 -08:00