From fd9a3d20d39485d1279c2a84fdc64f55e82f4c35 Mon Sep 17 00:00:00 2001 From: xiekeke Date: Wed, 7 May 2025 12:29:38 +0800 Subject: [PATCH] [CINN]Delete the dependency of absl --- cmake/cinn.cmake | 2 - cmake/cinn/external/absl.cmake | 62 -------- cmake/third_party.cmake | 1 - paddle/ap/CMakeLists.txt | 2 +- test/cpp/cinn/adt/CMakeLists.txt | 9 -- test/cpp/cinn/adt/inline_translator_test.cc | 131 ----------------- test/cpp/cinn/utils/CMakeLists.txt | 2 - test/cpp/cinn/utils/functional_test.cc | 152 -------------------- 8 files changed, 1 insertion(+), 360 deletions(-) delete mode 100644 cmake/cinn/external/absl.cmake delete mode 100644 test/cpp/cinn/adt/inline_translator_test.cc delete mode 100644 test/cpp/cinn/utils/functional_test.cc diff --git a/cmake/cinn.cmake b/cmake/cinn.cmake index 282e8a87767e96..838f318a5a3bc1 100644 --- a/cmake/cinn.cmake +++ b/cmake/cinn.cmake @@ -157,7 +157,6 @@ cinn_cc_library( param_proto schedule_desc_proto tile_config_proto - absl isl ginac op_fusion @@ -216,7 +215,6 @@ function(gen_cinncore LINKTYPE) param_proto schedule_desc_proto tile_config_proto - absl isl ginac op_fusion diff --git a/cmake/cinn/external/absl.cmake b/cmake/cinn/external/absl.cmake deleted file mode 100644 index 076b46b711ac06..00000000000000 --- a/cmake/cinn/external/absl.cmake +++ /dev/null @@ -1,62 +0,0 @@ -include(ExternalProject) - -set(ABSL_SOURCES_DIR ${PADDLE_SOURCE_DIR}/third_party/absl) -set(ABSL_INSTALL_DIR ${THIRD_PARTY_PATH}/install/absl) -set(ABSL_PREFIX_DIR ${THIRD_PARTY_PATH}/absl) -set(ABSL_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) - -set(ABSL_REPOSITORY "${GIT_URL}/abseil/abseil-cpp.git") -set(ABSL_TAG "20250127.0") - -set(OPTIONAL_ARGS - "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}" - "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}" - "-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}" - "-DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}" - "-DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}" - "-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}" - "-DCMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG}" - "-DCMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE}") - -ExternalProject_Add( - external_absl - ${EXTERNAL_PROJECT_LOG_ARGS} - DEPENDS gflags - PREFIX ${ABSL_PREFIX_DIR} - SOURCE_DIR ${ABSL_SOURCES_DIR} - UPDATE_COMMAND "" - CMAKE_ARGS ${OPTIONAL_ARGS} - -DCMAKE_INSTALL_PREFIX=${ABSL_INSTALL_DIR} - -DCMAKE_INSTALL_LIBDIR=${ABSL_INSTALL_DIR}/lib - -DCMAKE_POSITION_INDEPENDENT_CODE=ON - -DWITH_GFLAGS=ON - -Dgflags_DIR=${GFLAGS_INSTALL_DIR}/lib/cmake/gflags - -DBUILD_TESTING=OFF - -DCMAKE_BUILD_TYPE=${THIRD_PARTY_BUILD_TYPE} - ${EXTERNAL_OPTIONAL_ARGS} - CMAKE_CACHE_ARGS - -DCMAKE_INSTALL_PREFIX:PATH=${ABSL_INSTALL_DIR} - -DCMAKE_INSTALL_LIBDIR:PATH=${ABSL_INSTALL_DIR}/lib - -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON - -DCMAKE_BUILD_TYPE:STRING=${THIRD_PARTY_BUILD_TYPE}) - -# It may be more convenient if we just include all absl libs -set(ABSL_LIB_NAMES "") -set(ABSL_LIBS "") - -if(WITH_ROCM) - list(APPEND ABSL_LIB_NAMES strings_internal) -endif() - -add_library(absl STATIC IMPORTED GLOBAL) -set_property(TARGET absl PROPERTY IMPORTED_LOCATION - ${ABSL_INSTALL_DIR}/lib/libabsl_base.a) - -if(NOT USE_PREBUILD_EXTERNAL) - add_dependencies(absl external_absl) -endif() -foreach(lib_name ${ABSL_LIB_NAMES}) - target_link_libraries(absl - INTERFACE ${ABSL_INSTALL_DIR}/lib/libabsl_${lib_name}.a) -endforeach() -include_directories(${ABSL_INSTALL_DIR}/include) diff --git a/cmake/third_party.cmake b/cmake/third_party.cmake index 51560e6cdd9cf0..9f8716af3d8b91 100755 --- a/cmake/third_party.cmake +++ b/cmake/third_party.cmake @@ -389,7 +389,6 @@ if(WITH_CINN) DESTINATION ${CMAKE_BINARY_DIR}/cmake/cinn) endif() include(${CMAKE_BINARY_DIR}/cmake/cinn/config.cmake) - include(cmake/cinn/external/absl.cmake) include(cmake/cinn/external/llvm.cmake) include(cmake/cinn/external/isl.cmake) include(cmake/cinn/external/ginac.cmake) diff --git a/paddle/ap/CMakeLists.txt b/paddle/ap/CMakeLists.txt index 32bf8680011333..359e3907c03a58 100644 --- a/paddle/ap/CMakeLists.txt +++ b/paddle/ap/CMakeLists.txt @@ -1,4 +1,4 @@ -set(AP_COMMON_DEPS absl) +set(AP_COMMON_DEPS "") if(WITH_ONEDNN) list(APPEND AP_COMMON_DEPS onednn) endif() diff --git a/test/cpp/cinn/adt/CMakeLists.txt b/test/cpp/cinn/adt/CMakeLists.txt index c78fdd75109750..13cfc1b7502bb7 100644 --- a/test/cpp/cinn/adt/CMakeLists.txt +++ b/test/cpp/cinn/adt/CMakeLists.txt @@ -2,12 +2,3 @@ cinn_cc_test(equation_value_match_trait_test SRCS equation_value_match_trait_test.cc DEPS gtest glog) cinn_cc_test(tree_test SRCS tree_test.cc DEPS gtest glog) - -cinn_cc_test( - inline_translator_test - SRCS - inline_translator_test.cc - DEPS - gtest - glog - absl) diff --git a/test/cpp/cinn/adt/inline_translator_test.cc b/test/cpp/cinn/adt/inline_translator_test.cc deleted file mode 100644 index 708b598ed3b144..00000000000000 --- a/test/cpp/cinn/adt/inline_translator_test.cc +++ /dev/null @@ -1,131 +0,0 @@ -// Copyright (c) 2023 PaddlePaddle Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#pragma once - -#include "paddle/cinn/adt/inline_translator.h" - -#include - -#include "gtest/gtest.h" - -namespace cinn::adt { - -template <> -struct InlineTranslatorTrait final { - template - static List GetTreeInnerNodeChildren(const List& list) { - return list; - } - - template - static List ConvertMap(const List& src_map, - const List& dst_children) { - return dst_children; - } -}; - -namespace test { - -using SrcLeaf = Store>>; -using DstLeaf = Store>>; -using SrcTree = Tree; -using DstTree = Tree; - -// (Tree List (Store string (List (Load string)))) -> -// (Tree List (Store string (Tree List (Load string)))) - -// Src: -// c = [a, b]; -// d = [c, e]; -// f = [d, c]; -// Dst: -// f = [[[a, b], e], [a, b]]; -TEST(InlineTranslator, Naive) { - List> src_op_calls{}; - src_op_calls->emplace_back(SrcLeaf{ - "c", - List>{Load{"a"}, Load{"b"}}}); - src_op_calls->emplace_back(SrcLeaf{ - "d", - List>{Load{"c"}, Load{"e"}}}); - src_op_calls->emplace_back(SrcLeaf{ - "f", - List>{Load{"d"}, Load{"c"}}}); - SrcTree src_tree{src_op_calls}; - const DstTree& dst_tree = - InlineTranslator::Call(src_tree); - ASSERT_TRUE((dst_tree.Has>>())); - const auto& dst_level0_leaves = dst_tree.Get>>(); - ASSERT_EQ(dst_level0_leaves->size(), 1); - const auto& dst_level0_leaf = dst_level0_leaves->at(0); - ASSERT_TRUE((dst_level0_leaf.Has())); - const auto& [f, f_tree] = dst_level0_leaf.Get().tuple(); - ASSERT_EQ(f, "f"); - using NestedList = Tree>; - ASSERT_TRUE((f_tree.Has>())); - ASSERT_EQ((f_tree.Get>()->size()), 2); - { - // [[a, b], e] - NestedList d = f_tree.Get>()->at(0); - ASSERT_TRUE((d.Has>())); - ASSERT_EQ((d.Get>()->size()), 2); - { - // [a, b] - NestedList c = d.Get>()->at(0); - ASSERT_TRUE((c.Has>())); - ASSERT_EQ((c.Get>()->size()), 2); - { - NestedList a = c.Get>()->at(0); - ASSERT_TRUE((a.Has>())); - const auto& [a_string] = a.Get>().tuple(); - ASSERT_EQ(a_string, "a"); - } - { - NestedList b = c.Get>()->at(1); - ASSERT_TRUE((b.Has>())); - const auto& [b_string] = b.Get>().tuple(); - ASSERT_EQ(b_string, "b"); - } - } - { - NestedList e = d.Get>()->at(1); - ASSERT_TRUE((e.Has>())); - const auto& [e_string] = e.Get>().tuple(); - ASSERT_EQ(e_string, "e"); - } - } - { - // [a, b] - NestedList c = f_tree.Get>()->at(1); - ASSERT_TRUE((c.Has>())); - ASSERT_EQ((c.Get>()->size()), 2); - { - NestedList a = c.Get>()->at(0); - ASSERT_TRUE((a.Has>())); - const auto& [a_string] = a.Get>().tuple(); - ASSERT_EQ(a_string, "a"); - } - { - NestedList b = c.Get>()->at(1); - ASSERT_TRUE((b.Has>())); - const auto& [b_string] = b.Get>().tuple(); - ASSERT_EQ(b_string, "b"); - } - } -} - -} // namespace test - -} // namespace cinn::adt diff --git a/test/cpp/cinn/utils/CMakeLists.txt b/test/cpp/cinn/utils/CMakeLists.txt index 0a047d1db9351b..fc601f1024340d 100644 --- a/test/cpp/cinn/utils/CMakeLists.txt +++ b/test/cpp/cinn/utils/CMakeLists.txt @@ -1,4 +1,2 @@ cinn_cc_test(test_sized_multi_set SRCS sized_multi_set_test.cc DEPS cinncore) cinn_cc_test(test_multi_threading SRCS multi_threading_test.cc DEPS cinncore) - -cinn_cc_test(test_functional SRCS functional_test.cc DEPS absl Threads::Threads) diff --git a/test/cpp/cinn/utils/functional_test.cc b/test/cpp/cinn/utils/functional_test.cc deleted file mode 100644 index 75bab5732c11a1..00000000000000 --- a/test/cpp/cinn/utils/functional_test.cc +++ /dev/null @@ -1,152 +0,0 @@ -// Copyright (c) 2022 CINN Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "paddle/cinn/utils/functional.h" - -#include -#include -#include - -#include -#include -#include -#include -#include - -#include "paddle/cinn/utils/string.h" - -namespace cinn { -namespace utils { - -TEST(Functional, IsVector) { - static_assert(!IsVector::value, "int is not a vector"); - static_assert(!IsVector::value, "string is not a vector"); - static_assert(!IsVector::value, - "const string* is not a vector"); - static_assert(!IsVector>::value, - "list is not a vector"); - static_assert(!IsVector &>::value, - "const list& is not a vector"); - static_assert(!IsVector>::value, - "set is not a vector"); - static_assert(!IsVector *>::value, - "set* is not a vector"); - - static_assert(IsVector>::value, - "vector is a vector"); - static_assert(IsVector &>::value, - "vector& is a vector"); - static_assert(IsVector *>::value, - "vector* is a vector"); - - static_assert(IsVector>::value, - "const vector is a vector"); - static_assert(IsVector &>::value, - "const vector& is a vector"); - static_assert(IsVector *>::value, - "const vector* is a vector"); - - static_assert(IsVector>::value, - "volatile vector is a vector"); - static_assert(IsVector &>::value, - "volatile vector& is a vector"); - static_assert(IsVector *>::value, - "volatile vector* is a vector"); - - static_assert(IsVector>::value, - "const volatile vector is a vector"); - static_assert(IsVector &>::value, - "const volatile vector& is a vector"); - static_assert(IsVector *>::value, - "const volatile vector* is a vector"); -} - -TEST(Functional, Flatten) { - double d = 3.14; - auto flatten_d = Flatten(d); - LOG(INFO) << utils::Join(flatten_d, ", "); - ASSERT_EQ(flatten_d.size(), 1); - ASSERT_TRUE(absl::c_equal(flatten_d, std::vector{3.14})); - - std::string s = "constant"; - auto flatten_s = Flatten(s); - LOG(INFO) << utils::Join(flatten_s, ", "); - ASSERT_EQ(flatten_s.size(), 1); - ASSERT_TRUE(absl::c_equal(flatten_s, std::vector{"constant"})); - const std::string &sr = s; - auto flatten_sr = Flatten(sr); - LOG(INFO) << utils::Join(flatten_sr, ", "); - ASSERT_EQ(flatten_sr.size(), 1); - ASSERT_TRUE(absl::c_equal(flatten_sr, std::vector{"constant"})); - - std::vector> i{{3, 4, 5}, {7, 8, 9, 10}}; - auto flatten_i = Flatten(i); - LOG(INFO) << utils::Join(flatten_i, ", "); - ASSERT_EQ(flatten_i.size(), 7); - ASSERT_TRUE(absl::c_equal(flatten_i, std::vector{3, 4, 5, 7, 8, 9, 10})); - - std::vector>> v{ - {{true, false}, {true, false, true, false}}, - {{false}, {true, true, false}}}; - std::vector flatten_v = Flatten(v); - LOG(INFO) << utils::Join(flatten_v, ", "); - ASSERT_EQ(flatten_v.size(), 10); - ASSERT_TRUE(absl::c_equal( - flatten_v, - std::vector{ - true, false, true, false, true, false, false, true, true, false})); - - std::vector>> str{ - {{"true", "false"}, {"true", "false", "true", "false"}}, - {{"false"}, {"true", "true", "false"}}}; - auto flatten_str = Flatten(str); - LOG(INFO) << utils::Join(flatten_str, ", "); - ASSERT_EQ(flatten_str.size(), 10); - ASSERT_TRUE(absl::c_equal(flatten_str, - std::vector{"true", - "false", - "true", - "false", - "true", - "false", - "false", - "true", - "true", - "false"})); - - std::list>> a{{{1, 2, 3}, {1, 2, 3, 4, 5, 6}}, - {{1, 2.2f, 3}, {1, 2, 3.3f, 4.5f}}}; - auto flatten_a = Flatten(a); - LOG(INFO) << utils::Join(flatten_a, ", "); - ASSERT_EQ(flatten_a.size(), 16); - ASSERT_TRUE( - absl::c_equal(flatten_a, - std::vector{ - 1, 2, 3, 1, 2, 3, 4, 5, 6, 1, 2, 3.3, 4.5, 1, 2.2, 3})); - - std::list>> b; - auto flatten_b = Flatten(b); - LOG(INFO) << utils::Join(flatten_b, ", "); - ASSERT_EQ(flatten_b.size(), 0); - ASSERT_TRUE(absl::c_equal(flatten_b, std::vector{})); - - std::list>> empty_str; - auto flatten_empty_str = Flatten(empty_str); - LOG(INFO) << utils::Join(flatten_empty_str, ", "); - ASSERT_EQ(flatten_empty_str.size(), 0); - ASSERT_TRUE(absl::c_equal(flatten_empty_str, std::vector{})); -} - -} // namespace utils -} // namespace cinn