|
|
|
@ -1,14 +1,21 @@
|
|
|
|
|
set(pass_file ${PADDLE_BINARY_DIR}/paddle/fluid/inference/api/paddle_inference_pass.h)
|
|
|
|
|
file(WRITE ${pass_file} "// Generated by the paddle/fluid/framework/ir/CMakeLists.txt. DO NOT EDIT!\n\n")
|
|
|
|
|
file(APPEND ${pass_file} "\#include \"paddle/fluid/framework/ir/pass.h\"\n")
|
|
|
|
|
function(pass_library TARGET)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Usage: pass_library(target inference) will append to paddle_inference_pass.h
|
|
|
|
|
function(pass_library TARGET DEST)
|
|
|
|
|
set(options "")
|
|
|
|
|
set(oneValueArgs "")
|
|
|
|
|
set(multiValueArgs SRCS DEPS)
|
|
|
|
|
cmake_parse_arguments(op_library "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
|
|
|
|
cc_library(${TARGET} SRCS ${TARGET}.cc DEPS graph_pattern_detector pass)
|
|
|
|
|
file(APPEND ${pass_file} "USE_PASS(${TARGET});\n")
|
|
|
|
|
set(PASS_LIBRARY ${TARGET} ${PASS_LIBRARY} PARENT_SCOPE)
|
|
|
|
|
cc_library(${TARGET} SRCS ${TARGET}.cc DEPS graph_pattern_detector pass ${op_library_DEPS})
|
|
|
|
|
# add more DEST here, such as train, dist and collect USE_PASS into a file automatically.
|
|
|
|
|
if (${DEST} STREQUAL "base" OR ${DEST} STREQUAL "inference")
|
|
|
|
|
message(STATUS "add pass ${TARGET} ${DEST}")
|
|
|
|
|
file(APPEND ${pass_file} "USE_PASS(${TARGET});\n")
|
|
|
|
|
set(PASS_LIBRARY ${TARGET} ${PASS_LIBRARY} PARENT_SCOPE)
|
|
|
|
|
endif()
|
|
|
|
|
endfunction()
|
|
|
|
|
|
|
|
|
|
cc_library(node SRCS node.cc DEPS proto_desc)
|
|
|
|
@ -18,14 +25,15 @@ cc_library(pass SRCS pass.cc DEPS graph node graph_helper)
|
|
|
|
|
cc_library(graph_traits SRCS graph_traits.cc DEPS graph)
|
|
|
|
|
cc_library(graph_pattern_detector SRCS graph_pattern_detector.cc DEPS graph graph_helper graph_traits)
|
|
|
|
|
|
|
|
|
|
pass_library(graph_to_program_pass)
|
|
|
|
|
pass_library(graph_viz_pass)
|
|
|
|
|
pass_library(fc_fuse_pass)
|
|
|
|
|
pass_library(attention_lstm_fuse_pass)
|
|
|
|
|
pass_library(infer_clean_graph_pass)
|
|
|
|
|
pass_library(fc_lstm_fuse_pass)
|
|
|
|
|
pass_library(fc_gru_fuse_pass)
|
|
|
|
|
pass_library(seq_concat_fc_fuse_pass)
|
|
|
|
|
pass_library(graph_to_program_pass base)
|
|
|
|
|
pass_library(graph_viz_pass base)
|
|
|
|
|
pass_library(fc_fuse_pass inference)
|
|
|
|
|
pass_library(attention_lstm_fuse_pass inference)
|
|
|
|
|
pass_library(infer_clean_graph_pass inference)
|
|
|
|
|
pass_library(fc_lstm_fuse_pass inference)
|
|
|
|
|
pass_library(fc_gru_fuse_pass inference)
|
|
|
|
|
pass_library(seq_concat_fc_fuse_pass inference)
|
|
|
|
|
|
|
|
|
|
set(GLOB_PASS_LIB ${PASS_LIBRARY} CACHE INTERNAL "Global PASS library")
|
|
|
|
|
|
|
|
|
|
cc_test(pass_test SRCS pass_test.cc DEPS graph pass graph_helper)
|
|
|
|
|