From 9b5fb276476d57d331c819a7dab8d509646cbc8f Mon Sep 17 00:00:00 2001 From: Yi Wang Date: Mon, 19 Jun 2017 15:02:34 -0700 Subject: [PATCH] Make place_test buildable and passed. --- .clang-format | 5 +--- paddle/CMakeLists.txt | 12 ++++++---- paddle/platform/place.cc | 39 ++++++++++++++---------------- paddle/platform/place.h | 45 +++++++++++++++++------------------ paddle/platform/place_test.cc | 26 ++++++++++---------- 5 files changed, 61 insertions(+), 66 deletions(-) diff --git a/.clang-format b/.clang-format index 9ba433b1736..5a30b52cf4b 100644 --- a/.clang-format +++ b/.clang-format @@ -16,10 +16,7 @@ --- Language: Cpp BasedOnStyle: Google -IndentWidth: 2 -TabWidth: 2 -ContinuationIndentWidth: 4 -AccessModifierOffset: -2 # The private/protected/public has no indent in class +UseTab Never Standard: Cpp11 AllowAllParametersOfDeclarationOnNextLine: true BinPackParameters: false diff --git a/paddle/CMakeLists.txt b/paddle/CMakeLists.txt index 47ca1833967..fc33def5569 100644 --- a/paddle/CMakeLists.txt +++ b/paddle/CMakeLists.txt @@ -17,11 +17,13 @@ add_subdirectory(strings) find_package(Boost QUIET) -if(Boost_FOUND) - include_directories(${Boost_INCLUDE_DIRS}) - include_directories(${CMAKE_CURRENT_SOURCE_DIR}) - add_subdirectory(majel) -endif() +add_subdirectory(platform) + +# if(Boost_FOUND) +# include_directories(${Boost_INCLUDE_DIRS}) +# include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +# add_subdirectory(majel) +# endif() if(WITH_C_API) add_subdirectory(capi) diff --git a/paddle/platform/place.cc b/paddle/platform/place.cc index ca50b37843e..d500c4cc7a0 100644 --- a/paddle/platform/place.cc +++ b/paddle/platform/place.cc @@ -1,49 +1,46 @@ -#include "paddle/majel/place.h" +#include "paddle/platform/place.h" -namespace majel { +namespace paddle { +namespace platform { namespace detail { class PlacePrinter : public boost::static_visitor<> { -private: - std::ostream& os_; - public: - PlacePrinter(std::ostream& os) : os_(os) {} + PlacePrinter(std::ostream &os) : os_(os) {} + void operator()(const CpuPlace &) { os_ << "CpuPlace"; } + void operator()(const GpuPlace &p) { os_ << "GpuPlace(" << p.device << ")"; } - void operator()(const CpuPlace&) { os_ << "CpuPlace"; } - - void operator()(const GpuPlace& p) { os_ << "GpuPlace(" << p.device << ")"; } +private: + std::ostream &os_; }; -} // namespace detail +} // namespace detail static Place the_default_place; -void set_place(const Place& place) { the_default_place = place; } - -const Place& get_place() { return the_default_place; } +void set_place(const Place &place) { the_default_place = place; } +const Place &get_place() { return the_default_place; } const GpuPlace default_gpu() { return GpuPlace(0); } - const CpuPlace default_cpu() { return CpuPlace(); } -bool is_gpu_place(const Place& p) { +bool is_gpu_place(const Place &p) { return boost::apply_visitor(IsGpuPlace(), p); } - -bool is_cpu_place(const Place& p) { +bool is_cpu_place(const Place &p) { return !boost::apply_visitor(IsGpuPlace(), p); } -bool places_are_same_class(const Place& p1, const Place& p2) { +bool places_are_same_class(const Place &p1, const Place &p2) { return is_gpu_place(p1) == is_gpu_place(p2); } -std::ostream& operator<<(std::ostream& os, const majel::Place& p) { - majel::detail::PlacePrinter printer(os); +std::ostream &operator<<(std::ostream &os, const Place &p) { + detail::PlacePrinter printer(os); boost::apply_visitor(printer, p); return os; } -} // namespace majel +} // namespace platform +} // namespace paddle diff --git a/paddle/platform/place.h b/paddle/platform/place.h index ad3dc3fe0b8..ca1b76ef4b8 100644 --- a/paddle/platform/place.h +++ b/paddle/platform/place.h @@ -2,49 +2,48 @@ #include #include -namespace majel { +namespace paddle { +namespace platform { struct CpuPlace { - CpuPlace() {} // WORKAROUND: for some reason, omitting this constructor - // causes errors with boost 1.59 and OSX - // needed for variant equality comparison - inline bool operator==(const CpuPlace&) const { return true; } + // WORKAROUND: for some reason, omitting this constructor + // causes errors with boost 1.59 and OSX + CpuPlace() {} - inline bool operator!=(const CpuPlace&) const { return false; } + // needed for variant equality comparison + inline bool operator==(const CpuPlace &) const { return true; } + inline bool operator!=(const CpuPlace &) const { return false; } }; struct GpuPlace { + GpuPlace() : GpuPlace(0) {} GpuPlace(int d) : device(d) {} // needed for variant equality comparison - inline bool operator==(const GpuPlace& o) const { return device == o.device; } - - inline bool operator!=(const GpuPlace& o) const { return !(*this == o); } + inline bool operator==(const GpuPlace &o) const { return device == o.device; } + inline bool operator!=(const GpuPlace &o) const { return !(*this == o); } - GpuPlace() : GpuPlace(0) {} int device; }; -class IsGpuPlace : public boost::static_visitor { -public: - bool operator()(const CpuPlace&) const { return false; } - - bool operator()(const GpuPlace& gpu) const { return true; } +struct IsGpuPlace : public boost::static_visitor { + bool operator()(const CpuPlace &) const { return false; } + bool operator()(const GpuPlace &gpu) const { return true; } }; typedef boost::variant Place; -void set_place(const Place&); - -const Place& get_place(); +void set_place(const Place &); +const Place &get_place(); const GpuPlace default_gpu(); const CpuPlace default_cpu(); -bool is_gpu_place(const Place&); -bool is_cpu_place(const Place&); -bool places_are_same_class(const Place&, const Place&); +bool is_gpu_place(const Place &); +bool is_cpu_place(const Place &); +bool places_are_same_class(const Place &, const Place &); -std::ostream& operator<<(std::ostream&, const majel::Place&); +std::ostream &operator<<(std::ostream &, const Place &); -} // namespace majel +} // namespace platform +} // namespace paddle diff --git a/paddle/platform/place_test.cc b/paddle/platform/place_test.cc index 6a099ae6b6e..9cd9c25b167 100644 --- a/paddle/platform/place_test.cc +++ b/paddle/platform/place_test.cc @@ -1,10 +1,10 @@ -#include "paddle/majel/place.h" -#include +#include "paddle/platform/place.h" #include "gtest/gtest.h" +#include TEST(Place, Equality) { - majel::CpuPlace cpu; - majel::GpuPlace g0(0), g1(1), gg0(0); + paddle::platform::CpuPlace cpu; + paddle::platform::GpuPlace g0(0), g1(1), gg0(0); EXPECT_EQ(cpu, cpu); EXPECT_EQ(g0, g0); @@ -13,28 +13,28 @@ TEST(Place, Equality) { EXPECT_NE(g0, g1); - EXPECT_TRUE(majel::places_are_same_class(g0, gg0)); - EXPECT_FALSE(majel::places_are_same_class(g0, cpu)); + EXPECT_TRUE(paddle::platform::places_are_same_class(g0, gg0)); + EXPECT_FALSE(paddle::platform::places_are_same_class(g0, cpu)); } TEST(Place, Default) { - EXPECT_TRUE(majel::is_gpu_place(majel::get_place())); - EXPECT_TRUE(majel::is_gpu_place(majel::default_gpu())); - EXPECT_TRUE(majel::is_cpu_place(majel::default_cpu())); + EXPECT_TRUE(paddle::platform::is_gpu_place(paddle::platform::get_place())); + EXPECT_TRUE(paddle::platform::is_gpu_place(paddle::platform::default_gpu())); + EXPECT_TRUE(paddle::platform::is_cpu_place(paddle::platform::default_cpu())); - majel::set_place(majel::CpuPlace()); - EXPECT_TRUE(majel::is_cpu_place(majel::get_place())); + paddle::platform::set_place(paddle::platform::CpuPlace()); + EXPECT_TRUE(paddle::platform::is_cpu_place(paddle::platform::get_place())); } TEST(Place, Print) { { std::stringstream ss; - ss << majel::GpuPlace(1); + ss << paddle::platform::GpuPlace(1); EXPECT_EQ("GpuPlace(1)", ss.str()); } { std::stringstream ss; - ss << majel::CpuPlace(); + ss << paddle::platform::CpuPlace(); EXPECT_EQ("CpuPlace", ss.str()); } } -- GitLab