5051c9e | Mark Hillebrand | 18 January 2016, 08:33:02 UTC | License change | 18 January 2016, 08:33:02 UTC |
4edd796 | thhoens | 09 January 2016, 12:24:23 UTC | Fixed a bug where the m_elemSizeAllocated was used instead of m_nz | 09 January 2016, 12:24:23 UTC |
ed5d40a | Frank Seide | 08 January 2016, 19:19:50 UTC | changed GetRecurrenceDirections() back to operate on a singly dimension only (multiple dimensions can be realized with BrainScript); towards implementing DataTensorFor() using tensor slices, so that we can reuse that for ShiftNode | 08 January 2016, 19:19:50 UTC |
c1c818c | Frank Seide | 08 January 2016, 05:12:39 UTC | made gcc happy | 08 January 2016, 05:12:39 UTC |
08e6fc1 | Frank Seide | 08 January 2016, 05:11:02 UTC | towards multi-dimensional loops: new interface IRecurrentNode::GetRecurrenceDirections() implemented by old DelayedValueNode, ShiftNode, and partially by analysis code | 08 January 2016, 05:11:02 UTC |
a32704d | Frank Seide | 08 January 2016, 02:20:03 UTC | made gcc happy | 08 January 2016, 02:20:03 UTC |
7520910 | U-FAREAST\fseide | 08 January 2016, 02:11:30 UTC | Merge branch 'master' of https://git.codeplex.com/cntk into fseide/tensors | 08 January 2016, 02:11:30 UTC |
41fb427 | Frank Seide | 08 January 2016, 02:10:07 UTC | fixed a compiler warning in Release (unused variable) | 08 January 2016, 02:10:07 UTC |
6baed48 | Frank Seide | 08 January 2016, 01:13:27 UTC | made gcc happy | 08 January 2016, 01:13:27 UTC |
a961d71 | U-FAREAST\fseide | 08 January 2016, 01:07:06 UTC | Merge branch 'master' of https://git.codeplex.com/cntk into fseide/tensors | 08 January 2016, 01:07:06 UTC |
b770bdc | Frank Seide | 08 January 2016, 01:06:33 UTC | bug fix: incorrect Resize() in DefaultConvolutionEngine::Forward() destroyed content of matrix; bug fix: last update of non-linearities must also correctly set OutputUsedInComputingInputNodesGradients() and likewise input; bug fix: DelayedValueNode::ForwardProp() must correctly handle gaps also for first call before EndForwardProp(); beginnings of much extended DelayedValue node, called ShiftNode (not functional yet); changed IStatefulNode::ImportState() take an rvalue reference (take ownership) | 08 January 2016, 01:06:33 UTC |
de6ac08 | Alexey Kamenev | 07 January 2016, 18:02:27 UTC | Fix for non-spatial BN dimensions. Updated samples. | 07 January 2016, 18:02:27 UTC |
dda0524 | Alexey Kamenev | 07 January 2016, 02:48:43 UTC | Fixed issue with MEL and convo engines, updated samples. | 07 January 2016, 02:50:28 UTC |
98d5b92 | Alexey Kamenev | 06 January 2016, 04:55:00 UTC | Updated samples. | 07 January 2016, 02:50:17 UTC |
71881dc | Alexey Kamenev | 06 January 2016, 01:33:02 UTC | Updated samples. | 07 January 2016, 02:50:07 UTC |
82dafa2 | Alexey Kamenev | 05 January 2016, 22:28:32 UTC | Fixed LearnableParameter and samples to work properly with cuDNN. | 07 January 2016, 02:49:56 UTC |
40ce1af | Amit Agarwal | 07 January 2016, 02:02:32 UTC | Added the ReleaseMatricesAfterBackprop function to sequence training node to release the temp matrices not needed after back propagation is complete for all the children of the nodes | 07 January 2016, 02:02:32 UTC |
87206fc | Amit Agarwal | 07 January 2016, 01:49:49 UTC | Fixed a corner case bug in async buffered gradient aggregation code | 07 January 2016, 01:49:49 UTC |
cb8cedd | Frank Seide | 06 January 2016, 23:11:02 UTC | changed non-linearity gradients to be computed from node output instead of node input (better for mem-sharing/in-place) | 06 January 2016, 23:11:02 UTC |
306e857 | Frank Seide | 06 January 2016, 16:18:32 UTC | renamed DataTensor.h to TensorShape.h. No code changes | 06 January 2016, 16:18:32 UTC |
4650ead | bmitra | 06 January 2016, 07:22:14 UTC | Merge branch 'master' of https://git01.codeplex.com/cntk into bmitra/Changes Conflicts: Source/ComputationNetworkLib/ReshapingNodes.h | 06 January 2016, 07:22:14 UTC |
aeb4a5a | Frank Seide | 06 January 2016, 04:36:24 UTC | accidentally disabled cudnn for Jenkins Image test | 06 January 2016, 04:36:24 UTC |
993f2ce | Frank Seide | 06 January 2016, 03:47:16 UTC | made gcc happy (wrong printf format) | 06 January 2016, 03:47:16 UTC |
51b7614 | Frank Seide | 06 January 2016, 03:42:08 UTC | added derived Reshape() variants ReshapeDimension(), FlattenDimensions(), and SplitDimension to BrainScript; undid accidental commit of a config file modified for a debug test | 06 January 2016, 03:42:08 UTC |
f8e7779 | Frank Seide | 06 January 2016, 03:21:03 UTC | implemented new ReshapeNode (which works with arbitrary tensor dims, but cannot swap dimensions into time--use TransposeNode for that in the future); old ReshapeNode renamed to DeprecatedReshapeNode. Still available from BrainScript for now, while new implementation is invoked as NewReshape(). This will change soon; bug fix: a few Validate() functions did not check isFinalValidationPass and failed on temporary input; bug fix: upwards-compatible Save/Load in convolution nodes by spltting one size_t into two uint32_t got the order wrong; bug fix: convolution nodes should only create convolution engines in final validation | 06 January 2016, 03:21:03 UTC |
4711562 | Frank Seide | 05 January 2016, 22:36:28 UTC | (fixed an error message) | 05 January 2016, 22:36:28 UTC |
30018b7 | Frank Seide | 05 January 2016, 22:19:16 UTC | added a new name "ImageParameter" for LearnableParameter that expects 3 input dimensions which are interpreted as WHC and mapped to actual tensor dimensions according to the optional imageLayout parameter. Adapted the NDL of the Image/QuickE2E test | 05 January 2016, 22:19:16 UTC |
2bf4d0a | bmitra | 05 January 2016, 20:50:35 UTC | Add missing definition to NoGPU.cpp. | 05 January 2016, 20:50:35 UTC |
7e780c3 | Frank Seide | 05 January 2016, 20:11:27 UTC | Past/FutureValue now takes a dimension tensor in BrainScript; removed cols/numImages parameter from InputValue and Past/FutureValue, since those always process data samples. Lots of little deletions in SimpleNetworkBuilder.cpp | 05 January 2016, 20:11:27 UTC |
d63576c | bmitra | 05 January 2016, 18:44:46 UTC | Minor fixes in convolution engine. | 05 January 2016, 18:44:46 UTC |
6f9b664 | Frank Seide | 04 January 2016, 22:20:38 UTC | (added comments) | 04 January 2016, 22:20:38 UTC |
c7dc6f1 | bmitra | 04 January 2016, 20:39:50 UTC | Adding comment for ReshapeNode::InferTargetSampleLayout() | 04 January 2016, 20:39:50 UTC |
6899f5f | bmitra | 04 January 2016, 18:23:01 UTC | Merge branch 'master' of https://git01.codeplex.com/cntk into bmitra/Changes | 04 January 2016, 18:23:01 UTC |
ff9a916 | Frank Seide | 02 January 2016, 04:38:31 UTC | 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 | 02 January 2016, 04:38:31 UTC |
5fc6f34 | Frank Seide | 02 January 2016, 03:20:35 UTC | bug fix in ConvolutionEngineTests.cpp: when testing CPU, use HWC layout | 02 January 2016, 03:20:35 UTC |
2752901 | Frank Seide | 02 January 2016, 03:14:10 UTC | bug fix: Pooling nodes initialized wrong conv-engine factory class | 02 January 2016, 03:14:10 UTC |
22e8ce3 | Frank Seide | 02 January 2016, 01:46:05 UTC | reenabled TensorView for PlusNode--nearly identical result Image/QuickE2E test | 02 January 2016, 01:46:05 UTC |
6d5df56 | Frank Seide | 02 January 2016, 01:31:45 UTC | temporarily disabled TensorView in PlusNode | 02 January 2016, 01:31:45 UTC |
730440e | Frank Seide | 02 January 2016, 01:27:36 UTC | added clipping of log and quotient, as SequenceTraining failed without | 02 January 2016, 01:27:36 UTC |
20f8334 | Frank Seide | 02 January 2016, 00:47:20 UTC | made gcc happy | 02 January 2016, 00:47:20 UTC |
13e4ce9 | Frank Seide | 02 January 2016, 00:38:20 UTC | 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 | 02 January 2016, 00:38:20 UTC |
4ad2575 | Frank Seide | 02 January 2016, 00:14:01 UTC | implemented most non-linearity nodes using the tensor lib | 02 January 2016, 00:14:01 UTC |
0c008a8 | Frank Seide | 01 January 2016, 23:05:19 UTC | added imageLayout parameter to Convolution, MaxPooling, and AveragePooling (only Convolution had it, and BrainScrip only); bug fix: LearnableParameter must also serialize m_sampleLayout | 01 January 2016, 23:05:19 UTC |
ac02cb6 | Frank Seide | 01 January 2016, 21:18:49 UTC | 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 | 01 January 2016, 21:18:49 UTC |
b007ad0 | Frank Seide | 01 January 2016, 21:04:59 UTC | 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 | 01 January 2016, 21:04:59 UTC |
57140d8 | Frank Seide | 01 January 2016, 20:45:08 UTC | made gcc happy; changed ConvolutionEngineTests.cpp to use CHW layout since it only runs with cuDNN | 01 January 2016, 20:45:08 UTC |
8fc4b00 | Frank Seide | 01 January 2016, 20:25:24 UTC | 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 | 01 January 2016, 20:25:24 UTC |
bb4f72c | Frank Seide | 01 January 2016, 18:29:39 UTC | bug fix: that new call to cublas_gemm() should no lonver have the explicit casts to float* | 01 January 2016, 18:29:39 UTC |
12ae06b | Frank Seide | 31 December 2015, 05:20:11 UTC | (comment) | 31 December 2015, 05:20:11 UTC |
57601e5 | Frank Seide | 31 December 2015, 05:19:03 UTC | 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 | 31 December 2015, 05:19:03 UTC |
4e496b9 | Frank Seide | 31 December 2015, 03:55:06 UTC | (deleted some obsolete debug code) | 31 December 2015, 03:55:06 UTC |
43f22ee | Frank Seide | 31 December 2015, 03:51:28 UTC | bug fix: SetMaxTempMemSizeForCNN() was missing the 'double' case; added an optimization to unary TensorOp() to use cublasS/Dgemm() when we are reducing a matrix | 31 December 2015, 03:51:28 UTC |
81affdd | Frank Seide | 31 December 2015, 00:55:27 UTC | switched ReduceElemType to ElemType instead of double while reenabling PlusNode TensorView--desparate to get Image/QuickE2E to pass | 31 December 2015, 00:55:27 UTC |
c87e2f7 | Frank Seide | 31 December 2015, 00:40:49 UTC | disabled TensorView for PlusNode::BackpropTo(), as that causes a difference for Image/QuickE2E; GetTensorShape() now adds the column dimension as one more dimension | 31 December 2015, 00:40:49 UTC |
4ce3b1a | Frank Seide | 31 December 2015, 00:00:02 UTC | switched inaccurate Sigmoid() and PlusNode::BackpropTo() back on; changed Image/QuickE2E to use BrainScript, in order to allow specifiyng tensor dimensions for the bias | 31 December 2015, 00:00:02 UTC |
96cde8e | Frank Seide | 30 December 2015, 22:51:52 UTC | switched to new Sigmoid(), PlusNode::BackpropTo() still not TensorView | 30 December 2015, 22:51:52 UTC |
c7b5c5f | Frank Seide | 30 December 2015, 22:40:53 UTC | re-disabled PlusNode::BackpropTo() once again | 30 December 2015, 22:40:53 UTC |
cb08479 | Frank Seide | 30 December 2015, 22:31:35 UTC | reenabled ENABLE_BROADCASTING_ELEMENTTIMES | 30 December 2015, 22:31:35 UTC |
5a850c3 | Frank Seide | 30 December 2015, 22:30:30 UTC | 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 | 30 December 2015, 22:30:30 UTC |
3076962 | Frank Seide | 30 December 2015, 22:15:00 UTC | disabled TensorView for PlusNode::BackpropTo() and SigmoidNode, now gives the same for Image/QuickE2E | 30 December 2015, 22:15:00 UTC |
35f774d | Frank Seide | 30 December 2015, 20:50:13 UTC | 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() | 30 December 2015, 20:50:13 UTC |
834775e | Frank Seide | 30 December 2015, 19:35:40 UTC | 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 | 30 December 2015, 19:35:40 UTC |
d9d351d | Frank Seide | 30 December 2015, 18:57:08 UTC | bug fix: CeilDiv() overflowed for b == INT_MAX | 30 December 2015, 18:57:08 UTC |
8b72bbc | Frank Seide | 30 December 2015, 17:44:45 UTC | (fix in previous debug logging) | 30 December 2015, 17:44:45 UTC |
c14430a | Frank Seide | 30 December 2015, 17:43:10 UTC | (added heavy logging to track down the crash) | 30 December 2015, 17:43:10 UTC |
a7b42c0 | Frank Seide | 30 December 2015, 17:13:30 UTC | (added logging for tracking down SeqTrain problem) | 30 December 2015, 17:13:30 UTC |
526615a | Frank Seide | 30 December 2015, 17:11:02 UTC | 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 | 30 December 2015, 17:11:02 UTC |
42e39e2 | Frank Seide | 30 December 2015, 06:11:57 UTC | (comments) | 30 December 2015, 06:11:57 UTC |
ef07ac2 | Frank Seide | 30 December 2015, 06:01:37 UTC | new base node UnaryElementWiseNode; SigmoidNode implemented with that | 30 December 2015, 06:01:37 UTC |
37eb175 | Frank Seide | 30 December 2015, 05:29:17 UTC | added new tensor operations: And, Or, Xor, ElementwiseProductWithSigmoidDerivative (SigmoidDerivative is only ever used in this context), and Clip | 30 December 2015, 05:29:17 UTC |
338cd77 | Frank Seide | 30 December 2015, 04:50:54 UTC | reenabled all existing uses of TensorView; ScaleNode and Row/ColumnElementTimesNode now implemented as ElementTimesNode | 30 December 2015, 04:50:54 UTC |
e5013de | Frank Seide | 30 December 2015, 04:13:10 UTC | cleaned up tensor reduction code | 30 December 2015, 04:13:10 UTC |
01f6e71 | Frank Seide | 30 December 2015, 04:02:11 UTC | intermediate check-in of heavily instrumented reduction code | 30 December 2015, 04:02:11 UTC |
10b502b | Frank Seide | 29 December 2015, 23:45:34 UTC | towards parallel reduction--works again with 1 block | 29 December 2015, 23:45:34 UTC |
3f10347 | Frank Seide | 29 December 2015, 20:00:00 UTC | towards pallel reduction with multiple chunks | 29 December 2015, 20:00:00 UTC |
c3ab7a2 | Frank Seide | 29 December 2015, 18:38:15 UTC | GridDim now distributes over multiprocs more evenly; fixed two Jenkins failures (a linux link error and a log error) | 29 December 2015, 18:38:15 UTC |
f1cb457 | Frank Seide | 29 December 2015, 07:48:40 UTC | new condition for tensor lib: output cannot be in-place and inverse-broadcasting (reducing) at the same time. This makes reduction easier | 29 December 2015, 07:48:40 UTC |
76a6777 | Frank Seide | 29 December 2015, 07:07:36 UTC | towards reductions that don't fit into __shared__ memory | 29 December 2015, 07:07:36 UTC |
16c1f8a | Frank Seide | 29 December 2015, 05:35:57 UTC | (minor change) | 29 December 2015, 05:35:57 UTC |
1da8385 | Frank Seide | 29 December 2015, 04:53:04 UTC | TensorOpElement::Compute() now uses tree-based reduction | 29 December 2015, 04:53:04 UTC |
da8f560 | Frank Seide | 29 December 2015, 04:03:50 UTC | made gcc happy | 29 December 2015, 04:03:50 UTC |
22bab75 | Frank Seide | 29 December 2015, 03:45:36 UTC | 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 | 29 December 2015, 03:45:36 UTC |
d27753d | Frank Seide | 29 December 2015, 02:19:07 UTC | parallel reduction within one block now working | 29 December 2015, 02:19:07 UTC |
7881220 | Frank Seide | 29 December 2015, 01:16:00 UTC | new kernel template instance for tensor lib parallel reduction | 29 December 2015, 01:16:00 UTC |
61e37a5 | Frank Seide | 29 December 2015, 00:11:39 UTC | tensor GPU op: inRange flag and using y instead of x for reduction launch | 29 December 2015, 00:11:39 UTC |
20836a8 | Frank Seide | 28 December 2015, 22:51:35 UTC | new nullary tensor op ConstOne; GridDim class now queries actual GPU information | 28 December 2015, 22:51:35 UTC |
d7f0c07 | Frank Seide | 24 December 2015, 11:04:44 UTC | deleted virtual function ComputationNode::InferImageDimsFromInputs() since no longer needed after update of tensor-dim inference. Unary zip ops just copy the layout from their input, and binary zip ops take dimension-wise max (to consider broadcasting) | 24 December 2015, 11:04:44 UTC |
c7a0b62 | Frank Seide | 24 December 2015, 09:48:25 UTC | bug fix: SimpleNetworkBuilder::AddTrainAndEvalCriterionNodes() should not compute 'tinput' for certain training-criterion nodes because 'input' has a different meaning for those; revived BatchSequenceReader, now supports MBLayout::AddSequence() | 24 December 2015, 09:48:25 UTC |
9b8a508 | Frank Seide | 24 December 2015, 07:58:23 UTC | bug fix: ConvolutionNode must not ever change m_sampleLayout numChannels dimension | 24 December 2015, 07:58:23 UTC |
ff0a801 | Frank Seide | 24 December 2015, 07:11:40 UTC | fixed numRows test for 0 dimensions | 24 December 2015, 07:11:40 UTC |
086e62f | Frank Seide | 24 December 2015, 07:02:37 UTC | removed SetDims(size_t,cols) which only set m_numRows. Now, row dimension can only be set together with the sample layout, and in debug builds they are verified against each other | 24 December 2015, 07:02:37 UTC |
9f08610 | Frank Seide | 24 December 2015, 06:29:50 UTC | (minor fix of last commit) | 24 December 2015, 06:29:50 UTC |
bf35c75 | Frank Seide | 24 December 2015, 06:23:20 UTC | inlined all InferImageDimsFromInputs() calls in ConvolutionNodes.h. This allowed to use SetDims(TensorShape,cols) instead of setting numRows and sampleLayout separately | 24 December 2015, 06:23:20 UTC |
d5fd84f | Frank Seide | 24 December 2015, 06:12:24 UTC | removed m_inputSampleLayout. It is only used in ConvolutionNodes.h, and is identical to the input's sample layout, so we can get it where we need it from the input directly | 24 December 2015, 06:12:24 UTC |
6a69048 | Frank Seide | 24 December 2015, 05:33:16 UTC | changed former InferImageDimsFromInput(index) to a getter that just reads out the layout from the child, and all calls to this now assign it manually to the (input)SampleLayout variables, in quest of removing m_inputSampleLayout altogether | 24 December 2015, 05:33:16 UTC |
0864a8c | Frank Seide | 24 December 2015, 05:12:51 UTC | split up InferImageDimsFromInput() into false and true versions | 24 December 2015, 05:12:51 UTC |
db4c5ea | Frank Seide | 24 December 2015, 04:48:08 UTC | SetDims(node) now also clones that node's m_sampleLayout | 24 December 2015, 04:48:08 UTC |
166536b | Frank Seide | 24 December 2015, 04:46:36 UTC | Merge branch 'master' of https://git.codeplex.com/cntk into fseide/tensors | 24 December 2015, 04:46:36 UTC |
df6c25e | Frank Seide | 24 December 2015, 04:45:43 UTC | sorted out various SetDims() calls, towards using SetDims() only to set both m_numRows and m_sampleLayout jointly | 24 December 2015, 04:45:43 UTC |
dfd780a | Frank Seide | 24 December 2015, 04:21:27 UTC | cleaning up order of Validate(): MBLayout is now set first, and SetDim() and InferImageDimsFromInput() are grouped (they will get merged) | 24 December 2015, 04:21:27 UTC |