This is an automated email from the ASF dual-hosted git repository.
markd pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/systemds.git
The following commit(s) were added to refs/heads/master by this push:
new 3315eb6 [MINOR] Correcting a logic error while deciding to avoid
execution on empty input in SpoofCUDACellwise
3315eb6 is described below
commit 3315eb62ab593f4526f307a6037a8d80109559db
Author: Mark Dokter <[email protected]>
AuthorDate: Thu Feb 25 13:00:42 2021 +0100
[MINOR] Correcting a logic error while deciding to avoid execution on empty
input in SpoofCUDACellwise
---
.../org/apache/sysds/runtime/codegen/SpoofCUDACellwise.java | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git
a/src/main/java/org/apache/sysds/runtime/codegen/SpoofCUDACellwise.java
b/src/main/java/org/apache/sysds/runtime/codegen/SpoofCUDACellwise.java
index 6963c2d..4ea153c 100644
--- a/src/main/java/org/apache/sysds/runtime/codegen/SpoofCUDACellwise.java
+++ b/src/main/java/org/apache/sysds/runtime/codegen/SpoofCUDACellwise.java
@@ -64,7 +64,6 @@ public class SpoofCUDACellwise extends SpoofCellwise
implements SpoofCUDAOperato
LOG.error("SpoofCUDA " + getSpoofType() + " operator
failed to execute. Trying Java fallback.\n");
// ToDo: java fallback
}
-
LibMatrixCUDA.cudaSupportFunctions.deviceToHost(ec.getGPUContext(0), ptr,
result, getName(), false);
return new DoubleObject(result[0]);
@@ -110,7 +109,7 @@ public class SpoofCUDACellwise extends SpoofCellwise
implements SpoofCUDAOperato
// ec.setMetaData(outputName, out_rows, out_cols);
GPUObject g = a.getGPUObject(gctx);
- boolean sparseOut = _type == CellType.NO_AGG && sparseSafe &&
g.isSparse();;
+ boolean sparseOut = _type == CellType.NO_AGG && sparseSafe &&
g.isSparse();
long nnz = g.getNnz("spoofCUDA" + getSpoofType(), false);
if(sparseOut)
@@ -119,9 +118,9 @@ public class SpoofCUDACellwise extends SpoofCellwise
implements SpoofCUDAOperato
(ec.getSparseMatrixOutputForGPUInstruction(outputName, out_rows, out_cols,
(isSparseSafe() && nnz > 0) ?
nnz : out_rows *
out_cols).getKey()) :
(ec.getDenseMatrixOutputForGPUInstruction(outputName, out_rows,
out_cols).getKey());
-
+
int offset = 1;
- if(!(inputIsEmpty(a.getGPUObject(gctx)) && sparseSafe )) {
+ if(!inputIsEmpty(a.getGPUObject(gctx)) || !sparseSafe) {
if(call.exec(ec, this, ID, prepareInputPointers(ec,
inputs, offset), prepareSideInputPointers(ec, inputs, offset, false),
prepareOutputPointers(ec, out_obj, sparseOut),
scalarObjects, 0) != 0) {
LOG.error("SpoofCUDA " + getSpoofType() + "
operator failed to execute. Trying Java fallback.(ToDo)\n");
@@ -132,9 +131,7 @@ public class SpoofCUDACellwise extends SpoofCellwise
implements SpoofCUDAOperato
}
private boolean inputIsEmpty(GPUObject g) {
- if(g.getDensePointer() != null ||
g.getSparseMatrixCudaPointer() != null)
- return true;
- return false;
+ return g.getDensePointer() == null &&
g.getSparseMatrixCudaPointer() == null;
}
// used to determine sparse safety