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__
