From ca8f95520e8ca08f7da6c33d9d4c8a11385b74c5 Mon Sep 17 00:00:00 2001 From: Aurelius84 Date: Mon, 21 Aug 2023 22:30:10 +0800 Subject: [PATCH] [NewIR]Split PaddleDialect and KernelDialect and Implement Layered Compailation (#56442) * [NewIR]Split PaddleDialect and KernelDialect and Implement Layered Compailation * remove ir_core DEPS * fix header files * fix conflict * ignore test_assert UT * fix code style * fix UT --- paddle/cinn/hlir/framework/new_ir_compiler.cc | 2 +- paddle/cinn/utils/attribute_util.h | 2 +- .../instruction/legacy_kernel_instruction.cc | 8 +- .../instruction/phi_kernel_instruction.cc | 8 +- .../interpreter/interpreter_util.cc | 6 +- .../new_executor/new_executor_defs.h | 2 +- .../new_executor/new_ir_interpreter.cc | 2 +- paddle/fluid/ir/CMakeLists.txt | 2 - paddle/fluid/ir/dialect/CMakeLists.txt | 88 +---- .../fluid/ir/dialect/op_generator/api_gen.py | 8 +- .../fluid/ir/dialect/op_generator/op_gen.py | 18 +- .../ir/dialect/paddle_dialect/CMakeLists.txt | 5 + .../paddle_dialect}/interface/CMakeLists.txt | 2 +- .../paddle_dialect}/interface/infermeta.h | 0 .../paddle_dialect}/interface/interface.cc | 6 +- .../paddle_dialect}/interface/op_yaml_info.h | 2 +- .../paddle_dialect}/interface/vjp.h | 0 .../dialect/paddle_dialect/ir/CMakeLists.txt | 97 +++++ .../dialect/paddle_dialect/ir/api_builder.cc | 54 +++ .../dialect/paddle_dialect/ir/api_builder.h | 55 +++ .../{ => paddle_dialect/ir}/pd_attribute.cc | 2 +- .../{ => paddle_dialect/ir}/pd_attribute.h | 2 +- .../ir}/pd_attribute_storage.h | 0 .../dialect/paddle_dialect/ir/pd_dialect.cc | 103 +++++ .../ir/dialect/paddle_dialect/ir/pd_dialect.h | 38 ++ .../{ => paddle_dialect/ir}/pd_manual_api.cc | 7 +- .../{ => paddle_dialect/ir}/pd_manual_api.h | 0 .../{ => paddle_dialect/ir}/pd_manual_op.cc | 6 +- .../{ => paddle_dialect/ir}/pd_manual_op.h | 8 +- .../ir/dialect/paddle_dialect/ir/pd_op.yaml | 357 ++++++++++++++++++ .../ir}/pd_op_vjp_manual.cc | 4 +- .../{ => paddle_dialect/ir}/pd_type.cc | 2 +- .../dialect/{ => paddle_dialect/ir}/pd_type.h | 2 +- .../{ => paddle_dialect/ir}/pd_type_storage.h | 0 .../paddle_dialect}/trait/CMakeLists.txt | 2 +- .../paddle_dialect}/trait/inplace.h | 0 .../paddle_dialect}/trait/trait.cc | 2 +- .../paddle_dialect/transforms/CMakeLists.txt | 4 + .../transforms/param_to_variable.cc} | 87 +---- .../transforms/param_to_variable.h | 38 ++ .../paddle_dialect/utils/CMakeLists.txt | 5 + .../utils}/op_yaml_info_parser.cc | 2 +- .../utils}/op_yaml_info_parser.h | 2 +- .../utils}/op_yaml_info_util.h | 2 +- .../{ => paddle_dialect/utils}/utils.cc | 8 +- .../{ => paddle_dialect/utils}/utils.h | 4 +- .../paddle_kernel_dialect/CMakeLists.txt | 1 + .../paddle_kernel_dialect/ir/CMakeLists.txt | 5 + .../ir}/kernel_attribute.cc | 2 +- .../ir}/kernel_attribute.h | 2 +- .../ir}/kernel_attribute_storage.h | 0 .../ir}/kernel_dialect.cc | 21 +- .../ir}/kernel_dialect.h | 2 - .../ir}/kernel_op.cc | 4 +- .../ir}/kernel_op.h | 0 .../ir}/kernel_type.cc | 2 +- .../ir}/kernel_type.h | 4 +- .../ir}/kernel_type_storage.h | 2 +- paddle/fluid/ir/dialect/pd_dialect.h | 106 ------ .../ir/phi_kernel_adaptor/CMakeLists.txt | 2 +- .../phi_kernel_adaptor/phi_kernel_adaptor.h | 20 +- .../ir/phi_kernel_adaptor/phi_kernel_util.cc | 18 +- .../ir/phi_kernel_adaptor/phi_kernel_util.h | 18 +- paddle/fluid/ir/transforms/CMakeLists.txt | 7 +- .../ir/transforms/constant_folding_pass.cc | 6 +- .../ir/transforms/pd_op_to_kernel_pass.cc | 24 +- .../transforms/transform_general_functions.cc | 4 +- .../translator/attribute_translator.cc | 2 +- .../ir_adaptor/translator/op_translator.cc | 10 +- .../fluid/ir_adaptor/translator/translate.cc | 2 +- .../fluid/ir_adaptor/translator/translate.h | 2 +- .../ir_adaptor/translator/type_translator.cc | 4 +- paddle/fluid/platform/CMakeLists.txt | 2 +- paddle/fluid/platform/init.cc | 2 +- paddle/fluid/primitive/backend/CMakeLists.txt | 2 +- .../fluid/primitive/backend/static_backend.cc | 2 +- .../fluid/primitive/rule/vjp/CMakeLists.txt | 1 - paddle/fluid/primitive/rule/vjp/vjp.cc | 2 +- paddle/fluid/primitive/type/lazy_tensor.h | 4 +- paddle/fluid/pybind/ir.cc | 9 +- paddle/fluid/pybind/pybind.cc | 2 +- paddle/fluid/pybind/static_op_function.cc | 2 +- test/cpp/ir/cinn/jit_instruction_test.cc | 4 +- test/cpp/ir/cinn/new_ir_compiler_test.cc | 4 +- test/cpp/ir/core/CMakeLists.txt | 10 +- test/cpp/ir/core/ir_exe_test.cc | 12 +- test/cpp/ir/core/ir_infershape_test.cc | 2 +- test/cpp/ir/core/ir_program_test.cc | 11 +- test/cpp/ir/core/ir_type_converter_test.cc | 2 +- test/cpp/ir/core/op_yaml_info_parser_test.cc | 12 +- test/cpp/ir/core/program_translator_test.cc | 2 +- test/cpp/ir/core/scalar_attribute_test.cc | 2 +- test/cpp/ir/core/type_test.cc | 2 +- test/cpp/ir/kernel_dialect/CMakeLists.txt | 2 +- .../ir_kernel_dialect_pass_test.cc | 14 +- test/cpp/ir/pass/pass_manager_test.cc | 10 +- .../pattern_rewrite/pattern_rewrite_test.cc | 12 +- test/cpp/new_executor/CMakeLists.txt | 2 +- .../standalone_executor_new_ir_test.cc | 6 +- test/cpp/prim/test_vjp.cc | 9 +- 100 files changed, 981 insertions(+), 489 deletions(-) create mode 100644 paddle/fluid/ir/dialect/paddle_dialect/CMakeLists.txt rename paddle/fluid/ir/{ => dialect/paddle_dialect}/interface/CMakeLists.txt (84%) rename paddle/fluid/ir/{ => dialect/paddle_dialect}/interface/infermeta.h (100%) rename paddle/fluid/ir/{ => dialect/paddle_dialect}/interface/interface.cc (79%) rename paddle/fluid/ir/{ => dialect/paddle_dialect}/interface/op_yaml_info.h (95%) rename paddle/fluid/ir/{ => dialect/paddle_dialect}/interface/vjp.h (100%) create mode 100644 paddle/fluid/ir/dialect/paddle_dialect/ir/CMakeLists.txt create mode 100644 paddle/fluid/ir/dialect/paddle_dialect/ir/api_builder.cc create mode 100644 paddle/fluid/ir/dialect/paddle_dialect/ir/api_builder.h rename paddle/fluid/ir/dialect/{ => paddle_dialect/ir}/pd_attribute.cc (96%) rename paddle/fluid/ir/dialect/{ => paddle_dialect/ir}/pd_attribute.h (97%) rename paddle/fluid/ir/dialect/{ => paddle_dialect/ir}/pd_attribute_storage.h (100%) create mode 100644 paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.cc create mode 100644 paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h rename paddle/fluid/ir/dialect/{ => paddle_dialect/ir}/pd_manual_api.cc (87%) rename paddle/fluid/ir/dialect/{ => paddle_dialect/ir}/pd_manual_api.h (100%) rename paddle/fluid/ir/dialect/{ => paddle_dialect/ir}/pd_manual_op.cc (96%) rename paddle/fluid/ir/dialect/{ => paddle_dialect/ir}/pd_manual_op.h (85%) create mode 100644 paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.yaml rename paddle/fluid/ir/dialect/{ => paddle_dialect/ir}/pd_op_vjp_manual.cc (96%) rename paddle/fluid/ir/dialect/{ => paddle_dialect/ir}/pd_type.cc (96%) rename paddle/fluid/ir/dialect/{ => paddle_dialect/ir}/pd_type.h (95%) rename paddle/fluid/ir/dialect/{ => paddle_dialect/ir}/pd_type_storage.h (100%) rename paddle/fluid/ir/{ => dialect/paddle_dialect}/trait/CMakeLists.txt (84%) rename paddle/fluid/ir/{ => dialect/paddle_dialect}/trait/inplace.h (100%) rename paddle/fluid/ir/{ => dialect/paddle_dialect}/trait/trait.cc (91%) create mode 100644 paddle/fluid/ir/dialect/paddle_dialect/transforms/CMakeLists.txt rename paddle/fluid/ir/dialect/{pd_dialect.cc => paddle_dialect/transforms/param_to_variable.cc} (52%) create mode 100644 paddle/fluid/ir/dialect/paddle_dialect/transforms/param_to_variable.h create mode 100644 paddle/fluid/ir/dialect/paddle_dialect/utils/CMakeLists.txt rename paddle/fluid/ir/{interface => dialect/paddle_dialect/utils}/op_yaml_info_parser.cc (98%) rename paddle/fluid/ir/{interface => dialect/paddle_dialect/utils}/op_yaml_info_parser.h (97%) rename paddle/fluid/ir/dialect/{ => paddle_dialect/utils}/op_yaml_info_util.h (97%) rename paddle/fluid/ir/dialect/{ => paddle_dialect/utils}/utils.cc (96%) rename paddle/fluid/ir/dialect/{ => paddle_dialect/utils}/utils.h (97%) create mode 100644 paddle/fluid/ir/dialect/paddle_kernel_dialect/CMakeLists.txt create mode 100644 paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/CMakeLists.txt rename paddle/fluid/ir/dialect/{ => paddle_kernel_dialect/ir}/kernel_attribute.cc (89%) rename paddle/fluid/ir/dialect/{ => paddle_kernel_dialect/ir}/kernel_attribute.h (93%) rename paddle/fluid/ir/dialect/{ => paddle_kernel_dialect/ir}/kernel_attribute_storage.h (100%) rename paddle/fluid/ir/dialect/{ => paddle_kernel_dialect/ir}/kernel_dialect.cc (72%) rename paddle/fluid/ir/dialect/{ => paddle_kernel_dialect/ir}/kernel_dialect.h (93%) rename paddle/fluid/ir/dialect/{ => paddle_kernel_dialect/ir}/kernel_op.cc (93%) rename paddle/fluid/ir/dialect/{ => paddle_kernel_dialect/ir}/kernel_op.h (100%) rename paddle/fluid/ir/dialect/{ => paddle_kernel_dialect/ir}/kernel_type.cc (96%) rename paddle/fluid/ir/dialect/{ => paddle_kernel_dialect/ir}/kernel_type.h (96%) rename paddle/fluid/ir/dialect/{ => paddle_kernel_dialect/ir}/kernel_type_storage.h (98%) delete mode 100644 paddle/fluid/ir/dialect/pd_dialect.h diff --git a/paddle/cinn/hlir/framework/new_ir_compiler.cc b/paddle/cinn/hlir/framework/new_ir_compiler.cc index 094e1873e87..f9f2cb460bf 100644 --- a/paddle/cinn/hlir/framework/new_ir_compiler.cc +++ b/paddle/cinn/hlir/framework/new_ir_compiler.cc @@ -19,7 +19,7 @@ #include "paddle/cinn/lang/lower.h" #include "paddle/cinn/lang/placeholder.h" #include "paddle/cinn/utils/attribute_util.h" -#include "paddle/fluid/ir/dialect/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" #include "paddle/ir/core/builtin_type.h" namespace cinn { diff --git a/paddle/cinn/utils/attribute_util.h b/paddle/cinn/utils/attribute_util.h index 02e7fc1bf28..aaffed7085c 100644 --- a/paddle/cinn/utils/attribute_util.h +++ b/paddle/cinn/utils/attribute_util.h @@ -18,7 +18,7 @@ #include "paddle/cinn/common/type.h" #include "paddle/cinn/utils/type_defs.h" -#include "paddle/fluid/ir/dialect/pd_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h" #include "paddle/ir/core/builtin_type.h" #include "paddle/phi/common/data_type.h" diff --git a/paddle/fluid/framework/new_executor/instruction/legacy_kernel_instruction.cc b/paddle/fluid/framework/new_executor/instruction/legacy_kernel_instruction.cc index 7250d3cd04d..8b937ed322e 100644 --- a/paddle/fluid/framework/new_executor/instruction/legacy_kernel_instruction.cc +++ b/paddle/fluid/framework/new_executor/instruction/legacy_kernel_instruction.cc @@ -18,10 +18,10 @@ #include "paddle/fluid/framework/new_executor/interpreter/interpreter_util.h" #include "paddle/fluid/framework/new_executor/interpreter/stream_analyzer.h" #include "paddle/fluid/framework/scope.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/interface/infermeta.h" -#include "paddle/fluid/ir/interface/op_yaml_info.h" -#include "paddle/fluid/ir/interface/op_yaml_info_parser.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/infermeta.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_parser.h" #include "paddle/fluid/ir/phi_kernel_adaptor/phi_kernel_util.h" #include "paddle/fluid/platform/device_context.h" diff --git a/paddle/fluid/framework/new_executor/instruction/phi_kernel_instruction.cc b/paddle/fluid/framework/new_executor/instruction/phi_kernel_instruction.cc index d5b7b5affc5..093435f8b98 100644 --- a/paddle/fluid/framework/new_executor/instruction/phi_kernel_instruction.cc +++ b/paddle/fluid/framework/new_executor/instruction/phi_kernel_instruction.cc @@ -17,10 +17,10 @@ #include "paddle/fluid/framework/new_executor/interpreter/interpreter_util.h" #include "paddle/fluid/framework/new_executor/interpreter/stream_analyzer.h" #include "paddle/fluid/framework/scope.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/interface/infermeta.h" -#include "paddle/fluid/ir/interface/op_yaml_info.h" -#include "paddle/fluid/ir/interface/op_yaml_info_parser.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/infermeta.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_parser.h" #include "paddle/fluid/ir/phi_kernel_adaptor/phi_kernel_util.h" #include "paddle/fluid/platform/collective_helper.h" #include "paddle/fluid/platform/device_context.h" diff --git a/paddle/fluid/framework/new_executor/interpreter/interpreter_util.cc b/paddle/fluid/framework/new_executor/interpreter/interpreter_util.cc index 2b909b401de..01f63b30197 100644 --- a/paddle/fluid/framework/new_executor/interpreter/interpreter_util.cc +++ b/paddle/fluid/framework/new_executor/interpreter/interpreter_util.cc @@ -23,9 +23,9 @@ #include "paddle/fluid/framework/new_executor/interpreter/data_transfer.h" #include "paddle/fluid/framework/new_executor/interpreter/execution_config.h" #include "paddle/fluid/framework/new_executor/interpreter/static_build.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/interface/op_yaml_info.h" -#include "paddle/fluid/ir/interface/op_yaml_info_parser.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_parser.h" #include "paddle/fluid/ir/phi_kernel_adaptor/phi_kernel_util.h" #include "paddle/fluid/memory/stats.h" #include "paddle/fluid/operators/controlflow/conditional_block_op_helper.h" diff --git a/paddle/fluid/framework/new_executor/new_executor_defs.h b/paddle/fluid/framework/new_executor/new_executor_defs.h index 032c3ffc231..edce1554b0a 100644 --- a/paddle/fluid/framework/new_executor/new_executor_defs.h +++ b/paddle/fluid/framework/new_executor/new_executor_defs.h @@ -20,7 +20,7 @@ #include "paddle/fluid/framework/operator.h" #include "paddle/fluid/framework/variable_helper.h" -#include "paddle/fluid/ir/interface/infermeta.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/infermeta.h" #include "paddle/fluid/platform/device_event_base.h" #include "paddle/fluid/platform/event.h" #include "paddle/phi/core/utils/rw_lock.h" diff --git a/paddle/fluid/framework/new_executor/new_ir_interpreter.cc b/paddle/fluid/framework/new_executor/new_ir_interpreter.cc index 5d9f22aa3e0..9587511af77 100644 --- a/paddle/fluid/framework/new_executor/new_ir_interpreter.cc +++ b/paddle/fluid/framework/new_executor/new_ir_interpreter.cc @@ -41,7 +41,7 @@ #endif #include "paddle/fluid/framework/new_executor/instruction/legacy_kernel_instruction.h" #include "paddle/fluid/framework/new_executor/instruction/phi_kernel_instruction.h" -#include "paddle/fluid/ir/dialect/utils.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h" #include "paddle/fluid/ir/phi_kernel_adaptor/phi_kernel_util.h" #include "paddle/ir/core/builtin_attribute.h" diff --git a/paddle/fluid/ir/CMakeLists.txt b/paddle/fluid/ir/CMakeLists.txt index 6186c2df633..655c6c2c8d0 100644 --- a/paddle/fluid/ir/CMakeLists.txt +++ b/paddle/fluid/ir/CMakeLists.txt @@ -1,5 +1,3 @@ -add_subdirectory(interface) -add_subdirectory(trait) add_subdirectory(dialect) add_subdirectory(transforms) add_subdirectory(phi_kernel_adaptor) diff --git a/paddle/fluid/ir/dialect/CMakeLists.txt b/paddle/fluid/ir/dialect/CMakeLists.txt index 9e2713f3ab3..7500642867f 100644 --- a/paddle/fluid/ir/dialect/CMakeLists.txt +++ b/paddle/fluid/ir/dialect/CMakeLists.txt @@ -1,86 +1,2 @@ -set(PD_DIALECT_SOURCE_DIR "${PADDLE_SOURCE_DIR}/paddle/fluid/ir/dialect") -set(PD_DIALECT_BINARY_DIR "${PADDLE_BINARY_DIR}/paddle/fluid/ir/dialect") - -# Generate pd_dialect files defining op using op_gen_file -set(op_gen_file - ${PADDLE_SOURCE_DIR}/paddle/fluid/ir/dialect/op_generator/op_gen.py) -set(op_compat_yaml_file ${PADDLE_SOURCE_DIR}/paddle/phi/api/yaml/op_compat.yaml) -set(op_forward_yaml_file1 - ${PADDLE_SOURCE_DIR}/paddle/fluid/operators/generator/parsed_ops/ops.parsed.yaml -) -set(op_forward_yaml_file2 - ${PADDLE_SOURCE_DIR}/paddle/fluid/operators/generator/parsed_ops/legacy_ops.parsed.yaml -) -set(op_backward_yaml_file1 - ${PADDLE_SOURCE_DIR}/paddle/fluid/operators/generator/parsed_ops/backward_ops.parsed.yaml -) -set(op_backward_yaml_file2 - ${PADDLE_SOURCE_DIR}/paddle/fluid/operators/generator/parsed_ops/legacy_backward_ops.parsed.yaml -) -set(op_yaml_file3 ${PADDLE_SOURCE_DIR}/paddle/fluid/ir/dialect/pd_op.yaml) - -set(op_yaml_files - ${op_forward_yaml_file1},${op_forward_yaml_file2},${op_backward_yaml_file1},${op_backward_yaml_file2},${op_yaml_file3} -) -set(op_namespace paddle,dialect) -set(dialect_name pd) -set(op_header_file ${PD_DIALECT_BINARY_DIR}/pd_op.h) -set(op_source_file ${PD_DIALECT_BINARY_DIR}/pd_op.cc) -set(op_header_file_tmp ${op_header_file}.tmp) -set(op_source_file_tmp ${op_source_file}.tmp) - -add_custom_command( - OUTPUT ${op_header_file} ${op_source_file} - COMMAND - ${PYTHON_EXECUTABLE} ${op_gen_file} --op_yaml_files ${op_yaml_files} - --op_compat_yaml_file ${op_compat_yaml_file} --namespaces ${op_namespace} - --dialect_name ${dialect_name} --op_def_h_file ${op_header_file_tmp} - --op_def_cc_file ${op_source_file_tmp} - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${op_header_file_tmp} - ${op_header_file} - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${op_source_file_tmp} - ${op_source_file} - COMMENT "copy_if_different ${op_header_file} ${op_source_file}" - DEPENDS ${op_gen_file} ${op_forward_yaml_file1} ${op_forward_yaml_file2} - ${op_backward_yaml_file1} ${op_backward_yaml_file2} - ${op_compat_yaml_file} - VERBATIM) - -set(api_gen_file - ${PADDLE_SOURCE_DIR}/paddle/fluid/ir/dialect/op_generator/api_gen.py) -set(api_header_file ${PD_DIALECT_BINARY_DIR}/pd_api.h) -set(api_source_file ${PD_DIALECT_BINARY_DIR}/pd_api.cc) -set(api_header_file_tmp ${api_header_file}.tmp) -set(api_source_file_tmp ${api_source_file}.tmp) - -add_custom_command( - OUTPUT ${api_header_file} ${api_source_file} - COMMAND - ${PYTHON_EXECUTABLE} ${api_gen_file} --op_yaml_files ${op_yaml_files} - --op_compat_yaml_file ${op_compat_yaml_file} --namespaces ${op_namespace} - --api_def_h_file ${api_header_file_tmp} --api_def_cc_file - ${api_source_file_tmp} - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${api_header_file_tmp} - ${api_header_file} - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${api_source_file_tmp} - ${api_source_file} - COMMENT "copy_if_different ${api_header_file} ${api_source_file}" - DEPENDS ${api_gen_file} ${op_forward_yaml_file1} ${op_forward_yaml_file2} - ${op_backward_yaml_file1} ${op_backward_yaml_file2} - ${op_compat_yaml_file} - VERBATIM) - -# All source files of pd_dialect, except for the source file of op, which is generated in the compilation directory. -file(GLOB PD_DIALECT_SRCS "*.cc") - -cc_library( - pd_dialect - SRCS ${PD_DIALECT_SRCS} ${op_source_file} ${api_source_file} - DEPS phi - phi_utils - pd_interface - pd_trait - ir - primitive_vjp_experimental - type_info) -target_include_directories(pd_dialect PRIVATE ${PD_DIALECT_BINARY_DIR}) +add_subdirectory(paddle_dialect) +add_subdirectory(paddle_kernel_dialect) diff --git a/paddle/fluid/ir/dialect/op_generator/api_gen.py b/paddle/fluid/ir/dialect/op_generator/api_gen.py index 8180723b3c8..8432ebf2fad 100644 --- a/paddle/fluid/ir/dialect/op_generator/api_gen.py +++ b/paddle/fluid/ir/dialect/op_generator/api_gen.py @@ -29,7 +29,7 @@ H_FILE_TEMPLATE = """ #include "paddle/phi/common/data_type.h" #include "paddle/phi/common/place.h" #include "paddle/phi/common/scalar.h" -#include "paddle/fluid/ir/dialect/pd_manual_api.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_manual_api.h" {body} @@ -37,9 +37,9 @@ H_FILE_TEMPLATE = """ CPP_FILE_TEMPLATE = """ -#include "paddle/fluid/ir/dialect/pd_api.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/dialect/pd_op.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_api.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/api_builder.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.h" #include "paddle/ir/core/builder.h" #include "paddle/ir/core/builtin_op.h" diff --git a/paddle/fluid/ir/dialect/op_generator/op_gen.py b/paddle/fluid/ir/dialect/op_generator/op_gen.py index 423b47ae44e..75a025b5fb7 100644 --- a/paddle/fluid/ir/dialect/op_generator/op_gen.py +++ b/paddle/fluid/ir/dialect/op_generator/op_gen.py @@ -47,15 +47,15 @@ H_FILE_TEMPLATE = """#ifdef GET_OP_LIST #include "paddle/ir/core/builder.h" #include "paddle/ir/core/operation_utils.h" #include "paddle/ir/core/op_base.h" -#include "paddle/fluid/ir/dialect/utils.h" -#include "paddle/fluid/ir/dialect/op_yaml_info_util.h" -#include "paddle/fluid/ir/interface/op_yaml_info.h" -#include "paddle/fluid/ir/interface/infermeta.h" -#include "paddle/fluid/ir/interface/vjp.h" -#include "paddle/fluid/ir/trait/inplace.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_util.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/infermeta.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/vjp.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/trait/inplace.h" #include "paddle/fluid/framework/infershape_utils.h" #include "paddle/phi/core/infermeta_utils.h" -#include "paddle/fluid/ir/dialect/pd_manual_op.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_manual_op.h" {input} @@ -98,8 +98,8 @@ op_n_attribute_declare_str = ( # ===================================== CC_FILE_TEMPLATE = """// This file is generated by "paddle/fluid/ir/dialect/op_generator/op_gen.py" #include "{h_file}" -#include "paddle/fluid/ir/dialect/pd_type.h" -#include "paddle/fluid/ir/dialect/pd_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h" #include "paddle/ir/core/builtin_attribute.h" #include "paddle/ir/core/builtin_type.h" #include "paddle/ir/core/builtin_op.h" diff --git a/paddle/fluid/ir/dialect/paddle_dialect/CMakeLists.txt b/paddle/fluid/ir/dialect/paddle_dialect/CMakeLists.txt new file mode 100644 index 00000000000..9db8b7f326e --- /dev/null +++ b/paddle/fluid/ir/dialect/paddle_dialect/CMakeLists.txt @@ -0,0 +1,5 @@ +add_subdirectory(ir) +add_subdirectory(interface) +add_subdirectory(trait) +add_subdirectory(utils) +add_subdirectory(transforms) diff --git a/paddle/fluid/ir/interface/CMakeLists.txt b/paddle/fluid/ir/dialect/paddle_dialect/interface/CMakeLists.txt similarity index 84% rename from paddle/fluid/ir/interface/CMakeLists.txt rename to paddle/fluid/ir/dialect/paddle_dialect/interface/CMakeLists.txt index 8812bc3675a..5ee2f3510ca 100644 --- a/paddle/fluid/ir/interface/CMakeLists.txt +++ b/paddle/fluid/ir/dialect/paddle_dialect/interface/CMakeLists.txt @@ -4,4 +4,4 @@ file(GLOB PD_INTERFACE_SRCS "*.cc") cc_library( pd_interface SRCS ${PD_INTERFACE_SRCS} - DEPS ir framework_proto phi_utils) + DEPS ir_core phi_utils) diff --git a/paddle/fluid/ir/interface/infermeta.h b/paddle/fluid/ir/dialect/paddle_dialect/interface/infermeta.h similarity index 100% rename from paddle/fluid/ir/interface/infermeta.h rename to paddle/fluid/ir/dialect/paddle_dialect/interface/infermeta.h diff --git a/paddle/fluid/ir/interface/interface.cc b/paddle/fluid/ir/dialect/paddle_dialect/interface/interface.cc similarity index 79% rename from paddle/fluid/ir/interface/interface.cc rename to paddle/fluid/ir/dialect/paddle_dialect/interface/interface.cc index ce43e447828..12b14de3086 100644 --- a/paddle/fluid/ir/interface/interface.cc +++ b/paddle/fluid/ir/dialect/paddle_dialect/interface/interface.cc @@ -12,9 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include "paddle/fluid/ir/interface/infermeta.h" -#include "paddle/fluid/ir/interface/op_yaml_info.h" -#include "paddle/fluid/ir/interface/vjp.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/infermeta.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/vjp.h" IR_DEFINE_EXPLICIT_TYPE_ID(paddle::dialect::InferMetaInterface) IR_DEFINE_EXPLICIT_TYPE_ID(paddle::dialect::OpYamlInfoInterface) diff --git a/paddle/fluid/ir/interface/op_yaml_info.h b/paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h similarity index 95% rename from paddle/fluid/ir/interface/op_yaml_info.h rename to paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h index 2440bd2170f..2069d19dd32 100644 --- a/paddle/fluid/ir/interface/op_yaml_info.h +++ b/paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h @@ -14,7 +14,7 @@ #pragma once -#include "paddle/fluid/ir/dialect/op_yaml_info_util.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_util.h" #include "paddle/ir/core/op_base.h" using OpInfoTuple = std::tuple, diff --git a/paddle/fluid/ir/interface/vjp.h b/paddle/fluid/ir/dialect/paddle_dialect/interface/vjp.h similarity index 100% rename from paddle/fluid/ir/interface/vjp.h rename to paddle/fluid/ir/dialect/paddle_dialect/interface/vjp.h diff --git a/paddle/fluid/ir/dialect/paddle_dialect/ir/CMakeLists.txt b/paddle/fluid/ir/dialect/paddle_dialect/ir/CMakeLists.txt new file mode 100644 index 00000000000..ee84abd7f32 --- /dev/null +++ b/paddle/fluid/ir/dialect/paddle_dialect/ir/CMakeLists.txt @@ -0,0 +1,97 @@ +set(PD_DIALECT_BINARY_DIR + "${PADDLE_BINARY_DIR}/paddle/fluid/ir/dialect/paddle_dialect/ir") + +# Generate pd_dialect files defining op using op_gen_file +set(op_gen_file + ${PADDLE_SOURCE_DIR}/paddle/fluid/ir/dialect/op_generator/op_gen.py) +set(op_compat_yaml_file ${PADDLE_SOURCE_DIR}/paddle/phi/api/yaml/op_compat.yaml) +set(op_forward_yaml_file1 + ${PADDLE_SOURCE_DIR}/paddle/fluid/operators/generator/parsed_ops/ops.parsed.yaml +) +set(op_forward_yaml_file2 + ${PADDLE_SOURCE_DIR}/paddle/fluid/operators/generator/parsed_ops/legacy_ops.parsed.yaml +) +set(op_backward_yaml_file1 + ${PADDLE_SOURCE_DIR}/paddle/fluid/operators/generator/parsed_ops/backward_ops.parsed.yaml +) +set(op_backward_yaml_file2 + ${PADDLE_SOURCE_DIR}/paddle/fluid/operators/generator/parsed_ops/legacy_backward_ops.parsed.yaml +) +set(op_yaml_file3 + ${PADDLE_SOURCE_DIR}/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.yaml) + +set(op_yaml_files + ${op_forward_yaml_file1},${op_forward_yaml_file2},${op_backward_yaml_file1},${op_backward_yaml_file2},${op_yaml_file3} +) +set(op_namespace paddle,dialect) +set(dialect_name pd) +set(op_header_file ${PD_DIALECT_BINARY_DIR}/pd_op.h) +set(op_source_file ${PD_DIALECT_BINARY_DIR}/pd_op.cc) +set(op_header_file_tmp ${op_header_file}.tmp) +set(op_source_file_tmp ${op_source_file}.tmp) + +add_custom_command( + OUTPUT ${op_header_file} ${op_source_file} + COMMAND + ${PYTHON_EXECUTABLE} ${op_gen_file} --op_yaml_files ${op_yaml_files} + --op_compat_yaml_file ${op_compat_yaml_file} --namespaces ${op_namespace} + --dialect_name ${dialect_name} --op_def_h_file ${op_header_file_tmp} + --op_def_cc_file ${op_source_file_tmp} + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${op_header_file_tmp} + ${op_header_file} + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${op_source_file_tmp} + ${op_source_file} + COMMENT "copy_if_different ${op_header_file} ${op_source_file}" + DEPENDS ${op_gen_file} ${op_forward_yaml_file1} ${op_forward_yaml_file2} + ${op_backward_yaml_file1} ${op_backward_yaml_file2} + ${op_compat_yaml_file} + VERBATIM) + +set(api_gen_file + ${PADDLE_SOURCE_DIR}/paddle/fluid/ir/dialect/op_generator/api_gen.py) +set(api_header_file ${PD_DIALECT_BINARY_DIR}/pd_api.h) +set(api_source_file ${PD_DIALECT_BINARY_DIR}/pd_api.cc) +set(api_header_file_tmp ${api_header_file}.tmp) +set(api_source_file_tmp ${api_source_file}.tmp) + +add_custom_command( + OUTPUT ${api_header_file} ${api_source_file} + COMMAND + ${PYTHON_EXECUTABLE} ${api_gen_file} --op_yaml_files ${op_yaml_files} + --op_compat_yaml_file ${op_compat_yaml_file} --namespaces ${op_namespace} + --api_def_h_file ${api_header_file_tmp} --api_def_cc_file + ${api_source_file_tmp} + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${api_header_file_tmp} + ${api_header_file} + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${api_source_file_tmp} + ${api_source_file} + COMMENT "copy_if_different ${api_header_file} ${api_source_file}" + DEPENDS ${api_gen_file} ${op_forward_yaml_file1} ${op_forward_yaml_file2} + ${op_backward_yaml_file1} ${op_backward_yaml_file2} + ${op_compat_yaml_file} + VERBATIM) + +cc_library( + pd_dialect_core + SRCS pd_attribute.cc pd_type.cc + DEPS phi pd_interface pd_trait type_info) +cc_library( + pd_dialect_op + SRCS ${op_source_file} pd_manual_op.cc + DEPS pd_dialect_core) +cc_library( + api_builder + SRCS api_builder.cc + DEPS ir_core) +cc_library( + pd_dialect_api + SRCS ${api_source_file} pd_manual_api.cc + DEPS api_builder pd_dialect_op) + +target_include_directories(pd_dialect_api PRIVATE ${PD_DIALECT_BINARY_DIR}) + +cc_library( + pd_dialect + SRCS pd_dialect.cc pd_op_vjp_manual.cc + DEPS pd_dialect_api param_to_variable primitive_vjp_experimental + pd_dialect_utils op_yaml_info_parser) diff --git a/paddle/fluid/ir/dialect/paddle_dialect/ir/api_builder.cc b/paddle/fluid/ir/dialect/paddle_dialect/ir/api_builder.cc new file mode 100644 index 00000000000..c72ee0b6b2f --- /dev/null +++ b/paddle/fluid/ir/dialect/paddle_dialect/ir/api_builder.cc @@ -0,0 +1,54 @@ +// 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. + +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/api_builder.h" +#include "paddle/ir/core/enforce.h" +#include "paddle/ir/core/ir_context.h" +// #include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" + +namespace paddle { +namespace dialect { + +APIBuilder::APIBuilder() : builder_(nullptr) { + ctx_ = ir::IrContext::Instance(); + // ctx_->GetOrRegisterDialect(); +} + +void APIBuilder::SetProgram(ir::Program* program) { + builder_ = std::make_shared(ctx_, program->block()); +} + +void APIBuilder::SetInsertionPoint(ir::Operation* op) { + IR_ENFORCE(builder_ != nullptr, + "builder doesn't hold program, please call SetProgram for " + "initialization."); + builder_->SetInsertionPoint(op); +} + +void APIBuilder::ResetInsertionPointToStart() { + IR_ENFORCE(builder_ != nullptr, + "builder doesn't hold program, please call SetProgram for " + "initialization."); + builder_->SetInsertionPointToStart(builder_->block()); +} + +void APIBuilder::ResetInsertionPointToEnd() { + IR_ENFORCE(builder_ != nullptr, + "builder doesn't hold program, please call SetProgram for " + "initialization."); + builder_->SetInsertionPointToEnd(builder_->block()); +} + +} // namespace dialect +} // namespace paddle diff --git a/paddle/fluid/ir/dialect/paddle_dialect/ir/api_builder.h b/paddle/fluid/ir/dialect/paddle_dialect/ir/api_builder.h new file mode 100644 index 00000000000..029c79c2110 --- /dev/null +++ b/paddle/fluid/ir/dialect/paddle_dialect/ir/api_builder.h @@ -0,0 +1,55 @@ +// 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 + +#include "paddle/ir/core/builder.h" +#include "paddle/ir/core/macros.h" +#include "paddle/ir/core/program.h" + +namespace paddle { +namespace dialect { +/// +/// \brief APIBuilder is used in IR API for building op +/// +class APIBuilder { + public: + static APIBuilder& Instance() { + static APIBuilder api_builder; + return api_builder; + } + void SetProgram(ir::Program* program); + + /// Set the insertion point to the specified operation, which will cause + /// subsequent insertions to go right before it. + void SetInsertionPoint(ir::Operation* op); + + void ResetInsertionPointToStart(); + + void ResetInsertionPointToEnd(); + + std::shared_ptr GetBuilder() { return builder_; } + + private: + APIBuilder(); + + DISABLE_COPY_AND_ASSIGN(APIBuilder); + + ir::IrContext* ctx_; + std::shared_ptr builder_; +}; + +} // namespace dialect +} // namespace paddle diff --git a/paddle/fluid/ir/dialect/pd_attribute.cc b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.cc similarity index 96% rename from paddle/fluid/ir/dialect/pd_attribute.cc rename to paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.cc index 8ccad0cf981..3b566edf03c 100644 --- a/paddle/fluid/ir/dialect/pd_attribute.cc +++ b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.cc @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include "paddle/fluid/ir/dialect/pd_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h" namespace paddle { namespace dialect { diff --git a/paddle/fluid/ir/dialect/pd_attribute.h b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h similarity index 97% rename from paddle/fluid/ir/dialect/pd_attribute.h rename to paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h index 05514705efe..d192916c57a 100644 --- a/paddle/fluid/ir/dialect/pd_attribute.h +++ b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h @@ -14,7 +14,7 @@ #pragma once -#include "paddle/fluid/ir/dialect/pd_attribute_storage.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute_storage.h" #include "paddle/ir/core/attribute.h" #include "paddle/ir/core/builtin_attribute.h" #include "paddle/phi/common/scalar.h" diff --git a/paddle/fluid/ir/dialect/pd_attribute_storage.h b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute_storage.h similarity index 100% rename from paddle/fluid/ir/dialect/pd_attribute_storage.h rename to paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute_storage.h diff --git a/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.cc b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.cc new file mode 100644 index 00000000000..ddc117cb22c --- /dev/null +++ b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.cc @@ -0,0 +1,103 @@ +// 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. + +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h" +// NOTE(zhangbo9674): File pd_op.h is generated by op_gen.py, see details in +// paddle/fluid/ir/dialect/CMakeLists.txt. +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type_storage.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/transforms/param_to_variable.h" +#include "paddle/ir/core/utils.h" + +namespace paddle { +namespace dialect { + +PaddleDialect::PaddleDialect(ir::IrContext *context) + : ir::Dialect(name(), context, ir::TypeId::get()) { + initialize(); +} + +void PaddleDialect::initialize() { + RegisterTypes(); + RegisterTypes(); + + RegisterAttributes(); + + // NOTE(zhangbo9674): GET_OP_LIST is defined in pd_op.h which is + // generated by op_gen.py, see details in + // paddle/fluid/ir/dialect/CMakeLists.txt. + // NOTE(Ruting)GET_MANUAL_OP_LIST is define in pd_manual_op.h" + // use RegisterOps when list has more than two ops. + RegisterOps< +#define GET_OP_LIST +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.h" // NOLINT + >(); + RegisterOp(); + + RegisterInterfaces(); +} + +void PaddleDialect::PrintType(ir::Type type, std::ostream &os) const { + os << type.dialect().name(); + os << '.'; + if (auto tensor_type = type.dyn_cast()) { + os << "tensor<"; + for (auto d : phi::vectorize(tensor_type.dims())) { + os << d; + os << "x"; + } + tensor_type.dtype().Print(os); + os << ">"; + } else if (auto selected_rows_type = type.dyn_cast()) { + os << "selectedrows<"; + for (auto d : phi::vectorize(selected_rows_type.dims())) { + os << d; + os << "x"; + } + selected_rows_type.dtype().Print(os); + os << ">"; + } +} + +void PaddleDialect::PrintAttribute(ir::Attribute attr, std::ostream &os) const { + if (auto int_array_attr = attr.dyn_cast()) { + phi::IntArray data = int_array_attr.data(); + os << "IntArray["; + const auto &inner_data = data.GetData(); + ir::PrintInterleave( + inner_data.begin(), + inner_data.end(), + [&os](int64_t i) { os << i; }, + [&os]() { os << ","; }); + os << "]"; + } else if (auto data_type_attr = attr.dyn_cast()) { + os << data_type_attr.data(); + } else if (auto place_type_attr = attr.dyn_cast()) { + os << place_type_attr.data(); + } else if (auto data_layout_attr = attr.dyn_cast()) { + os << data_layout_attr.data(); + } else { + os << "<#AttrNotImplemented>"; + } +} + +} // namespace dialect +} // namespace paddle + +IR_DEFINE_EXPLICIT_TYPE_ID(paddle::dialect::PaddleDialect) diff --git a/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h new file mode 100644 index 00000000000..5a3d46afb43 --- /dev/null +++ b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h @@ -0,0 +1,38 @@ +// 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/ir/core/dialect.h" + +namespace paddle { +namespace dialect { + +class PaddleDialect : public ir::Dialect { + public: + explicit PaddleDialect(ir::IrContext* context); + + static const char* name() { return "pd"; } + + void PrintType(ir::Type type, std::ostream& os) const; + void PrintAttribute(ir::Attribute type, std::ostream& os) const; + + private: + void initialize(); +}; + +} // namespace dialect +} // namespace paddle + +IR_DECLARE_EXPLICIT_TYPE_ID(paddle::dialect::PaddleDialect) diff --git a/paddle/fluid/ir/dialect/pd_manual_api.cc b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_manual_api.cc similarity index 87% rename from paddle/fluid/ir/dialect/pd_manual_api.cc rename to paddle/fluid/ir/dialect/paddle_dialect/ir/pd_manual_api.cc index 10e25ea883b..985e896d6e0 100644 --- a/paddle/fluid/ir/dialect/pd_manual_api.cc +++ b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_manual_api.cc @@ -12,10 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include "paddle/fluid/ir/dialect/pd_manual_api.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/dialect/pd_op.h" -#include "paddle/ir/core/builder.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_manual_api.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/api_builder.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.h" #include "paddle/ir/core/builtin_op.h" namespace paddle { diff --git a/paddle/fluid/ir/dialect/pd_manual_api.h b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_manual_api.h similarity index 100% rename from paddle/fluid/ir/dialect/pd_manual_api.h rename to paddle/fluid/ir/dialect/paddle_dialect/ir/pd_manual_api.h diff --git a/paddle/fluid/ir/dialect/pd_manual_op.cc b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_manual_op.cc similarity index 96% rename from paddle/fluid/ir/dialect/pd_manual_op.cc rename to paddle/fluid/ir/dialect/paddle_dialect/ir/pd_manual_op.cc index 7f95a6fdf3d..2bcc9045e89 100644 --- a/paddle/fluid/ir/dialect/pd_manual_op.cc +++ b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_manual_op.cc @@ -12,9 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include "paddle/fluid/ir/dialect/pd_manual_op.h" -#include "paddle/fluid/ir/dialect/pd_attribute.h" -#include "paddle/fluid/ir/dialect/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_manual_op.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" #include "paddle/ir/core/builtin_attribute.h" #include "paddle/ir/core/builtin_op.h" #include "paddle/ir/core/builtin_type.h" diff --git a/paddle/fluid/ir/dialect/pd_manual_op.h b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_manual_op.h similarity index 85% rename from paddle/fluid/ir/dialect/pd_manual_op.h rename to paddle/fluid/ir/dialect/paddle_dialect/ir/pd_manual_op.h index ff055ea6edf..e3814a535cc 100644 --- a/paddle/fluid/ir/dialect/pd_manual_op.h +++ b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_manual_op.h @@ -22,10 +22,10 @@ paddle::dialect::AddNOp #include #include "paddle/fluid/framework/infershape_utils.h" -#include "paddle/fluid/ir/dialect/op_yaml_info_util.h" -#include "paddle/fluid/ir/dialect/utils.h" -#include "paddle/fluid/ir/interface/infermeta.h" -#include "paddle/fluid/ir/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/infermeta.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_util.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h" #include "paddle/ir/core/builder.h" #include "paddle/ir/core/op_base.h" #include "paddle/ir/core/operation_utils.h" diff --git a/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.yaml b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.yaml new file mode 100644 index 00000000000..30bb41cddb9 --- /dev/null +++ b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.yaml @@ -0,0 +1,357 @@ +- name: assign_value + inputs: [] + attrs: + - {typename: 'int[]', name: shape} + - {typename: DataType, name: dtype} + - {typename: 'Scalar[]', name: values, data_type: 'std::vector'} + - {typename: Place, name: place, default_value: '{}'} + outputs: + - {typename: Tensor, name: out, optional: false, intermediate: false} + no_need_buffer: null + data_transform: null + infer_meta: + func: AssignValueInferMeta + param: [shape, dtype] + kernel: + func: [assign_value] + param: [shape, dtype, values] + backend: + ordered: true + candidates: [place] + layout: null + data_type: + ordered: false + candidates: [dtype] + to_complex_flag: [false] + dispatch: {assign_value: null} + force_backend: null + inplace: null + view: null + backward: null + +- name: feed + inputs: [] + attrs: + - {typename: str, name: name} + - {typename: int, name: col} + outputs: + - {typename: Tensor, name: out, optional: false, intermediate: false} + no_need_buffer: null + data_transform: null + inplace: null + backward: null + +- name: fetch + inputs: + - typename: Tensor + name: x + optional: false + no_need_buffer: false + data_transform: {} + attrs: + - {typename: str, name: name} + - {typename: int, name: col} + outputs: + - {typename: Tensor, name: out, optional: false, intermediate: false} + no_need_buffer: null + data_transform: null + infer_meta: + func: UnchangedInferMeta + param: [x] + kernel: + func: [fetch] + param: [x] + backend: null + layout: null + data_type: null + dispatch: {fetch: null} + force_backend: null + inplace: null + backward: null + +- name: save_combine + inputs: + - typename: Tensor[] + name: X + optional: false + no_need_buffer: false + data_transform: {} + attrs: + - {typename: str, name: file_path} + - {typename: bool, name: overwrite} + - {typename: bool, name: save_as_fp16} + - {typename: bool, name: save_to_memory} + outputs: + - {typename: Tensor, name: out, optional: true, intermediate: false} + no_need_buffer: null + data_transform: null + kernel: + func: [save_combine_tensor] + param: [X, file_path, overwrite, save_as_fp16, save_to_memory] + backend: null + layout: null + data_type: null + dispatch: {fetch: null} + force_backend: null + inplace: null + backward: null + +- name: load_combine + inputs: [] + attrs: + - {typename: str, name: file_path} + - {typename: bool, name: load_as_fp16} + - {typename: bool, name: model_from_memory} + outputs: + - {typename: 'Tensor[]', name: Out, optional: true, intermediate: false} + no_need_buffer: null + data_transform: null + kernel: + func: [load_combine] + param: [file_path, load_as_fp16, model_from_memory] + backend: null + layout: null + data_type: null + dispatch: {fetch: null} + force_backend: null + inplace: null + backward: null + +- name: share_buffer_ + inputs: + - typename: Tensor[] + name: x + optional: false + no_need_buffer: false + data_transform: {} + attrs: + - {typename: 'bool[]', name: share_dims_and_dtype, default_value: '{}'} + outputs: + - {typename: 'Tensor[]', name: out, size: x.size(), optional: false, intermediate: false} + - {typename: 'Tensor[]', name: xout, size: x.size(), optional: false, intermediate: false} + no_need_buffer: null + data_transform: null + inplace: null + backward: null + +- name: assert + inputs: + - typename: Tensor + name: cond + optional: false + no_need_buffer: false + data_transform: {} + - typename: Tensor[] + name: data + optional: false + no_need_buffer: false + data_transform: {} + attrs: + - {typename: 'int64_t', name: summarize, default_value: '-1'} + outputs: [] + no_need_buffer: null + data_transform: null + kernel: + func: [assert] + param: [cond, data, summarize] + backend: null + layout: null + data_type: + ordered: false + candidates: [cond] + to_complex_flag: [false] + dispatch: {assert: null} + force_backend: null + inplace: null + backward: null + +- name: print + inputs: + - typename: Tensor + name: in + optional: false + no_need_buffer: false + data_transform: {} + attrs: + - {typename: 'int', name: first_n} + - {typename: 'str', name: message} + - {typename: 'int', name: summarize} + - {typename: 'bool', name: print_tensor_name, default_value: 'true'} + - {typename: 'bool', name: print_tensor_type, default_value: 'true'} + - {typename: 'bool', name: print_tensor_shape, default_value: 'true'} + - {typename: 'bool', name: print_tensor_layout, default_value: 'true'} + - {typename: 'bool', name: print_tensor_lod, default_value: 'true'} + - {typename: 'str', name: print_phase, default_value: '"BOTH"'} + - {typename: 'bool', name: is_forward, default_value: 'true'} + outputs: + - typename: Tensor + name: out + optional: false + no_need_buffer: false + data_transform: {} + infer_meta: + func: UnchangedInferMeta + param: [in] + kernel: + func: [print_kernel] + param: [in, first_n, message, summarize, print_tensor_name, print_tensor_type, print_tensor_shape, print_tensor_layout, print_tensor_lod, print_phase, is_forward ] + backend: null + layout: null + data_type: null + dispatch: {print: null} + force_backend: null + no_need_buffer: null + data_transform: null + inplace: null + backward: null + +- name: add_n_ + inputs: + - typename: Tensor[] + name: inputs + optional: false + no_need_buffer: false + data_transform: {} + attrs: [] + outputs: + - {typename: Tensor, name: out, optional: false, intermediate: false} + no_need_buffer: null + data_transform: null + infer_meta: + func: AddNInferMeta + param: [inputs] + kernel: + func: [add_n] + param: [inputs] + backend: null + layout: null + data_type: null + dispatch: {fetch: null} + force_backend: null + backward: add_n_grad + +- name: add_n_with_kernel + inputs: + - typename: Tensor[] + name: inputs + optional: false + no_need_buffer: false + data_transform: {} + attrs: [] + outputs: + - {typename: Tensor, name: out, optional: false, intermediate: false} + no_need_buffer: null + data_transform: null + infer_meta: + func: AddNInferMeta + param: [inputs] + kernel: + func: [add_n] + param: [inputs] + backend: null + layout: null + data_type: null + dispatch: {fetch: null} + force_backend: null + backward: add_n_grad + +- name: write_to_array + inputs: + - typename: Tensor + name: i + optional: false + no_need_buffer: false + data_transform: {} + - typename: Tensor + name: x + optional: false + no_need_buffer: false + data_transform: {} + attrs: [] + outputs: + - {typename: 'Tensor[]', name: out, optional: false, intermediate: false} + no_need_buffer: null + data_transform: null + backward: write_to_array_grad + +- name: lod_array_length + inputs: + - typename: Tensor[] + name: x + optional: false + no_need_buffer: false + data_transform: {} + attrs: [] + outputs: + - {typename: 'Tensor', name: out, optional: false, intermediate: false} + no_need_buffer: null + data_transform: null + +- name: embedding_grad_sparse + inputs: + - typename: Tensor + name: x + optional: false + no_need_buffer: false + data_transform: {} + - typename: Tensor + name: weight + optional: false + no_need_buffer: false + data_transform: {} + - typename: Tensor + name: out_grad + optional: false + no_need_buffer: false + data_transform: {} + attrs: + - {typename: int64_t, name: padding_idx, default_value: '-1'} + - {typename: bool, name: sparse, default_value: 'false'} + outputs: + - {typename: SelectedRows, name: weight_grad, optional: false, intermediate: false} + no_need_buffer: null + data_transform: null + infer_meta: + func: EmbeddingGradSparseInferMeta + param: [weight] + kernel: + func: [embedding_sparse_grad] + param: [x, weight, out_grad, padding_idx, sparse] + backend: null + layout: null + data_type: + ordered: false + candidates: [weight] + to_complex_flag: [false] + dispatch: {embedding_sparse_grad: null} + force_backend: null + inplace: null + view: null + backward: null + + +- name: shadow_feed + inputs: + - typename: Tensor + name: x + optional: false + no_need_buffer: false + data_transform: {} + attrs: [] + outputs: + - {typename: Tensor, name: out, optional: false, intermediate: false} + no_need_buffer: null + data_transform: null + infer_meta: + func: UnchangedInferMeta + param: [x] + kernel: + func: [shadow_feed] + param: [x] + backend: null + layout: null + data_type: null + dispatch: {fetch: null} + force_backend: null + inplace: null + backward: null diff --git a/paddle/fluid/ir/dialect/pd_op_vjp_manual.cc b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op_vjp_manual.cc similarity index 96% rename from paddle/fluid/ir/dialect/pd_op_vjp_manual.cc rename to paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op_vjp_manual.cc index a68d0ee5058..f1ea245d562 100644 --- a/paddle/fluid/ir/dialect/pd_op_vjp_manual.cc +++ b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op_vjp_manual.cc @@ -12,8 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include "paddle/fluid/ir/dialect/pd_attribute.h" -#include "paddle/fluid/ir/dialect/pd_op.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.h" #include "paddle/fluid/primitive/rule/vjp/vjp.h" #include "paddle/fluid/primitive/type/lazy_tensor.h" #include "paddle/ir/core/builtin_op.h" diff --git a/paddle/fluid/ir/dialect/pd_type.cc b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.cc similarity index 96% rename from paddle/fluid/ir/dialect/pd_type.cc rename to paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.cc index caef537e6cf..ce0f393200c 100644 --- a/paddle/fluid/ir/dialect/pd_type.cc +++ b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.cc @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include "paddle/fluid/ir/dialect/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" namespace paddle { namespace dialect { diff --git a/paddle/fluid/ir/dialect/pd_type.h b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h similarity index 95% rename from paddle/fluid/ir/dialect/pd_type.h rename to paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h index 249fc018690..640e4ab2392 100644 --- a/paddle/fluid/ir/dialect/pd_type.h +++ b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h @@ -14,7 +14,7 @@ #pragma once -#include "paddle/fluid/ir/dialect/pd_type_storage.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type_storage.h" #include "paddle/ir/core/type.h" namespace paddle { diff --git a/paddle/fluid/ir/dialect/pd_type_storage.h b/paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type_storage.h similarity index 100% rename from paddle/fluid/ir/dialect/pd_type_storage.h rename to paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type_storage.h diff --git a/paddle/fluid/ir/trait/CMakeLists.txt b/paddle/fluid/ir/dialect/paddle_dialect/trait/CMakeLists.txt similarity index 84% rename from paddle/fluid/ir/trait/CMakeLists.txt rename to paddle/fluid/ir/dialect/paddle_dialect/trait/CMakeLists.txt index 949c44bf53e..53c3060d6f1 100644 --- a/paddle/fluid/ir/trait/CMakeLists.txt +++ b/paddle/fluid/ir/dialect/paddle_dialect/trait/CMakeLists.txt @@ -3,4 +3,4 @@ file(GLOB PD_INTERFACE_SRCS "*.cc") cc_library( pd_trait SRCS ${PD_INTERFACE_SRCS} - DEPS ir) + DEPS ir_core) diff --git a/paddle/fluid/ir/trait/inplace.h b/paddle/fluid/ir/dialect/paddle_dialect/trait/inplace.h similarity index 100% rename from paddle/fluid/ir/trait/inplace.h rename to paddle/fluid/ir/dialect/paddle_dialect/trait/inplace.h diff --git a/paddle/fluid/ir/trait/trait.cc b/paddle/fluid/ir/dialect/paddle_dialect/trait/trait.cc similarity index 91% rename from paddle/fluid/ir/trait/trait.cc rename to paddle/fluid/ir/dialect/paddle_dialect/trait/trait.cc index e20e25cda9e..c086b98e34b 100644 --- a/paddle/fluid/ir/trait/trait.cc +++ b/paddle/fluid/ir/dialect/paddle_dialect/trait/trait.cc @@ -12,6 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include "paddle/fluid/ir/trait/inplace.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/trait/inplace.h" IR_DEFINE_EXPLICIT_TYPE_ID(paddle::dialect::InplaceTrait) diff --git a/paddle/fluid/ir/dialect/paddle_dialect/transforms/CMakeLists.txt b/paddle/fluid/ir/dialect/paddle_dialect/transforms/CMakeLists.txt new file mode 100644 index 00000000000..8d90edd3feb --- /dev/null +++ b/paddle/fluid/ir/dialect/paddle_dialect/transforms/CMakeLists.txt @@ -0,0 +1,4 @@ +cc_library( + param_to_variable + SRCS param_to_variable.cc + DEPS pd_dialect_core) diff --git a/paddle/fluid/ir/dialect/pd_dialect.cc b/paddle/fluid/ir/dialect/paddle_dialect/transforms/param_to_variable.cc similarity index 52% rename from paddle/fluid/ir/dialect/pd_dialect.cc rename to paddle/fluid/ir/dialect/paddle_dialect/transforms/param_to_variable.cc index 5ebdf7611a8..0113e38b8fd 100644 --- a/paddle/fluid/ir/dialect/pd_dialect.cc +++ b/paddle/fluid/ir/dialect/paddle_dialect/transforms/param_to_variable.cc @@ -12,18 +12,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include "paddle/fluid/ir/dialect/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/transforms/param_to_variable.h" + #include "paddle/fluid/framework/convert_utils.h" #include "paddle/fluid/framework/data_type.h" -#include "paddle/fluid/ir/dialect/pd_attribute.h" -// NOTE(zhangbo9674): File pd_op.h is generated by op_gen.py, see details in -// paddle/fluid/ir/dialect/CMakeLists.txt. -#include "paddle/fluid/ir/dialect/pd_op.h" -#include "paddle/fluid/ir/dialect/pd_type.h" -#include "paddle/fluid/ir/dialect/pd_type_storage.h" -#include "paddle/fluid/ir/dialect/utils.h" -#include "paddle/ir/core/dialect_interface.h" -#include "paddle/ir/core/utils.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h" #include "paddle/phi/common/data_type.h" #include "paddle/phi/core/dense_tensor.h" @@ -85,80 +79,7 @@ std::unique_ptr ParameterConvertInterface::VariableToParameter( } } -PaddleDialect::PaddleDialect(ir::IrContext *context) - : ir::Dialect(name(), context, ir::TypeId::get()) { - initialize(); -} - -void PaddleDialect::initialize() { - RegisterTypes(); - RegisterTypes(); - - RegisterAttributes(); - - // NOTE(zhangbo9674): GET_OP_LIST is defined in pd_op.h which is - // generated by op_gen.py, see details in - // paddle/fluid/ir/dialect/CMakeLists.txt. - // NOTE(Ruting)GET_MANUAL_OP_LIST is define in pd_manual_op.h" - // use RegisterOps when list has more than two ops. - RegisterOps< -#define GET_OP_LIST -#include "paddle/fluid/ir/dialect/pd_op.h" // NOLINT - >(); - RegisterOp(); - - RegisterInterfaces(); -} - -void PaddleDialect::PrintType(ir::Type type, std::ostream &os) const { - os << type.dialect().name(); - os << '.'; - if (auto tensor_type = type.dyn_cast()) { - os << "tensor<"; - for (auto d : phi::vectorize(tensor_type.dims())) { - os << d; - os << "x"; - } - tensor_type.dtype().Print(os); - os << ">"; - } else if (auto selected_rows_type = type.dyn_cast()) { - os << "selectedrows<"; - for (auto d : phi::vectorize(selected_rows_type.dims())) { - os << d; - os << "x"; - } - selected_rows_type.dtype().Print(os); - os << ">"; - } -} - -void PaddleDialect::PrintAttribute(ir::Attribute attr, std::ostream &os) const { - if (auto int_array_attr = attr.dyn_cast()) { - phi::IntArray data = int_array_attr.data(); - os << "IntArray["; - const auto &inner_data = data.GetData(); - ir::PrintInterleave( - inner_data.begin(), - inner_data.end(), - [&os](int64_t i) { os << i; }, - [&os]() { os << ","; }); - os << "]"; - } else if (auto data_type_attr = attr.dyn_cast()) { - os << data_type_attr.data(); - } else if (auto place_type_attr = attr.dyn_cast()) { - os << place_type_attr.data(); - } else if (auto data_layout_attr = attr.dyn_cast()) { - os << data_layout_attr.data(); - } else { - os << "<#AttrNotImplemented>"; - } -} - } // namespace dialect } // namespace paddle -IR_DEFINE_EXPLICIT_TYPE_ID(paddle::dialect::PaddleDialect) IR_DEFINE_EXPLICIT_TYPE_ID(paddle::dialect::ParameterConvertInterface) diff --git a/paddle/fluid/ir/dialect/paddle_dialect/transforms/param_to_variable.h b/paddle/fluid/ir/dialect/paddle_dialect/transforms/param_to_variable.h new file mode 100644 index 00000000000..4194cbae53d --- /dev/null +++ b/paddle/fluid/ir/dialect/paddle_dialect/transforms/param_to_variable.h @@ -0,0 +1,38 @@ +// 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/fluid/framework/variable.h" +#include "paddle/ir/core/dialect_interface.h" +#include "paddle/ir/core/parameter.h" + +namespace paddle { +namespace dialect { +class ParameterConvertInterface + : public ir::DialectInterface::Base { + public: + explicit ParameterConvertInterface(ir::Dialect* dialect) : Base(dialect) {} + + // NOTE(zhangbo): Only support new a CPU Variable. + std::shared_ptr ParameterToVariable( + ir::Parameter* parameter); + + std::unique_ptr VariableToParameter( + paddle::framework::Variable* var); +}; + +} // namespace dialect +} // namespace paddle + +IR_DECLARE_EXPLICIT_TYPE_ID(paddle::dialect::ParameterConvertInterface) diff --git a/paddle/fluid/ir/dialect/paddle_dialect/utils/CMakeLists.txt b/paddle/fluid/ir/dialect/paddle_dialect/utils/CMakeLists.txt new file mode 100644 index 00000000000..325f13f619b --- /dev/null +++ b/paddle/fluid/ir/dialect/paddle_dialect/utils/CMakeLists.txt @@ -0,0 +1,5 @@ +cc_library(op_yaml_info_parser SRCS op_yaml_info_parser.cc) +cc_library( + pd_dialect_utils + SRCS utils.cc + DEPS pd_dialect_core) diff --git a/paddle/fluid/ir/interface/op_yaml_info_parser.cc b/paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_parser.cc similarity index 98% rename from paddle/fluid/ir/interface/op_yaml_info_parser.cc rename to paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_parser.cc index 44453c160ae..4df7140452a 100644 --- a/paddle/fluid/ir/interface/op_yaml_info_parser.cc +++ b/paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_parser.cc @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include "paddle/fluid/ir/interface/op_yaml_info_parser.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_parser.h" namespace paddle { namespace dialect { diff --git a/paddle/fluid/ir/interface/op_yaml_info_parser.h b/paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_parser.h similarity index 97% rename from paddle/fluid/ir/interface/op_yaml_info_parser.h rename to paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_parser.h index 8aae9ef10ee..939f3f9d027 100644 --- a/paddle/fluid/ir/interface/op_yaml_info_parser.h +++ b/paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_parser.h @@ -14,7 +14,7 @@ #pragma once -#include "paddle/fluid/ir/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h" namespace paddle { namespace dialect { diff --git a/paddle/fluid/ir/dialect/op_yaml_info_util.h b/paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_util.h similarity index 97% rename from paddle/fluid/ir/dialect/op_yaml_info_util.h rename to paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_util.h index 802659847d6..5dd319c69fd 100644 --- a/paddle/fluid/ir/dialect/op_yaml_info_util.h +++ b/paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_util.h @@ -14,7 +14,7 @@ #pragma once -#include "paddle/fluid/ir/dialect/pd_type_storage.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type_storage.h" #include "paddle/ir/core/builtin_attribute.h" #include "paddle/ir/core/builtin_type.h" diff --git a/paddle/fluid/ir/dialect/utils.cc b/paddle/fluid/ir/dialect/paddle_dialect/utils/utils.cc similarity index 96% rename from paddle/fluid/ir/dialect/utils.cc rename to paddle/fluid/ir/dialect/paddle_dialect/utils/utils.cc index 4e22d243faa..6b1b16ce36c 100644 --- a/paddle/fluid/ir/dialect/utils.cc +++ b/paddle/fluid/ir/dialect/paddle_dialect/utils/utils.cc @@ -12,13 +12,17 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include "paddle/fluid/ir/dialect/utils.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h" namespace paddle { namespace dialect { const std::unordered_set LegacyOpList = { - "pd.load_combine", "pd.c_concat", "pd.c_broadcast_"}; + "pd.fused_softmax_mask_upper_triangle", + "pd.fused_softmax_mask_upper_triangle_grad", + "pd.load_combine", + "pd.c_concat", + "pd.load_combine"}; enum class AttrType { UNDEFINED = 0, diff --git a/paddle/fluid/ir/dialect/utils.h b/paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h similarity index 97% rename from paddle/fluid/ir/dialect/utils.h rename to paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h index 9b5a79c7a44..cb0c5967182 100644 --- a/paddle/fluid/ir/dialect/utils.h +++ b/paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h @@ -16,8 +16,8 @@ // #include "paddle/fluid/framework/convert_utils.h" #include "paddle/fluid/framework/data_type.h" -#include "paddle/fluid/ir/dialect/pd_attribute.h" -#include "paddle/fluid/ir/dialect/pd_type_storage.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type_storage.h" #include "paddle/ir/core/builtin_attribute.h" #include "paddle/ir/core/builtin_type.h" #include "paddle/phi/common/int_array.h" diff --git a/paddle/fluid/ir/dialect/paddle_kernel_dialect/CMakeLists.txt b/paddle/fluid/ir/dialect/paddle_kernel_dialect/CMakeLists.txt new file mode 100644 index 00000000000..dd1b708ce9f --- /dev/null +++ b/paddle/fluid/ir/dialect/paddle_kernel_dialect/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(ir) diff --git a/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/CMakeLists.txt b/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/CMakeLists.txt new file mode 100644 index 00000000000..af5e5c4fc90 --- /dev/null +++ b/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/CMakeLists.txt @@ -0,0 +1,5 @@ +file(GLOB PADDLE_KERNEL_DIALECT_SRCS "*.cc") +cc_library( + pd_kernel_dialect + SRCS ${PADDLE_KERNEL_DIALECT_SRCS} + DEPS pd_dialect_core) diff --git a/paddle/fluid/ir/dialect/kernel_attribute.cc b/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_attribute.cc similarity index 89% rename from paddle/fluid/ir/dialect/kernel_attribute.cc rename to paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_attribute.cc index 3109df13935..43ed52ffc67 100644 --- a/paddle/fluid/ir/dialect/kernel_attribute.cc +++ b/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_attribute.cc @@ -12,6 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include "paddle/fluid/ir/dialect/kernel_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_attribute.h" IR_DEFINE_EXPLICIT_TYPE_ID(paddle::dialect::KernelAttribute) diff --git a/paddle/fluid/ir/dialect/kernel_attribute.h b/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_attribute.h similarity index 93% rename from paddle/fluid/ir/dialect/kernel_attribute.h rename to paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_attribute.h index c01326d4193..fa17b823f02 100644 --- a/paddle/fluid/ir/dialect/kernel_attribute.h +++ b/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_attribute.h @@ -14,7 +14,7 @@ #pragma once -#include "paddle/fluid/ir/dialect/kernel_attribute_storage.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_attribute_storage.h" #include "paddle/ir/core/attribute.h" #include "paddle/phi/core/enforce.h" diff --git a/paddle/fluid/ir/dialect/kernel_attribute_storage.h b/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_attribute_storage.h similarity index 100% rename from paddle/fluid/ir/dialect/kernel_attribute_storage.h rename to paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_attribute_storage.h diff --git a/paddle/fluid/ir/dialect/kernel_dialect.cc b/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_dialect.cc similarity index 72% rename from paddle/fluid/ir/dialect/kernel_dialect.cc rename to paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_dialect.cc index f3b1a6e36ab..4d91c350722 100644 --- a/paddle/fluid/ir/dialect/kernel_dialect.cc +++ b/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_dialect.cc @@ -12,22 +12,13 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include "paddle/fluid/ir/dialect/kernel_dialect.h" -#include "paddle/fluid/ir/dialect/kernel_op.h" -#include "paddle/fluid/ir/dialect/pd_attribute.h" -// NOTE(zhangbo9674): File pd_op.h is generated by op_gen.py, see details in -// paddle/fluid/ir/dialect/CMakeLists.txt. -#include "paddle/fluid/framework/convert_utils.h" -#include "paddle/fluid/framework/data_type.h" -#include "paddle/fluid/ir/dialect/kernel_attribute.h" -#include "paddle/fluid/ir/dialect/kernel_type.h" -#include "paddle/fluid/ir/dialect/kernel_type_storage.h" -#include "paddle/fluid/ir/dialect/op_yaml_info_util.h" -#include "paddle/fluid/ir/dialect/pd_op.h" -#include "paddle/fluid/ir/dialect/utils.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_op.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_type.h" #include "paddle/fluid/platform/init_phi.h" -#include "paddle/ir/core/dialect_interface.h" -#include "paddle/phi/core/dense_tensor.h" +#include "paddle/phi/common/place.h" +#include "paddle/phi/core/ddim.h" REGISTER_FILE_SYMBOLS(kernel_dialect); diff --git a/paddle/fluid/ir/dialect/kernel_dialect.h b/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_dialect.h similarity index 93% rename from paddle/fluid/ir/dialect/kernel_dialect.h rename to paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_dialect.h index 401b6da4361..7685a9d6545 100644 --- a/paddle/fluid/ir/dialect/kernel_dialect.h +++ b/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_dialect.h @@ -14,9 +14,7 @@ #pragma once -#include "paddle/fluid/framework/variable.h" #include "paddle/ir/core/dialect.h" -#include "paddle/ir/core/parameter.h" namespace paddle { namespace dialect { diff --git a/paddle/fluid/ir/dialect/kernel_op.cc b/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_op.cc similarity index 93% rename from paddle/fluid/ir/dialect/kernel_op.cc rename to paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_op.cc index 57127c0a57f..b463fc6ae85 100644 --- a/paddle/fluid/ir/dialect/kernel_op.cc +++ b/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_op.cc @@ -12,8 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include "paddle/fluid/ir/dialect/kernel_op.h" -#include "paddle/fluid/ir/dialect/kernel_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_op.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_attribute.h" #include "paddle/ir/core/builtin_attribute.h" #include "paddle/phi/core/enforce.h" diff --git a/paddle/fluid/ir/dialect/kernel_op.h b/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_op.h similarity index 100% rename from paddle/fluid/ir/dialect/kernel_op.h rename to paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_op.h diff --git a/paddle/fluid/ir/dialect/kernel_type.cc b/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_type.cc similarity index 96% rename from paddle/fluid/ir/dialect/kernel_type.cc rename to paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_type.cc index d54b360647e..9740f1296a5 100644 --- a/paddle/fluid/ir/dialect/kernel_type.cc +++ b/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_type.cc @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include "paddle/fluid/ir/dialect/kernel_type.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_type.h" namespace paddle { namespace dialect { diff --git a/paddle/fluid/ir/dialect/kernel_type.h b/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_type.h similarity index 96% rename from paddle/fluid/ir/dialect/kernel_type.h rename to paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_type.h index b553cce6e89..b00f2e5320d 100644 --- a/paddle/fluid/ir/dialect/kernel_type.h +++ b/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_type.h @@ -14,8 +14,8 @@ #pragma once -#include "paddle/fluid/ir/dialect/kernel_type_storage.h" -#include "paddle/fluid/ir/dialect/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_type_storage.h" #include "paddle/ir/core/type.h" namespace paddle { diff --git a/paddle/fluid/ir/dialect/kernel_type_storage.h b/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_type_storage.h similarity index 98% rename from paddle/fluid/ir/dialect/kernel_type_storage.h rename to paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_type_storage.h index 59070f75f93..1913dd6e634 100644 --- a/paddle/fluid/ir/dialect/kernel_type_storage.h +++ b/paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_type_storage.h @@ -16,7 +16,7 @@ #include -#include "paddle/fluid/ir/dialect/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" #include "paddle/ir/core/type.h" #include "paddle/ir/core/utils.h" #include "paddle/phi/core/tensor_meta.h" diff --git a/paddle/fluid/ir/dialect/pd_dialect.h b/paddle/fluid/ir/dialect/pd_dialect.h deleted file mode 100644 index 4fa14d39424..00000000000 --- a/paddle/fluid/ir/dialect/pd_dialect.h +++ /dev/null @@ -1,106 +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/fluid/framework/variable.h" -#include "paddle/ir/core/dialect.h" -#include "paddle/ir/core/enforce.h" -#include "paddle/ir/core/macros.h" -#include "paddle/ir/core/parameter.h" -#include "paddle/ir/core/program.h" - -namespace paddle { -namespace dialect { -class ParameterConvertInterface - : public ir::DialectInterface::Base { - public: - explicit ParameterConvertInterface(ir::Dialect* dialect) : Base(dialect) {} - - // NOTE(zhangbo): Only support new a CPU Variable. - std::shared_ptr ParameterToVariable( - ir::Parameter* parameter); - - std::unique_ptr VariableToParameter( - paddle::framework::Variable* var); -}; - -class PaddleDialect : public ir::Dialect { - public: - explicit PaddleDialect(ir::IrContext* context); - - static const char* name() { return "pd"; } - - void PrintType(ir::Type type, std::ostream& os) const; - void PrintAttribute(ir::Attribute type, std::ostream& os) const; - - private: - void initialize(); -}; - -/// -/// \brief APIBuilder is used in IR API for building op -/// -class APIBuilder { - public: - static APIBuilder& Instance() { - static APIBuilder api_builder; - return api_builder; - } - void SetProgram(ir::Program* program) { - builder_ = std::make_shared(ctx_, program->block()); - } - - /// Set the insertion point to the specified operation, which will cause - /// subsequent insertions to go right before it. - void SetInsertionPoint(ir::Operation* op) { - IR_ENFORCE(builder_ != nullptr, - "builder doesn't hold program, please call SetProgram for " - "initialization."); - builder_->SetInsertionPoint(op); - } - - void ResetInsertionPointToStart() { - IR_ENFORCE(builder_ != nullptr, - "builder doesn't hold program, please call SetProgram for " - "initialization."); - builder_->SetInsertionPointToStart(builder_->block()); - } - - void ResetInsertionPointToEnd() { - IR_ENFORCE(builder_ != nullptr, - "builder doesn't hold program, please call SetProgram for " - "initialization."); - builder_->SetInsertionPointToEnd(builder_->block()); - } - - std::shared_ptr GetBuilder() { return builder_; } - - private: - APIBuilder() : builder_(nullptr) { - ctx_ = ir::IrContext::Instance(); - ctx_->GetOrRegisterDialect(); - } - - DISABLE_COPY_AND_ASSIGN(APIBuilder); - - ir::IrContext* ctx_; - std::shared_ptr builder_; -}; - -} // namespace dialect -} // namespace paddle - -IR_DECLARE_EXPLICIT_TYPE_ID(paddle::dialect::PaddleDialect) -IR_DECLARE_EXPLICIT_TYPE_ID(paddle::dialect::ParameterConvertInterface) diff --git a/paddle/fluid/ir/phi_kernel_adaptor/CMakeLists.txt b/paddle/fluid/ir/phi_kernel_adaptor/CMakeLists.txt index dd831ce7840..1df1cc06db5 100644 --- a/paddle/fluid/ir/phi_kernel_adaptor/CMakeLists.txt +++ b/paddle/fluid/ir/phi_kernel_adaptor/CMakeLists.txt @@ -4,4 +4,4 @@ file(GLOB PHI_KERNEL_ADAPTOR_SRCS "*.cc") cc_library( phi_kernel_adaptor SRCS ${PHI_KERNEL_ADAPTOR_SRCS} - DEPS program_translator ir phi_utils) + DEPS program_translator pd_kernel_dialect) diff --git a/paddle/fluid/ir/phi_kernel_adaptor/phi_kernel_adaptor.h b/paddle/fluid/ir/phi_kernel_adaptor/phi_kernel_adaptor.h index 24066abecc0..bb1b284ea1b 100644 --- a/paddle/fluid/ir/phi_kernel_adaptor/phi_kernel_adaptor.h +++ b/paddle/fluid/ir/phi_kernel_adaptor/phi_kernel_adaptor.h @@ -14,14 +14,14 @@ #pragma once -#include "paddle/fluid/ir/dialect/op_yaml_info_util.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/dialect/pd_op.h" -#include "paddle/fluid/ir/dialect/pd_type.h" -#include "paddle/fluid/ir/dialect/utils.h" -#include "paddle/fluid/ir/interface/infermeta.h" -#include "paddle/fluid/ir/interface/op_yaml_info.h" -#include "paddle/fluid/ir/interface/op_yaml_info_parser.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/infermeta.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_parser.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_util.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h" #include "paddle/ir/core/builtin_attribute.h" #include "paddle/ir/core/builtin_dialect.h" #include "paddle/ir/core/builtin_op.h" @@ -43,8 +43,8 @@ #include "paddle/fluid/platform/init.h" -#include "paddle/fluid/ir/dialect/kernel_attribute.h" -#include "paddle/fluid/ir/dialect/pd_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_attribute.h" #include "glog/logging.h" #include "paddle/fluid/ir/phi_kernel_adaptor/phi_kernel_util.h" diff --git a/paddle/fluid/ir/phi_kernel_adaptor/phi_kernel_util.cc b/paddle/fluid/ir/phi_kernel_adaptor/phi_kernel_util.cc index cadd9a29519..5cc29e7c387 100644 --- a/paddle/fluid/ir/phi_kernel_adaptor/phi_kernel_util.cc +++ b/paddle/fluid/ir/phi_kernel_adaptor/phi_kernel_util.cc @@ -14,11 +14,11 @@ #include "paddle/fluid/ir/phi_kernel_adaptor/phi_kernel_util.h" -#include "paddle/fluid/ir/dialect/op_yaml_info_util.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/dialect/pd_type.h" -#include "paddle/fluid/ir/dialect/utils.h" -#include "paddle/fluid/ir/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_util.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h" #include "paddle/ir/core/builtin_attribute.h" #include "paddle/ir/core/ir_context.h" #include "paddle/ir/core/program.h" @@ -33,10 +33,10 @@ #include "paddle/fluid/framework/string_array.h" #include "paddle/fluid/framework/tensor_ref_array.h" -#include "paddle/fluid/ir/dialect/kernel_attribute.h" -#include "paddle/fluid/ir/dialect/kernel_type.h" -#include "paddle/fluid/ir/dialect/pd_attribute.h" -#include "paddle/fluid/ir/interface/op_yaml_info_parser.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_parser.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_type.h" #include "paddle/fluid/ir_adaptor/translator/op_compat_info.h" #include "paddle/phi/core/enforce.h" diff --git a/paddle/fluid/ir/phi_kernel_adaptor/phi_kernel_util.h b/paddle/fluid/ir/phi_kernel_adaptor/phi_kernel_util.h index 2b024f47868..9fb7478d30d 100644 --- a/paddle/fluid/ir/phi_kernel_adaptor/phi_kernel_util.h +++ b/paddle/fluid/ir/phi_kernel_adaptor/phi_kernel_util.h @@ -14,11 +14,11 @@ #pragma once -#include "paddle/fluid/ir/dialect/op_yaml_info_util.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/dialect/pd_type.h" -#include "paddle/fluid/ir/dialect/utils.h" -#include "paddle/fluid/ir/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_util.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h" #include "paddle/ir/core/builtin_attribute.h" #include "paddle/ir/core/ir_context.h" #include "paddle/ir/core/program.h" @@ -33,10 +33,10 @@ #include "paddle/phi/core/kernel_context.h" #include "paddle/fluid/framework/operator.h" -#include "paddle/fluid/ir/dialect/kernel_attribute.h" -#include "paddle/fluid/ir/dialect/kernel_type.h" -#include "paddle/fluid/ir/dialect/pd_attribute.h" -#include "paddle/fluid/ir/interface/op_yaml_info_parser.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_parser.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_type.h" #include "paddle/phi/core/infermeta_utils.h" #include "glog/logging.h" diff --git a/paddle/fluid/ir/transforms/CMakeLists.txt b/paddle/fluid/ir/transforms/CMakeLists.txt index d23e253d83b..80e14cd5ba8 100644 --- a/paddle/fluid/ir/transforms/CMakeLists.txt +++ b/paddle/fluid/ir/transforms/CMakeLists.txt @@ -1,15 +1,14 @@ cc_library( transform_general_functions SRCS transform_general_functions.cc - DEPS phi pd_dialect ir) + DEPS pd_dialect_core) cc_library( pd_op_to_kernel_pass SRCS pd_op_to_kernel_pass.cc - DEPS phi_utils pd_interface pd_trait ir) + DEPS pd_kernel_dialect pd_dialect_core pd_dialect_utils) cc_library( _constant_folding_pass SRCS constant_folding_pass.cc - DEPS standalone_executor phi pd_op_to_kernel_pass transform_general_functions - ir) + DEPS standalone_executor pd_op_to_kernel_pass transform_general_functions) diff --git a/paddle/fluid/ir/transforms/constant_folding_pass.cc b/paddle/fluid/ir/transforms/constant_folding_pass.cc index cebcf5d02f7..e114cf2ca03 100644 --- a/paddle/fluid/ir/transforms/constant_folding_pass.cc +++ b/paddle/fluid/ir/transforms/constant_folding_pass.cc @@ -20,12 +20,12 @@ // NOTE(zhangbo9674): File pd_op.h is generated by op_gen.py, see details in // paddle/fluid/ir/dialect/CMakeLists.txt. -#include "paddle/fluid/ir/dialect/pd_op.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.h" #include "paddle/fluid/framework/new_executor/interpretercore.h" #include "paddle/fluid/framework/scope.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/dialect/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" #include "paddle/fluid/ir/transforms/pd_op_to_kernel_pass.h" #include "paddle/fluid/ir/transforms/transform_general_functions.h" #include "paddle/ir/core/builtin_op.h" diff --git a/paddle/fluid/ir/transforms/pd_op_to_kernel_pass.cc b/paddle/fluid/ir/transforms/pd_op_to_kernel_pass.cc index 43e851f7454..1c8dd4ff844 100644 --- a/paddle/fluid/ir/transforms/pd_op_to_kernel_pass.cc +++ b/paddle/fluid/ir/transforms/pd_op_to_kernel_pass.cc @@ -16,18 +16,18 @@ #include "paddle/fluid/ir/transforms/pd_op_to_kernel_pass.h" -#include "paddle/fluid/ir/dialect/kernel_attribute.h" -#include "paddle/fluid/ir/dialect/kernel_dialect.h" -#include "paddle/fluid/ir/dialect/kernel_op.h" -#include "paddle/fluid/ir/dialect/kernel_type.h" -#include "paddle/fluid/ir/dialect/op_yaml_info_util.h" -#include "paddle/fluid/ir/dialect/pd_attribute.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/dialect/pd_type.h" -#include "paddle/fluid/ir/dialect/utils.h" -#include "paddle/fluid/ir/interface/op_yaml_info.h" -#include "paddle/fluid/ir/interface/op_yaml_info_parser.h" -#include "paddle/fluid/ir/trait/inplace.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/trait/inplace.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_parser.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_util.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_op.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_type.h" +#include "paddle/fluid/platform/place.h" #include "paddle/phi/api/lib/data_transform.h" #include "paddle/phi/api/lib/kernel_dispatch.h" #include "paddle/phi/common/place.h" diff --git a/paddle/fluid/ir/transforms/transform_general_functions.cc b/paddle/fluid/ir/transforms/transform_general_functions.cc index 2937e55065e..587c0cdaacd 100644 --- a/paddle/fluid/ir/transforms/transform_general_functions.cc +++ b/paddle/fluid/ir/transforms/transform_general_functions.cc @@ -14,8 +14,8 @@ #include "paddle/fluid/ir/transforms/transform_general_functions.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/dialect/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" #include "paddle/ir/core/builtin_op.h" #include "paddle/ir/core/parameter.h" #include "paddle/ir/core/program.h" diff --git a/paddle/fluid/ir_adaptor/translator/attribute_translator.cc b/paddle/fluid/ir_adaptor/translator/attribute_translator.cc index ada0d80688a..cf41a978e7e 100644 --- a/paddle/fluid/ir_adaptor/translator/attribute_translator.cc +++ b/paddle/fluid/ir_adaptor/translator/attribute_translator.cc @@ -17,7 +17,7 @@ #include #include -#include "paddle/fluid/ir/dialect/pd_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h" #include "paddle/ir/core/enforce.h" #include "paddle/phi/common/data_type.h" #include "paddle/phi/common/int_array.h" diff --git a/paddle/fluid/ir_adaptor/translator/op_translator.cc b/paddle/fluid/ir_adaptor/translator/op_translator.cc index f52bae9fdc2..59887078d05 100644 --- a/paddle/fluid/ir_adaptor/translator/op_translator.cc +++ b/paddle/fluid/ir_adaptor/translator/op_translator.cc @@ -23,10 +23,10 @@ #include #include "paddle/fluid/framework/op_desc.h" -#include "paddle/fluid/ir/dialect/pd_attribute.h" -#include "paddle/fluid/ir/dialect/pd_type.h" -#include "paddle/fluid/ir/dialect/utils.h" -#include "paddle/fluid/ir/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h" #include "paddle/fluid/ir_adaptor/translator/attribute_translator.h" #include "paddle/fluid/ir_adaptor/translator/op_compat_info.h" #include "paddle/fluid/ir_adaptor/translator/program_translator.h" @@ -42,7 +42,7 @@ // NOTE(zhangbo9674): File pd_op.h is generated by op_gen.py, see details in // paddle/fluid/ir/dialect/CMakeLists.txt. -#include "paddle/fluid/ir/dialect/pd_op.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.h" namespace paddle { namespace translator { diff --git a/paddle/fluid/ir_adaptor/translator/translate.cc b/paddle/fluid/ir_adaptor/translator/translate.cc index c4cc91f5a14..87bef41641a 100644 --- a/paddle/fluid/ir_adaptor/translator/translate.cc +++ b/paddle/fluid/ir_adaptor/translator/translate.cc @@ -17,7 +17,7 @@ #include #include "paddle/fluid/framework/program_desc.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" #include "paddle/fluid/ir_adaptor/translator/program_translator.h" #include "paddle/ir/core/builtin_dialect.h" #include "paddle/ir/core/program.h" diff --git a/paddle/fluid/ir_adaptor/translator/translate.h b/paddle/fluid/ir_adaptor/translator/translate.h index 3ed1933b630..8f604a47761 100644 --- a/paddle/fluid/ir_adaptor/translator/translate.h +++ b/paddle/fluid/ir_adaptor/translator/translate.h @@ -17,7 +17,7 @@ #include #include "paddle/fluid/framework/program_desc.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" #include "paddle/ir/core/program.h" namespace paddle { diff --git a/paddle/fluid/ir_adaptor/translator/type_translator.cc b/paddle/fluid/ir_adaptor/translator/type_translator.cc index 1b92ff2f74c..5c3cbdbc240 100644 --- a/paddle/fluid/ir_adaptor/translator/type_translator.cc +++ b/paddle/fluid/ir_adaptor/translator/type_translator.cc @@ -15,8 +15,8 @@ #include "paddle/fluid/ir_adaptor/translator/type_translator.h" #include "paddle/fluid/framework/framework.pb.h" -#include "paddle/fluid/ir/dialect/pd_type.h" -#include "paddle/fluid/ir/dialect/pd_type_storage.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type_storage.h" #include "paddle/ir/core/builtin_type.h" namespace paddle { diff --git a/paddle/fluid/platform/CMakeLists.txt b/paddle/fluid/platform/CMakeLists.txt index 4d7f496aaa4..c215611f9e5 100644 --- a/paddle/fluid/platform/CMakeLists.txt +++ b/paddle/fluid/platform/CMakeLists.txt @@ -108,7 +108,7 @@ endif() cc_library( init SRCS init.cc - DEPS device_context phi memcpy pd_dialect ir) + DEPS device_context phi memcpy pd_dialect) # memcpy depends on device_context, here add deps individually for # avoiding cycle dependencies diff --git a/paddle/fluid/platform/init.cc b/paddle/fluid/platform/init.cc index d09d974e853..34f261ac213 100644 --- a/paddle/fluid/platform/init.cc +++ b/paddle/fluid/platform/init.cc @@ -51,7 +51,7 @@ limitations under the License. */ #include "paddle/fluid/platform/device/ipu/ipu_info.h" #endif -#include "paddle/fluid/ir/dialect/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" #include "paddle/fluid/memory/allocation/allocator_facade.h" #include "paddle/fluid/memory/memory.h" #include "paddle/fluid/platform/flags.h" diff --git a/paddle/fluid/primitive/backend/CMakeLists.txt b/paddle/fluid/primitive/backend/CMakeLists.txt index 26855583b46..58ecb6e7b61 100644 --- a/paddle/fluid/primitive/backend/CMakeLists.txt +++ b/paddle/fluid/primitive/backend/CMakeLists.txt @@ -7,4 +7,4 @@ endif() cc_library( primitive_backend_static_experimental SRCS static_backend.cc - DEPS pd_dialect) + DEPS pd_dialect_api) diff --git a/paddle/fluid/primitive/backend/static_backend.cc b/paddle/fluid/primitive/backend/static_backend.cc index 3bb9c616a78..cc1ac6f2cbc 100644 --- a/paddle/fluid/primitive/backend/static_backend.cc +++ b/paddle/fluid/primitive/backend/static_backend.cc @@ -13,7 +13,7 @@ // limitations under the License. #include "paddle/fluid/primitive/backend/static_backend.h" -#include "paddle/fluid/ir/dialect/pd_api.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_api.h" #include "paddle/fluid/primitive/primitive/primitive.h" #include "paddle/fluid/primitive/type/lazy_tensor.h" diff --git a/paddle/fluid/primitive/rule/vjp/CMakeLists.txt b/paddle/fluid/primitive/rule/vjp/CMakeLists.txt index 3243228d112..3cb74fa492e 100644 --- a/paddle/fluid/primitive/rule/vjp/CMakeLists.txt +++ b/paddle/fluid/primitive/rule/vjp/CMakeLists.txt @@ -4,4 +4,3 @@ cc_library( SRCS ${VJP_SRCS} DEPS primitive_backend_static_experimental static_global_utils primitive_static_utils_experimental) -add_dependencies(primitive_vjp_experimental pd_dialect) diff --git a/paddle/fluid/primitive/rule/vjp/vjp.cc b/paddle/fluid/primitive/rule/vjp/vjp.cc index 364c590a6ed..0ba49f3ada3 100644 --- a/paddle/fluid/primitive/rule/vjp/vjp.cc +++ b/paddle/fluid/primitive/rule/vjp/vjp.cc @@ -13,7 +13,7 @@ // limitations under the License. #include "paddle/fluid/primitive/rule/vjp/vjp.h" -#include "paddle/fluid/ir/dialect/pd_api.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_api.h" #include "paddle/fluid/prim/utils/static/static_global_utils.h" #include "paddle/fluid/primitive/backend/static_backend.h" #include "paddle/fluid/primitive/rule/vjp/details.h" diff --git a/paddle/fluid/primitive/type/lazy_tensor.h b/paddle/fluid/primitive/type/lazy_tensor.h index b4387d11f5c..bb0af2ef374 100644 --- a/paddle/fluid/primitive/type/lazy_tensor.h +++ b/paddle/fluid/primitive/type/lazy_tensor.h @@ -13,8 +13,8 @@ // limitations under the License. #pragma once -#include "paddle/fluid/ir/dialect/pd_type.h" -#include "paddle/fluid/ir/dialect/utils.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h" #include "paddle/ir/core/value.h" #include "paddle/phi/core/ddim.h" #include "paddle/phi/core/extended_tensor.h" diff --git a/paddle/fluid/pybind/ir.cc b/paddle/fluid/pybind/ir.cc index 05295243b12..0302bcc2fc5 100644 --- a/paddle/fluid/pybind/ir.cc +++ b/paddle/fluid/pybind/ir.cc @@ -24,10 +24,11 @@ #include "paddle/fluid/pybind/pybind_variant_caster.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/dialect/pd_type.h" -#include "paddle/fluid/ir/dialect/utils.h" -#include "paddle/fluid/ir/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/api_builder.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h" #include "paddle/fluid/ir_adaptor/translator/translate.h" #include "paddle/ir/core/block.h" #include "paddle/ir/core/builtin_attribute.h" diff --git a/paddle/fluid/pybind/pybind.cc b/paddle/fluid/pybind/pybind.cc index 911285250b6..24aff35f7b1 100644 --- a/paddle/fluid/pybind/pybind.cc +++ b/paddle/fluid/pybind/pybind.cc @@ -195,7 +195,7 @@ limitations under the License. */ #include "paddle/fluid/eager/api/utils/global_utils.h" #include "paddle/fluid/eager/nan_inf_utils.h" #include "paddle/fluid/imperative/layout_autotune.h" -#include "paddle/fluid/ir/interface/vjp.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/vjp.h" #include "paddle/fluid/prim/utils/eager/eager_tensor_operants.h" #include "paddle/fluid/prim/utils/static/static_tensor_operants.h" #include "paddle/fluid/pybind/eager_utils.h" diff --git a/paddle/fluid/pybind/static_op_function.cc b/paddle/fluid/pybind/static_op_function.cc index 632f7044c46..7923f0d569f 100644 --- a/paddle/fluid/pybind/static_op_function.cc +++ b/paddle/fluid/pybind/static_op_function.cc @@ -13,7 +13,7 @@ // limitations under the License. #include "paddle/fluid/pybind/static_op_function.h" -#include "paddle/fluid/ir/dialect/pd_api.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_api.h" #include "paddle/fluid/pybind/eager_utils.h" #include "paddle/fluid/pybind/exception.h" #include "paddle/fluid/pybind/op_function_common.h" diff --git a/test/cpp/ir/cinn/jit_instruction_test.cc b/test/cpp/ir/cinn/jit_instruction_test.cc index 860ffeebae8..b7088ef448e 100644 --- a/test/cpp/ir/cinn/jit_instruction_test.cc +++ b/test/cpp/ir/cinn/jit_instruction_test.cc @@ -22,8 +22,8 @@ #include "paddle/fluid/framework/new_executor/interpretercore.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/dialect/pd_op.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.h" #include "paddle/ir/core/ir_context.h" #include "paddle/ir/core/program.h" diff --git a/test/cpp/ir/cinn/new_ir_compiler_test.cc b/test/cpp/ir/cinn/new_ir_compiler_test.cc index 622a7df85d3..04c167e0d10 100644 --- a/test/cpp/ir/cinn/new_ir_compiler_test.cc +++ b/test/cpp/ir/cinn/new_ir_compiler_test.cc @@ -19,8 +19,8 @@ #include #include -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/dialect/pd_op.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.h" #include "paddle/ir/core/ir_context.h" #include "paddle/ir/core/program.h" diff --git a/test/cpp/ir/core/CMakeLists.txt b/test/cpp/ir/core/CMakeLists.txt index bac2ed3d252..b1ff1602571 100644 --- a/test/cpp/ir/core/CMakeLists.txt +++ b/test/cpp/ir/core/CMakeLists.txt @@ -1,4 +1,11 @@ -cc_test_old(type_test SRCS type_test.cc DEPS ir gtest) +cc_test_old( + type_test + SRCS + type_test.cc + DEPS + ir + gtest + pd_dialect) cc_test_old(ir_attribute_test SRCS ir_attribute_test.cc DEPS ir gtest) cc_test_old(ir_value_test SRCS ir_value_test.cc DEPS ir gtest) cc_test_old(ir_op_test SRCS ir_op_test.cc DEPS ir gtest) @@ -32,6 +39,7 @@ cc_test_old( pd_op_to_kernel_pass program_translator pd_dialect + pd_kernel_dialect phi_kernel_adaptor ir phi diff --git a/test/cpp/ir/core/ir_exe_test.cc b/test/cpp/ir/core/ir_exe_test.cc index ee10a75e118..e36c99fb2e4 100644 --- a/test/cpp/ir/core/ir_exe_test.cc +++ b/test/cpp/ir/core/ir_exe_test.cc @@ -14,11 +14,11 @@ #include -#include "paddle/fluid/ir/dialect/op_yaml_info_util.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/dialect/pd_type.h" -#include "paddle/fluid/ir/dialect/utils.h" -#include "paddle/fluid/ir/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_util.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h" #include "paddle/ir/core/builtin_attribute.h" #include "paddle/ir/core/builtin_dialect.h" #include "paddle/ir/core/builtin_op.h" @@ -40,7 +40,7 @@ #include "paddle/fluid/platform/init.h" -#include "paddle/fluid/ir/dialect/pd_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h" #include "paddle/fluid/ir/phi_kernel_adaptor/phi_kernel_adaptor.h" #include "paddle/fluid/ir/transforms/pd_op_to_kernel_pass.h" diff --git a/test/cpp/ir/core/ir_infershape_test.cc b/test/cpp/ir/core/ir_infershape_test.cc index b3877bf8604..e39a69ac573 100644 --- a/test/cpp/ir/core/ir_infershape_test.cc +++ b/test/cpp/ir/core/ir_infershape_test.cc @@ -32,7 +32,7 @@ #include "paddle/phi/core/kernel_context.h" #include "paddle/phi/core/kernel_factory.h" -#include "paddle/fluid/ir/interface/infermeta.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/infermeta.h" #include "paddle/fluid/platform/init.h" #include "paddle/phi/core/infermeta_utils.h" #include "paddle/phi/infermeta/nullary.h" diff --git a/test/cpp/ir/core/ir_program_test.cc b/test/cpp/ir/core/ir_program_test.cc index ee5afc66863..dcc81e9c517 100644 --- a/test/cpp/ir/core/ir_program_test.cc +++ b/test/cpp/ir/core/ir_program_test.cc @@ -14,10 +14,10 @@ #include -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/dialect/pd_type.h" -#include "paddle/fluid/ir/dialect/utils.h" -#include "paddle/fluid/ir/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h" #include "paddle/ir/core/block.h" #include "paddle/ir/core/builtin_attribute.h" #include "paddle/ir/core/builtin_dialect.h" @@ -30,7 +30,8 @@ #include "paddle/phi/kernels/elementwise_add_kernel.h" // NOTE(zhangbo9674): File pd_op.h is generated by op_gen.py, see details in // paddle/fluid/ir/dialect/CMakeLists.txt. -#include "paddle/fluid/ir/dialect/pd_op.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/transforms/param_to_variable.h" class AddOp : public ir::Op { public: diff --git a/test/cpp/ir/core/ir_type_converter_test.cc b/test/cpp/ir/core/ir_type_converter_test.cc index 26f4cde5891..4370d79d5b6 100644 --- a/test/cpp/ir/core/ir_type_converter_test.cc +++ b/test/cpp/ir/core/ir_type_converter_test.cc @@ -18,7 +18,7 @@ #include "paddle/fluid/framework/convert_utils.h" #include "paddle/fluid/framework/data_type.h" #include "paddle/fluid/framework/var_desc.h" -#include "paddle/fluid/ir/dialect/utils.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h" #include "paddle/fluid/ir_adaptor/translator/type_translator.h" #include "paddle/ir/core/builtin_dialect.h" #include "paddle/ir/core/builtin_type.h" diff --git a/test/cpp/ir/core/op_yaml_info_parser_test.cc b/test/cpp/ir/core/op_yaml_info_parser_test.cc index 25c914612d8..3abdf0a72cd 100644 --- a/test/cpp/ir/core/op_yaml_info_parser_test.cc +++ b/test/cpp/ir/core/op_yaml_info_parser_test.cc @@ -14,22 +14,22 @@ #include -#include "paddle/fluid/ir/dialect/pd_attribute.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/dialect/pd_type.h" -#include "paddle/fluid/ir/interface/op_yaml_info_parser.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/op_yaml_info_parser.h" #include "paddle/ir/core/builder.h" #include "paddle/ir/core/ir_context.h" #include "paddle/ir/core/program.h" -#include "paddle/fluid/ir/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h" #include "paddle/ir/core/builtin_attribute.h" #include "paddle/ir/core/builtin_dialect.h" #include "paddle/ir/core/builtin_op.h" #include "paddle/ir/core/utils.h" -#include "paddle/fluid/ir/dialect/pd_op.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.h" TEST(ir_op_info_test, op_op_info_test) { ir::IrContext* ctx = ir::IrContext::Instance(); diff --git a/test/cpp/ir/core/program_translator_test.cc b/test/cpp/ir/core/program_translator_test.cc index 50b3623b452..979953173f5 100644 --- a/test/cpp/ir/core/program_translator_test.cc +++ b/test/cpp/ir/core/program_translator_test.cc @@ -22,7 +22,7 @@ #include "paddle/fluid/framework/framework.pb.h" #include "paddle/fluid/framework/operator.h" #include "paddle/fluid/framework/program_desc.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" #include "paddle/fluid/ir_adaptor/translator/translate.h" #include "paddle/ir/core/builtin_dialect.h" #include "paddle/ir/core/dialect.h" diff --git a/test/cpp/ir/core/scalar_attribute_test.cc b/test/cpp/ir/core/scalar_attribute_test.cc index 8dc3f8314ad..649d9cd0cd3 100644 --- a/test/cpp/ir/core/scalar_attribute_test.cc +++ b/test/cpp/ir/core/scalar_attribute_test.cc @@ -14,7 +14,7 @@ #include -#include "paddle/fluid/ir/dialect/pd_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h" #include "paddle/ir/core/attribute.h" #include "paddle/ir/core/builtin_attribute.h" #include "paddle/ir/core/builtin_dialect.h" diff --git a/test/cpp/ir/core/type_test.cc b/test/cpp/ir/core/type_test.cc index 24bf92446c2..62d6d48941a 100644 --- a/test/cpp/ir/core/type_test.cc +++ b/test/cpp/ir/core/type_test.cc @@ -15,7 +15,7 @@ #include #include -#include "paddle/fluid/ir/dialect/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" #include "paddle/ir/core/builtin_dialect.h" #include "paddle/ir/core/builtin_type.h" #include "paddle/ir/core/dialect.h" diff --git a/test/cpp/ir/kernel_dialect/CMakeLists.txt b/test/cpp/ir/kernel_dialect/CMakeLists.txt index 0a9712c9bbd..47aad616fd7 100644 --- a/test/cpp/ir/kernel_dialect/CMakeLists.txt +++ b/test/cpp/ir/kernel_dialect/CMakeLists.txt @@ -5,7 +5,7 @@ cc_test_old( DEPS pd_op_to_kernel_pass program_translator - pd_dialect + pd_kernel_dialect phi_kernel_adaptor pd_trait ir diff --git a/test/cpp/ir/kernel_dialect/ir_kernel_dialect_pass_test.cc b/test/cpp/ir/kernel_dialect/ir_kernel_dialect_pass_test.cc index 3727ce4bd47..d76495b26c1 100644 --- a/test/cpp/ir/kernel_dialect/ir_kernel_dialect_pass_test.cc +++ b/test/cpp/ir/kernel_dialect/ir_kernel_dialect_pass_test.cc @@ -19,13 +19,13 @@ #include "paddle/fluid/framework/tensor.h" #include "paddle/fluid/framework/variable.h" #include "paddle/fluid/framework/variable_helper.h" -#include "paddle/fluid/ir/dialect/kernel_dialect.h" -#include "paddle/fluid/ir/dialect/kernel_op.h" -#include "paddle/fluid/ir/dialect/pd_attribute.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/dialect/pd_type.h" -#include "paddle/fluid/ir/dialect/utils.h" -#include "paddle/fluid/ir/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_kernel_dialect/ir/kernel_op.h" #include "paddle/fluid/ir/phi_kernel_adaptor/phi_kernel_adaptor.h" #include "paddle/fluid/ir/transforms/pd_op_to_kernel_pass.h" #include "paddle/fluid/platform/init.h" diff --git a/test/cpp/ir/pass/pass_manager_test.cc b/test/cpp/ir/pass/pass_manager_test.cc index c4aedeec847..38af7d7a302 100644 --- a/test/cpp/ir/pass/pass_manager_test.cc +++ b/test/cpp/ir/pass/pass_manager_test.cc @@ -17,12 +17,12 @@ // NOTE(zhangbo9674): File pd_op.h is generated by op_gen.py, see details in // paddle/fluid/ir/dialect/CMakeLists.txt. -#include "paddle/fluid/ir/dialect/pd_op.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/dialect/pd_type.h" -#include "paddle/fluid/ir/dialect/utils.h" -#include "paddle/fluid/ir/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h" #include "paddle/ir/core/builtin_dialect.h" #include "paddle/ir/core/builtin_op.h" #include "paddle/ir/core/builtin_type.h" diff --git a/test/cpp/ir/pattern_rewrite/pattern_rewrite_test.cc b/test/cpp/ir/pattern_rewrite/pattern_rewrite_test.cc index 6531b94fe3c..9d92892053d 100644 --- a/test/cpp/ir/pattern_rewrite/pattern_rewrite_test.cc +++ b/test/cpp/ir/pattern_rewrite/pattern_rewrite_test.cc @@ -20,7 +20,7 @@ #include #include -#include "paddle/fluid/ir/dialect/pd_attribute.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_attribute.h" #include "paddle/fluid/ir/transforms/constant_folding_pass.h" #include "paddle/fluid/ir/transforms/transform_general_functions.h" #include "paddle/ir/core/builder.h" @@ -46,15 +46,15 @@ // NOTE(zhangbo9674): File pd_op.h is generated by op_gen.py, see details in // paddle/fluid/ir/dialect/CMakeLists.txt. -#include "paddle/fluid/ir/dialect/pd_op.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/dialect/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" #include "paddle/phi/core/ddim.h" // build Conv2dFusionOp -#include "paddle/fluid/ir/interface/infermeta.h" -#include "paddle/fluid/ir/interface/op_yaml_info.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/infermeta.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/interface/op_yaml_info.h" #include "paddle/ir/core/op_base.h" #include "paddle/phi/api/lib/utils/allocator.h" #include "paddle/phi/infermeta/multiary.h" diff --git a/test/cpp/new_executor/CMakeLists.txt b/test/cpp/new_executor/CMakeLists.txt index 463d6423c7f..6ce941d701b 100644 --- a/test/cpp/new_executor/CMakeLists.txt +++ b/test/cpp/new_executor/CMakeLists.txt @@ -4,7 +4,7 @@ if(NOT WIN32) cc_test( standalone_executor_new_ir_test SRCS standalone_executor_new_ir_test.cc - DEPS phi_kernel_adaptor pd_dialect ir) + DEPS phi_kernel_adaptor pd_dialect pd_kernel_dialect ir) endif() set(OPS diff --git a/test/cpp/new_executor/standalone_executor_new_ir_test.cc b/test/cpp/new_executor/standalone_executor_new_ir_test.cc index c59ddd84aec..9ef1d7f3215 100644 --- a/test/cpp/new_executor/standalone_executor_new_ir_test.cc +++ b/test/cpp/new_executor/standalone_executor_new_ir_test.cc @@ -23,14 +23,14 @@ #include "paddle/phi/core/kernel_registry.h" #include "paddle/fluid/framework/new_executor/new_ir_interpreter.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/dialect/pd_op.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.h" #include "paddle/fluid/ir/transforms/pd_op_to_kernel_pass.h" #include "paddle/ir/core/builder.h" #include "paddle/ir/core/ir_context.h" #include "paddle/ir/core/program.h" -#include "paddle/fluid/ir/dialect/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" #include "paddle/fluid/platform/init_phi.h" diff --git a/test/cpp/prim/test_vjp.cc b/test/cpp/prim/test_vjp.cc index 7ceb38ffcbf..783de29b9ef 100644 --- a/test/cpp/prim/test_vjp.cc +++ b/test/cpp/prim/test_vjp.cc @@ -16,10 +16,11 @@ #include "paddle/fluid/framework/new_executor/new_ir_interpreter.h" #include "paddle/fluid/framework/new_executor/standalone_executor.h" -#include "paddle/fluid/ir/dialect/pd_dialect.h" -#include "paddle/fluid/ir/dialect/pd_op.h" -#include "paddle/fluid/ir/dialect/pd_type.h" -#include "paddle/fluid/ir/dialect/utils.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/api_builder.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_dialect.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_op.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/ir/pd_type.h" +#include "paddle/fluid/ir/dialect/paddle_dialect/utils/utils.h" #include "paddle/fluid/ir/transforms/pd_op_to_kernel_pass.h" #include "paddle/fluid/platform/init_phi.h" #include "paddle/ir/core/block.h" -- GitLab