You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@singa.apache.org by wa...@apache.org on 2016/04/07 14:59:52 UTC

[1/2] incubator-singa git commit: SINGA-136 Support cuDNN v4

Repository: incubator-singa
Updated Branches:
  refs/heads/master 5f67e578b -> 369d87960


SINGA-136 Support cuDNN v4

fixed cuDnn batchnorm layer bug: test net


Project: http://git-wip-us.apache.org/repos/asf/incubator-singa/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-singa/commit/3b2e8953
Tree: http://git-wip-us.apache.org/repos/asf/incubator-singa/tree/3b2e8953
Diff: http://git-wip-us.apache.org/repos/asf/incubator-singa/diff/3b2e8953

Branch: refs/heads/master
Commit: 3b2e895362a37be11e22bf2dc5651c7d35ce63e1
Parents: 4b4ad05
Author: seaok <se...@gmail.com>
Authored: Thu Apr 7 18:53:50 2016 +0800
Committer: seaok <se...@gmail.com>
Committed: Thu Apr 7 18:53:50 2016 +0800

----------------------------------------------------------------------
 examples/cifar10/cudnn_bm.conf         | 42 +++++++++++++++++++++++++++++
 include/singa/neuralnet/neuron_layer.h |  8 ++++--
 src/neuralnet/neuron_layer/bm.cc       | 12 +++------
 src/neuralnet/neuron_layer/cudnn_bm.cc | 10 +++----
 4 files changed, 56 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/3b2e8953/examples/cifar10/cudnn_bm.conf
----------------------------------------------------------------------
diff --git a/examples/cifar10/cudnn_bm.conf b/examples/cifar10/cudnn_bm.conf
index 071ed8a..2ca30cb 100644
--- a/examples/cifar10/cudnn_bm.conf
+++ b/examples/cifar10/cudnn_bm.conf
@@ -127,6 +127,20 @@ neuralnet {
 		  value:0
 		}
 	  }
+	  param {
+		name: "s13"
+		init {
+		  type:kConstant
+		  value:0
+		}
+	  }
+	  param {
+		name: "s14"
+		init {
+		  type:kConstant
+		  value:0
+		}
+	  }
     srclayers:"pool1"
   }
   layer {
@@ -182,6 +196,20 @@ neuralnet {
 		  value:0
 		}
 	  }
+	  param {
+		name: "s23"
+		init {
+		  type:kConstant
+		  value:0
+		}
+	  }
+	  param {
+		name: "s24"
+		init {
+		  type:kConstant
+		  value:0
+		}
+	  }
     srclayers:"conv2"
   }
   layer {
@@ -247,6 +275,20 @@ neuralnet {
 		  value:0
 		}
 	  }
+	  param {
+		name: "s33"
+		init {
+		  type:kConstant
+		  value:0
+		}
+	  }
+	  param {
+		name: "s34"
+		init {
+		  type:kConstant
+		  value:0
+		}
+	  }
     srclayers:"conv3"
   }
   layer {

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/3b2e8953/include/singa/neuralnet/neuron_layer.h
----------------------------------------------------------------------
diff --git a/include/singa/neuralnet/neuron_layer.h b/include/singa/neuralnet/neuron_layer.h
index 3cdc137..7c041f1 100644
--- a/include/singa/neuralnet/neuron_layer.h
+++ b/include/singa/neuralnet/neuron_layer.h
@@ -359,6 +359,7 @@ class BMLayer : public NeuronLayer {
   void ComputeGradient(int flag, const vector<Layer*>& srclayers) override;
  protected:
   Param *bnScale_, *bnBias_;
+  Param *resultRunningMean_, *resultRunningInvVariance_;
   int batchsize_,  channels_, height_, width_;
 };
 
@@ -468,14 +469,17 @@ class CudnnBMLayer : public BMLayer, public CudnnBase {
   void InitCudnn() override;
   void ComputeFeature(int flag, const vector<Layer*>& srclayers) override;
   void ComputeGradient(int flag, const vector<Layer*>& srclayers) override;
+  const std::vector<Param*> GetParams() const override {
+    std::vector<Param*> params{bnScale_, bnBias_,
+        resultRunningMean_, resultRunningInvVariance_};
+    return params;
+  }
  protected:
   cudnnBatchNormMode_t mode_;
   cudnnTensorDescriptor_t bnScaleBiasMeanVar_desc_;
   cudnnTensorDescriptor_t bnScaleBiasDiff_desc_;
   Blob<float> resultSaveMean_;
   Blob<float> resultSaveInvVariance_;
-  Blob<float> resultRunningMean_;
-  Blob<float> resultRunningInvVariance_;
 };
 #endif  // USE_CUDNN
 

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/3b2e8953/src/neuralnet/neuron_layer/bm.cc
----------------------------------------------------------------------
diff --git a/src/neuralnet/neuron_layer/bm.cc b/src/neuralnet/neuron_layer/bm.cc
index 5784595..66e303c 100644
--- a/src/neuralnet/neuron_layer/bm.cc
+++ b/src/neuralnet/neuron_layer/bm.cc
@@ -45,16 +45,12 @@ void BMLayer::Setup(const LayerProto& conf,
 
   bnBias_ = Param::Create(conf.param(1));
   bnBias_->Setup(vector<int>{1, channels_, 1, 1});
-  bnScale_->InitValues(1);
 
- /* float* p = bnScale_->data().mutable_cpu_data();
+  resultRunningMean_ = Param::Create(conf.param(2));
+  resultRunningMean_->Setup(vector<int>{1, channels_, 1, 1});
 
-  cout<<"inite param"<<endl;
-  for(int i=0;i<3;++i) {
-//	p[i]=1.0;
-	cout<<p[i]<<" ";
-  }
-  cout<<endl;*/
+  resultRunningInvVariance_ = Param::Create(conf.param(3));
+  resultRunningInvVariance_->Setup(vector<int>{1, channels_, 1, 1});
 }
 
 void BMLayer::ComputeFeature(int flag, const vector<Layer*>& srclayers) {

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/3b2e8953/src/neuralnet/neuron_layer/cudnn_bm.cc
----------------------------------------------------------------------
diff --git a/src/neuralnet/neuron_layer/cudnn_bm.cc b/src/neuralnet/neuron_layer/cudnn_bm.cc
index fdc9ea9..d33c61d 100644
--- a/src/neuralnet/neuron_layer/cudnn_bm.cc
+++ b/src/neuralnet/neuron_layer/cudnn_bm.cc
@@ -69,8 +69,6 @@ void CudnnBMLayer::InitCudnn() {
 
   resultSaveMean_.Reshape(shape);
   resultSaveInvVariance_.Reshape(shape);
-  resultRunningMean_.Reshape(shape);
-  resultRunningInvVariance_.Reshape(shape);
 
   mode_ = CUDNN_BATCHNORM_SPATIAL;
 }
@@ -97,8 +95,8 @@ void CudnnBMLayer::ComputeFeature(int flag,
           bnScaleBiasMeanVar_desc_,
           bnScale_->data().gpu_data(),
           bnBias_->data().gpu_data(),
-          resultRunningMean_.gpu_data(),
-          resultRunningInvVariance_.gpu_data(),
+          resultRunningMean_->data().gpu_data(),
+          resultRunningInvVariance_->data().gpu_data(),
           epsilon));
   } else {
     CHECK_CUDNN(cudnnBatchNormalizationForwardTraining(handle_,
@@ -113,8 +111,8 @@ void CudnnBMLayer::ComputeFeature(int flag,
           bnScale_->data().gpu_data(),
           bnBias_->data().gpu_data(),
           exponentialAverageFactor,
-          resultRunningMean_.mutable_gpu_data(),
-          resultRunningInvVariance_.mutable_gpu_data(),
+          resultRunningMean_->data().mutable_gpu_data(),
+          resultRunningInvVariance_->data().mutable_gpu_data(),
           epsilon,
           resultSaveMean_.mutable_gpu_data(),
           resultSaveInvVariance_.mutable_gpu_data()));


[2/2] incubator-singa git commit: SINGA-136 Support cuDNN v4

Posted by wa...@apache.org.
SINGA-136 Support cuDNN v4

Merge branch 'cudnnv4' into latest


Project: http://git-wip-us.apache.org/repos/asf/incubator-singa/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-singa/commit/369d8796
Tree: http://git-wip-us.apache.org/repos/asf/incubator-singa/tree/369d8796
Diff: http://git-wip-us.apache.org/repos/asf/incubator-singa/diff/369d8796

Branch: refs/heads/master
Commit: 369d8796075778724708ddc4cafba0f9170257dd
Parents: 5f67e57 3b2e895
Author: Wei Wang <wa...@comp.nus.edu.sg>
Authored: Thu Apr 7 20:52:11 2016 +0800
Committer: Wei Wang <wa...@comp.nus.edu.sg>
Committed: Thu Apr 7 20:58:29 2016 +0800

----------------------------------------------------------------------
 examples/cifar10/cudnn_bm.conf         | 42 +++++++++++++++++++++++++++++
 include/singa/neuralnet/neuron_layer.h |  8 ++++--
 src/neuralnet/neuron_layer/bm.cc       | 12 +++------
 src/neuralnet/neuron_layer/cudnn_bm.cc | 10 +++----
 4 files changed, 56 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/369d8796/include/singa/neuralnet/neuron_layer.h
----------------------------------------------------------------------
diff --cc include/singa/neuralnet/neuron_layer.h
index 151cdf9,7c041f1..e6f0fd5
--- a/include/singa/neuralnet/neuron_layer.h
+++ b/include/singa/neuralnet/neuron_layer.h
@@@ -485,10 -480,7 +491,8 @@@ class CudnnBMLayer : public BMLayer, pu
    cudnnTensorDescriptor_t bnScaleBiasDiff_desc_;
    Blob<float> resultSaveMean_;
    Blob<float> resultSaveInvVariance_;
-   Blob<float> resultRunningMean_;
-   Blob<float> resultRunningInvVariance_;
  };
 +#endif
  #endif  // USE_CUDNN
  
  /******************** RBM layers *****************/

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/369d8796/src/neuralnet/neuron_layer/cudnn_bm.cc
----------------------------------------------------------------------
diff --cc src/neuralnet/neuron_layer/cudnn_bm.cc
index 257b8e3,d33c61d..ca90007
--- a/src/neuralnet/neuron_layer/cudnn_bm.cc
+++ b/src/neuralnet/neuron_layer/cudnn_bm.cc
@@@ -113,8 -111,8 +111,8 @@@ void CudnnBMLayer::ComputeFeature(int f
            bnScale_->data().gpu_data(),
            bnBias_->data().gpu_data(),
            exponentialAverageFactor,
-           resultRunningMean_.mutable_gpu_data(),
-           resultRunningInvVariance_.mutable_gpu_data(),
 -          resultRunningMean_->data().mutable_gpu_data(),
 -          resultRunningInvVariance_->data().mutable_gpu_data(),
++          resultRunningMean_->mutable_data()->mutable_gpu_data(),
++          resultRunningInvVariance_->mutable_data()->mutable_gpu_data(),
            epsilon,
            resultSaveMean_.mutable_gpu_data(),
            resultSaveInvVariance_.mutable_gpu_data()));