[MINOR] Performance / cleanup conv2d R test script (vectorized biasadd)

Project: http://git-wip-us.apache.org/repos/asf/systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/8fbeca14
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/8fbeca14
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/8fbeca14

Branch: refs/heads/master
Commit: 8fbeca142c1fbb8f2786a1097fb9840be5ca8005
Parents: fce9d97
Author: Matthias Boehm <[email protected]>
Authored: Thu Aug 2 22:53:30 2018 -0700
Committer: Matthias Boehm <[email protected]>
Committed: Thu Aug 2 22:54:13 2018 -0700

----------------------------------------------------------------------
 src/test/scripts/functions/tensor/Conv2DTest.R | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/systemml/blob/8fbeca14/src/test/scripts/functions/tensor/Conv2DTest.R
----------------------------------------------------------------------
diff --git a/src/test/scripts/functions/tensor/Conv2DTest.R 
b/src/test/scripts/functions/tensor/Conv2DTest.R
index dbe9ea4..41ae7ed 100644
--- a/src/test/scripts/functions/tensor/Conv2DTest.R
+++ b/src/test/scripts/functions/tensor/Conv2DTest.R
@@ -105,19 +105,14 @@ conv2d <- function(X, W, C, Hin, Win, Hf, Wf, strideh, 
stridew, padh, padw) {
   out
 }
 
-output = conv2d(x, w, numChannels,  imgSize, imgSize, filterSize, filterSize, 
stride, stride, pad, pad);
+R = conv2d(x, w, numChannels,  imgSize, imgSize, filterSize, filterSize, 
stride, stride, pad, pad);
 Hout = as.integer((imgSize + 2 * pad - filterSize) / stride + 1)
 Wout = Hout
 
-b=matrix(seq(1, numFilters), numFilters, 1, byrow=TRUE) 
+b = matrix(seq(1, numFilters), numFilters, 1, byrow=TRUE) 
 for(k in 0:(numFilters-1)) {
-       for(i in 1:nrow(output)) {
-               start = k*Hout*Hout;
-               for(j in 1:(Hout*Hout)) {
-                       output[i,start+j] = output[i,start+j] + b[k+1,1]
-               }
-       }
+  start = k*Hout^2;
+  R[,(start+1):(start+Hout^2)] = R[,(start+1):(start+Hout^2)] + b[k+1,1]
 }
 
-
-writeMM(as(output,"CsparseMatrix"), paste(args[8], "B", sep=""))
+writeMM(as(R,"CsparseMatrix"), paste(args[8], "B", sep=""))

Reply via email to