This is an automated email from the ASF dual-hosted git repository. mboehm7 pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/systemds.git
commit 89720cc90aab994ac2ff11d213a324b22d2b1498 Author: Matthias Boehm <[email protected]> AuthorDate: Sun Aug 7 15:22:38 2022 +0200 [MINOR] Mark additional unary ops for multi-threaded operations This patch adds a few missing operations so the compiler generates multi-threaded unary operations. On 10M x 1K (80GB) round operations this improved local performance substantially by more than 50s. --- src/main/java/org/apache/sysds/hops/UnaryOp.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/apache/sysds/hops/UnaryOp.java b/src/main/java/org/apache/sysds/hops/UnaryOp.java index 38a20fffc0..430c181552 100644 --- a/src/main/java/org/apache/sysds/hops/UnaryOp.java +++ b/src/main/java/org/apache/sysds/hops/UnaryOp.java @@ -173,8 +173,8 @@ public class UnaryOp extends MultiThreadedHop final boolean inplace = OptimizerUtils.ALLOW_UNARY_UPDATE_IN_PLACE && input.getParent().size() == 1 && (!(input instanceof DataOp) || !((DataOp) input).isRead()); - k = isCumulativeUnaryOperation() || isExpensiveUnaryOperation() ? OptimizerUtils - .getConstrainedNumThreads(_maxNumThreads) : 1; + k = isCumulativeUnaryOperation() || isExpensiveUnaryOperation() ? + OptimizerUtils.getConstrainedNumThreads(_maxNumThreads) : 1; ret = new Unary(input.constructLops(), _op, getDataType(), getValueType(), et, k, inplace); } } @@ -450,14 +450,13 @@ public class UnaryOp extends MultiThreadedHop || _op == OpOp1.CAST_AS_INT); } - public boolean isExpensiveUnaryOperation() { - return (_op == OpOp1.EXP - || _op == OpOp1.LOG - || _op == OpOp1.SIGMOID - || _op == OpOp1.COMPRESS - || _op == OpOp1.DECOMPRESS - || _op == OpOp1.MEDIAN - || _op == OpOp1.IQM); + public boolean isExpensiveUnaryOperation() { + return (_op == OpOp1.EXP || _op == OpOp1.LOG + || _op == OpOp1.ROUND || _op == OpOp1.FLOOR || _op == OpOp1.CEIL + || _op == OpOp1.SIGMOID || _op == OpOp1.SPROP || _op == OpOp1.SOFTMAX + || _op == OpOp1.TAN || _op == OpOp1.TANH || _op == OpOp1.ATAN + || _op == OpOp1.COMPRESS || _op == OpOp1.DECOMPRESS + || _op == OpOp1.MEDIAN || _op == OpOp1.IQM); } public boolean isMetadataOperation() {
