Conversation
|
For reference, below are sample new instructions. testCrossEntropyEpsDenseCP testCrossEntropyEpsDenseMR testCrossEntropyEpsDenseMRRep testCrossEntropyEpsDenseSP testCrossEntropyEpsDenseSPRep For pre-existing pattern (sum(X_log(U%_%t(V)))) where there is no fourth input, default -1.SCALAR.INT.true operand also generated but ignored: In addition to the unit tests, manual testing done to verify matrixMultWCeMMDense, matrixMultWCeMMSparseDense of LibMatrixMult for parallel (e.g., MatrixMultWCeTask where k=8) and single core (k=1). Also forced matrixMultWCeMMGeneric case via debugger. Included checks like (_mX==null || !_mX.sparse || scalarX) and (_mX==null || !_mX.sparse || scalarX) in matrixMultWCeMM and MatrixMultWCeTask of LibMatrixMult for consistency. All unit tests passed in on-demand build against this branch prior to opening PR: |
|
All tests passed in PR build 214. |
|
Thanks @gweidner - it already looks fine. It would be nice though to simplify the runtime a little bit. Since you deal in any case with scalars (eps or 0), I would recommend to compile for type BASIC a 0 instead of the -1 into the instruction, pass it as a scalar double to libmatrixmult, and simplify the internals of libmatrixmult wcemm accordingly. |
|
also thanks for the cleanup of the lops construction of other quaternary operator types. |
|
Thank you @mboehm7 for the review. I've simplified the scalar processing in LibMatrixMult for wcemm and updated the instruction for BASIC type, e.g., The automated PR build 215 is in progress. |
|
LGTM The test failures of PR build 215 are due to my last commit (tested through eclipse in a shared JVM process which has hidden thread-local initialization issues) - I'll deliver the fix tomorrow morning. |
Basic JSONL Reader Implementation. Basic JSONL Writer Implementation. Basic Parallel JSONL Reader/Writer Implementation. Test Utils and WriteRead Tests DIA project. Closes #93.
This patch adds support to wcemm for handling pattern (sum(X_log(U%_%t(V) + epsilon))).
It leverages functionality from previous PRs under SYSTEMML-510 and SYSTEMML-488 to generalize the wcemm operator with four operands. Also included are 8 new test cases to cover Dense and Sparse-Dense for CP, MR, and Spark plus reduce-side.