SINGA-100 Implement layers using CUDNN for GPU training

check with cpplint


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

Branch: refs/heads/master
Commit: 8ac511c70a43c9cb5db354643b186fd4205a7104
Parents: f3b47c7
Author: WANG Sheng <[email protected]>
Authored: Wed Dec 16 20:10:06 2015 +0800
Committer: WANG Sheng <[email protected]>
Committed: Wed Dec 16 20:10:06 2015 +0800

----------------------------------------------------------------------
 include/singa/neuralnet/loss_layer.h    |  3 +++
 include/singa/neuralnet/neuron_layer.h  |  2 +-
 include/singa/neuralnet/output_layer.h  |  1 +
 include/singa/utils/context.h           |  1 -
 include/singa/utils/math_blob.h         |  4 ++--
 src/driver.cc                           |  8 +++-----
 src/neuralnet/input_layer/deprecated.cc |  2 +-
 src/neuralnet/loss_layer/euclidean.cc   |  2 +-
 src/neuralnet/loss_layer/softmax.cc     |  2 +-
 src/neuralnet/neuron_layer/dummy.cc     |  2 +-
 src/neuralnet/neuron_layer/rbm.cc       |  1 -
 src/neuralnet/output_layer/accuracy.cc  |  2 +-
 src/test/test_connection_layers.cc      |  3 ---
 src/test/test_math.cc                   | 10 ++++++----
 src/utils/blob.cc                       |  2 +-
 src/utils/math_kernel.cu                |  3 ---
 16 files changed, 22 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/8ac511c7/include/singa/neuralnet/loss_layer.h
----------------------------------------------------------------------
diff --git a/include/singa/neuralnet/loss_layer.h 
b/include/singa/neuralnet/loss_layer.h
index 3a45370..53ddc82 100644
--- a/include/singa/neuralnet/loss_layer.h
+++ b/include/singa/neuralnet/loss_layer.h
@@ -22,8 +22,11 @@
 #ifndef SINGA_NEURALNET_LOSS_LAYER_H_
 #define SINGA_NEURALNET_LOSS_LAYER_H_
 
+#include <vector>
+#include <string>
 #include "singa/neuralnet/layer.h"
 #include "singa/neuralnet/neuron_layer.h"
+
 namespace singa {
 using std::vector;
 /**

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/8ac511c7/include/singa/neuralnet/neuron_layer.h
----------------------------------------------------------------------
diff --git a/include/singa/neuralnet/neuron_layer.h 
b/include/singa/neuralnet/neuron_layer.h
index 393eeb4..0b936c4 100644
--- a/include/singa/neuralnet/neuron_layer.h
+++ b/include/singa/neuralnet/neuron_layer.h
@@ -23,6 +23,7 @@
 #define SINGA_NEURALNET_NEURON_LAYER_H_
 
 #include <vector>
+#include <string>
 #include "singa/neuralnet/layer.h"
 #include "singa/proto/job.pb.h"
 #include "singa/utils/context.h"
@@ -416,7 +417,6 @@ class RBMVisLayer: public RBMLayer, public LossLayer {
   Layer* input_layer_;
   float error_ = 0.0f;
   int counter_ = 0;
-
 };
 /**
  * RBM hidden layer

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/8ac511c7/include/singa/neuralnet/output_layer.h
----------------------------------------------------------------------
diff --git a/include/singa/neuralnet/output_layer.h 
b/include/singa/neuralnet/output_layer.h
index 49a3c19..c7e5d6a 100644
--- a/include/singa/neuralnet/output_layer.h
+++ b/include/singa/neuralnet/output_layer.h
@@ -23,6 +23,7 @@
 #define SINGA_NEURALNET_OUTPUT_LAYER_H_
 
 #include <vector>
+#include <string>
 #include "singa/neuralnet/layer.h"
 #include "singa/io/store.h"
 

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/8ac511c7/include/singa/utils/context.h
----------------------------------------------------------------------
diff --git a/include/singa/utils/context.h b/include/singa/utils/context.h
index 5d49dc1..a2bc64f 100644
--- a/include/singa/utils/context.h
+++ b/include/singa/utils/context.h
@@ -263,7 +263,6 @@ class Context {
   std::vector<cudnnHandle_t> cudnn_handle_;
 #endif
 #endif
-
 };
 
 }  // namespace singa

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/8ac511c7/include/singa/utils/math_blob.h
----------------------------------------------------------------------
diff --git a/include/singa/utils/math_blob.h b/include/singa/utils/math_blob.h
index 8807bdb..301b72f 100644
--- a/include/singa/utils/math_blob.h
+++ b/include/singa/utils/math_blob.h
@@ -586,8 +586,8 @@ void MVSumRow(Dtype alpha, Dtype beta, const Blob<Dtype> & 
A, Blob<Dtype> * B) {
   if (device == -1) {
     Blob<Dtype> one(m);
     one.SetValue(1);
-    cpu_gemm(one.cpu_data(), A.cpu_data(), 1, n, m, alpha, beta, false, 
A.transpose(),
-        B->mutable_cpu_data());
+    cpu_gemm(one.cpu_data(), A.cpu_data(), 1, n, m, alpha, beta, false,
+             A.transpose(), B->mutable_cpu_data());
   } else {
 #ifdef USE_GPU
     singa_gpu_sum_row(A.gpu_data(), B->mutable_gpu_data(), m, n, n);

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/8ac511c7/src/driver.cc
----------------------------------------------------------------------
diff --git a/src/driver.cc b/src/driver.cc
index b86da7c..ed1b6b4 100644
--- a/src/driver.cc
+++ b/src/driver.cc
@@ -142,16 +142,14 @@ void Driver::Init(int argc, char **argv) {
   RegisterParamGenerator<UniformSqrtFanInOutGen>(kUniformSqrtFanInOut);
 }
 
-void Driver::InitLog(char* arg)
-{
+void Driver::InitLog(char* arg) {
     google::InitGoogleLogging(arg);
 }
 
-void Driver::Train(bool resume, const std::string str){
+void Driver::Train(bool resume, const std::string str) {
   JobProto job_conf;
   job_conf.ParseFromString(str);
-  Train(resume,job_conf);
-
+  Train(resume, job_conf);
 }
 
 void Driver::Train(bool resume, const JobProto& job_conf) {

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/8ac511c7/src/neuralnet/input_layer/deprecated.cc
----------------------------------------------------------------------
diff --git a/src/neuralnet/input_layer/deprecated.cc 
b/src/neuralnet/input_layer/deprecated.cc
index dfba675..d2901f7 100644
--- a/src/neuralnet/input_layer/deprecated.cc
+++ b/src/neuralnet/input_layer/deprecated.cc
@@ -130,7 +130,7 @@ void LMDBDataLayer::ComputeFeature(int flag, const 
vector<Layer*>& srclayers) {
   if (random_skip_) {
     std::uniform_int_distribution<int> distribution(0, random_skip_);
     auto generator =
-      
Singleton<Context>::Instance()->rand_generator(std::this_thread::get_id());
+     
Singleton<Context>::Instance()->rand_generator(std::this_thread::get_id());
     int nskip = distribution(*generator);
 
     int n = 0;

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/8ac511c7/src/neuralnet/loss_layer/euclidean.cc
----------------------------------------------------------------------
diff --git a/src/neuralnet/loss_layer/euclidean.cc 
b/src/neuralnet/loss_layer/euclidean.cc
index 49179d6..67c0cd5 100644
--- a/src/neuralnet/loss_layer/euclidean.cc
+++ b/src/neuralnet/loss_layer/euclidean.cc
@@ -51,7 +51,7 @@ void EuclideanLossLayer::ComputeFeature(int flag,
         (input_dptr[i] - reconstruct_dptr[i]);
   }
   loss_ += loss / srclayers[0]->data(this).shape()[0];
-  counter_ ++;
+  counter_++;
 }
 
 void EuclideanLossLayer::ComputeGradient(int flag,

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/8ac511c7/src/neuralnet/loss_layer/softmax.cc
----------------------------------------------------------------------
diff --git a/src/neuralnet/loss_layer/softmax.cc 
b/src/neuralnet/loss_layer/softmax.cc
index 5a3d257..7956470 100644
--- a/src/neuralnet/loss_layer/softmax.cc
+++ b/src/neuralnet/loss_layer/softmax.cc
@@ -82,7 +82,7 @@ void SoftmaxLossLayer::ComputeFeature(int flag,
   CHECK_EQ(probptr, prob.dptr + prob.shape.Size());
   loss_ += loss * scale_ / (1.0f * batchsize_);
   accuracy_ += precision * scale_ / (1.0f * batchsize_);
-  counter_ ++;
+  counter_++;
 }
 
 void SoftmaxLossLayer::ComputeGradient(int flag,

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/8ac511c7/src/neuralnet/neuron_layer/dummy.cc
----------------------------------------------------------------------
diff --git a/src/neuralnet/neuron_layer/dummy.cc 
b/src/neuralnet/neuron_layer/dummy.cc
index 9b352dd..a242f75 100644
--- a/src/neuralnet/neuron_layer/dummy.cc
+++ b/src/neuralnet/neuron_layer/dummy.cc
@@ -19,8 +19,8 @@
 *
 *************************************************************/
 
-#include "singa/neuralnet/neuron_layer.h"
 #include <glog/logging.h>
+#include "singa/neuralnet/neuron_layer.h"
 
 namespace singa {
 

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/8ac511c7/src/neuralnet/neuron_layer/rbm.cc
----------------------------------------------------------------------
diff --git a/src/neuralnet/neuron_layer/rbm.cc 
b/src/neuralnet/neuron_layer/rbm.cc
index 69ffa62..92c2371 100644
--- a/src/neuralnet/neuron_layer/rbm.cc
+++ b/src/neuralnet/neuron_layer/rbm.cc
@@ -52,7 +52,6 @@ void RBMLayer::Setup(const LayerProto& conf, const 
vector<Layer*>& srclayers) {
   hdim_ = conf.rbm_conf().hdim();
   gaussian_ = conf.rbm_conf().gaussian();
   first_gibbs_ = true;
-  //pos_data_, neg_data_, neg_sample_, pos_sample_
   datavec_.clear();
   datavec_.push_back(&pos_data_);
   datavec_.push_back(&neg_data_);

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/8ac511c7/src/neuralnet/output_layer/accuracy.cc
----------------------------------------------------------------------
diff --git a/src/neuralnet/output_layer/accuracy.cc 
b/src/neuralnet/output_layer/accuracy.cc
index 21107df..53a9406 100644
--- a/src/neuralnet/output_layer/accuracy.cc
+++ b/src/neuralnet/output_layer/accuracy.cc
@@ -46,7 +46,7 @@ void AccuracyLayer::ComputeFeature(int flag,
     }
   }
   accuracy_ += ncorrect * 1.0f / batchsize_;
-  counter_ ++;
+  counter_++;
 }
 
 const std::string AccuracyLayer::ToString(bool debug, int flag) {

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/8ac511c7/src/test/test_connection_layers.cc
----------------------------------------------------------------------
diff --git a/src/test/test_connection_layers.cc 
b/src/test/test_connection_layers.cc
index a10d3be..28ae341 100644
--- a/src/test/test_connection_layers.cc
+++ b/src/test/test_connection_layers.cc
@@ -26,9 +26,6 @@
 #include "singa/comm/msg.h"
 #include "singa/comm/socket.h"
 #include "singa/neuralnet/connection_layer.h"
-#include "singa/neuralnet/connection_layer.h"
-#include "singa/neuralnet/connection_layer.h"
-#include "singa/neuralnet/connection_layer.h"
 #include "singa/neuralnet/neuron_layer.h"
 #include "singa/proto/job.pb.h"
 

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/8ac511c7/src/test/test_math.cc
----------------------------------------------------------------------
diff --git a/src/test/test_math.cc b/src/test/test_math.cc
index 6583b3d..2e7deec 100644
--- a/src/test/test_math.cc
+++ b/src/test/test_math.cc
@@ -158,7 +158,8 @@ TEST(MathTest, TestGemmGPU) {
   cudaMemcpy(B_gpu, B, 3*2*sizeof(float), cudaMemcpyHostToDevice);
   auto context = Singleton<Context>::Instance();
   context->SetupDevice(std::this_thread::get_id(), 0);
-  gpu_gemm<float>(context->cublas_handle(0), A_gpu, B_gpu, 2, 2, 3 , 1, 0, 
true, false, C_gpu);
+  gpu_gemm<float>(context->cublas_handle(0), A_gpu, B_gpu, 2, 2, 3 , 1, 0, 
true,
+                  false, C_gpu);
 
   cudaMemcpy(C, C_gpu, 2*2*sizeof(float), cudaMemcpyDeviceToHost);
 
@@ -212,7 +213,8 @@ TEST(MathTest, TestGemvGPU) {
   cudaMemcpy(C_gpu, C, 3*sizeof(float), cudaMemcpyHostToDevice);
   auto context = Singleton<Context>::Instance();
   context->SetupDevice(std::this_thread::get_id(), 0);
-  gpu_gemv<float>(context->cublas_handle(0), A_gpu, B_gpu, 4, 3, 1.0f, 1.0f, 
true, C_gpu);
+  gpu_gemv<float>(context->cublas_handle(0), A_gpu, B_gpu, 4, 3, 1.0f, 1.0f,
+                  true, C_gpu);
 
   cudaMemcpy(C, C_gpu, 3*sizeof(float), cudaMemcpyDeviceToHost);
 
@@ -320,8 +322,8 @@ TEST(MathTest, TestSingaSumRowGPU) {
 
   for (int i = 0; i < 3; i++) {
     for (int j = 0; j < 4; j++) {
-      //A[i][j] = i + j;
-         A[i][j] = 1.0f;
+      // A[i][j] = i + j;
+      A[i][j] = 1.0f;
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/8ac511c7/src/utils/blob.cc
----------------------------------------------------------------------
diff --git a/src/utils/blob.cc b/src/utils/blob.cc
index 8e30060..a49d169 100644
--- a/src/utils/blob.cc
+++ b/src/utils/blob.cc
@@ -215,7 +215,7 @@ void Blob<Dtype>::CopyFrom(const Blob& source) {
 template <typename Dtype>
 void Blob<Dtype>::CopyFrom(const Blob& source, bool shape_check) {
   LOG(WARNING) << "Better use Copy(const Blob&, Blob*)";
-  CHECK_EQ (source.count(), count()) << " cp between blobs of diff size";
+  CHECK_EQ(source.count(), count()) << " cp between blobs of diff size";
 
   if (shape_check &&
       !std::equal(shape_.begin(), shape_.end(), source.shape_.begin())) {

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/8ac511c7/src/utils/math_kernel.cu
----------------------------------------------------------------------
diff --git a/src/utils/math_kernel.cu b/src/utils/math_kernel.cu
index fe543d7..65d7067 100644
--- a/src/utils/math_kernel.cu
+++ b/src/utils/math_kernel.cu
@@ -131,9 +131,6 @@ void kernel_sum_row(const float *src_mat_data,
 
   __syncthreads();
   dst_vec_data[j] = aux[0];
-
-
-
 }
 
 __global__

Reply via email to