From 02655a229e148e31590165faeca2f6e553816732 Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Wed, 2 Aug 2017 18:16:04 +0800 Subject: [PATCH] Return Reference Instead Pointer to GetEigenDevice --- paddle/framework/operator.cc | 8 ++++---- paddle/framework/operator.h | 2 +- paddle/operators/add_op.h | 3 +-- paddle/operators/mean_op.h | 2 +- paddle/operators/mul_op.h | 2 +- paddle/operators/rowwise_add_op.h | 2 +- paddle/operators/sgd_op.h | 2 +- paddle/operators/sigmoid_op.h | 3 +-- paddle/operators/softmax_op.h | 4 ++-- 9 files changed, 13 insertions(+), 15 deletions(-) diff --git a/paddle/framework/operator.cc b/paddle/framework/operator.cc index cfe9cba308..cb86e6be2b 100644 --- a/paddle/framework/operator.cc +++ b/paddle/framework/operator.cc @@ -20,16 +20,16 @@ namespace paddle { namespace framework { template <> -Eigen::DefaultDevice* ExecutionContext::GetEigenDevice< +Eigen::DefaultDevice& ExecutionContext::GetEigenDevice< platform::CPUPlace, Eigen::DefaultDevice>() const { - return device_context_.get_eigen_device(); + return *device_context_.get_eigen_device(); } #ifndef PADDLE_ONLY_CPU template <> -Eigen::GpuDevice* +Eigen::GpuDevice& ExecutionContext::GetEigenDevice() const { - return device_context_.get_eigen_device(); + return *device_context_.get_eigen_device(); } #endif diff --git a/paddle/framework/operator.h b/paddle/framework/operator.h index 0832a663dd..5543510348 100644 --- a/paddle/framework/operator.h +++ b/paddle/framework/operator.h @@ -253,7 +253,7 @@ class ExecutionContext : public OperatorContext { template ::EigenDeviceType> - DeviceType* GetEigenDevice() const; + DeviceType& GetEigenDevice() const; platform::Place GetPlace() const { return device_context_.GetPlace(); } diff --git a/paddle/operators/add_op.h b/paddle/operators/add_op.h index d2b649fcbd..a4ee407cae 100644 --- a/paddle/operators/add_op.h +++ b/paddle/operators/add_op.h @@ -28,8 +28,7 @@ public: output->mutable_data(context.GetPlace()); - EigenVector::Flatten(*output).device( - *(context.GetEigenDevice())) = + EigenVector::Flatten(*output).device(context.GetEigenDevice()) = framework::EigenVector::Flatten(*input0) + framework::EigenVector::Flatten(*input1); } diff --git a/paddle/operators/mean_op.h b/paddle/operators/mean_op.h index 5f7d443751..20f2110529 100644 --- a/paddle/operators/mean_op.h +++ b/paddle/operators/mean_op.h @@ -27,7 +27,7 @@ public: output->mutable_data(context.GetPlace()); - EigenScalar::From(*output).device(*(context.GetEigenDevice())) = + EigenScalar::From(*output).device(context.GetEigenDevice()) = EigenVector::Flatten(*input).mean(); } }; diff --git a/paddle/operators/mul_op.h b/paddle/operators/mul_op.h index eef72ab293..1d0617ab8b 100644 --- a/paddle/operators/mul_op.h +++ b/paddle/operators/mul_op.h @@ -29,7 +29,7 @@ public: auto output = context.Output(0); output->mutable_data(context.GetPlace()); - EigenMatrix::From(*output).device(*(context.GetEigenDevice())) = + EigenMatrix::From(*output).device(context.GetEigenDevice()) = EigenMatrix::From(*context.Input("X")) .contract(EigenMatrix::From(*context.Input("Y")), dim_pair); diff --git a/paddle/operators/rowwise_add_op.h b/paddle/operators/rowwise_add_op.h index b86dd54634..bd4d112895 100644 --- a/paddle/operators/rowwise_add_op.h +++ b/paddle/operators/rowwise_add_op.h @@ -33,7 +33,7 @@ public: const int rest_size = input.size() / bias_size; Eigen::DSizes one_d(input.size()); Eigen::DSizes bcast(rest_size); - output.reshape(one_d).device(*(context.GetEigenDevice())) = + output.reshape(one_d).device(context.GetEigenDevice()) = input.reshape(one_d) + bias.broadcast(bcast).reshape(one_d); } }; diff --git a/paddle/operators/sgd_op.h b/paddle/operators/sgd_op.h index af1dfdd756..d8ddbac573 100644 --- a/paddle/operators/sgd_op.h +++ b/paddle/operators/sgd_op.h @@ -29,7 +29,7 @@ public: param_out->mutable_data(ctx.GetPlace()); - EigenVector::Flatten(*param_out).device(*(ctx.GetEigenDevice())) = + EigenVector::Flatten(*param_out).device(ctx.GetEigenDevice()) = EigenVector::Flatten(*param) - lr * EigenVector::Flatten(*grad); } }; diff --git a/paddle/operators/sigmoid_op.h b/paddle/operators/sigmoid_op.h index 3dd23a9ebc..f518ddcf3b 100644 --- a/paddle/operators/sigmoid_op.h +++ b/paddle/operators/sigmoid_op.h @@ -27,8 +27,7 @@ public: auto output = context.Output(0); output->mutable_data(context.GetPlace()); - EigenVector::Flatten(*output).device( - *(context.GetEigenDevice())) = + EigenVector::Flatten(*output).device(context.GetEigenDevice()) = 1.0 / (1.0 + (-1.0 * EigenVector::Flatten(*input)).exp()); } }; diff --git a/paddle/operators/softmax_op.h b/paddle/operators/softmax_op.h index a5c19c5fc7..75c5197697 100644 --- a/paddle/operators/softmax_op.h +++ b/paddle/operators/softmax_op.h @@ -46,9 +46,9 @@ public: .reshape(batch_by_one) .broadcast(one_by_class)); - softmax.device(*(context.GetEigenDevice())) = shifted_logits.exp(); + softmax.device(context.GetEigenDevice()) = shifted_logits.exp(); - softmax.device(*(context.GetEigenDevice())) = + softmax.device(context.GetEigenDevice()) = (softmax * softmax.sum(along_class) .inverse()