diff options
Diffstat (limited to 'compiler/tfgraph-xform/CMakeLists.txt')
-rw-r--r-- | compiler/tfgraph-xform/CMakeLists.txt | 328 |
1 files changed, 328 insertions, 0 deletions
diff --git a/compiler/tfgraph-xform/CMakeLists.txt b/compiler/tfgraph-xform/CMakeLists.txt new file mode 100644 index 000000000..d6e0a4cde --- /dev/null +++ b/compiler/tfgraph-xform/CMakeLists.txt @@ -0,0 +1,328 @@ +macro(require_package PKGNAME) + nnas_find_package(${PKGNAME} ${ARGN} QUIET) + if(NOT ${PKGNAME}_FOUND) + message(STATUS "Build tfgraph-xform: FALSE (${PKGNAME} is missing)") + return() + endif(NOT ${PKGNAME}_FOUND) +endmacro(require_package) + +require_package(Abseil) +require_package(Protobuf) +require_package(EigenSource-fd6845384b86) +require_package(GoogleDoubleConversion) +require_package(GoogleNSync) +require_package(TensorFlowSource EXACT 1.12) +require_package(TensorFlowProtoText EXACT 1.12) + +message(STATUS "Build tfgraph-xform: TRUE") + +# +# Set "SOURCE_FILES" +# +unset(SOURCE_FILES) + +macro(Source_Add RPATH) + list(APPEND SOURCE_FILES "${TensorFlowSource_DIR}/tensorflow/${RPATH}") +endmacro(Source_Add) + +# TensorFlow "core" +Source_Add(core/lib/core/status.cc) +Source_Add(core/lib/core/coding.cc) +Source_Add(core/lib/core/arena.cc) +Source_Add(core/lib/core/threadpool.cc) + +Source_Add(core/lib/strings/scanner.cc) +Source_Add(core/lib/strings/str_util.cc) +Source_Add(core/lib/strings/numbers.cc) +Source_Add(core/lib/strings/stringprintf.cc) +Source_Add(core/lib/strings/strcat.cc) +Source_Add(core/lib/strings/proto_text_util.cc) +Source_Add(core/lib/strings/proto_serialization.cc) +Source_Add(core/lib/strings/ordered_code.cc) +Source_Add(core/lib/hash/hash.cc) +Source_Add(core/lib/hash/crc32c.cc) +Source_Add(core/lib/hash/crc32c_accelerate.cc) +Source_Add(core/lib/io/iterator.cc) +Source_Add(core/lib/io/two_level_iterator.cc) +Source_Add(core/lib/io/format.cc) +Source_Add(core/lib/io/block.cc) +Source_Add(core/lib/io/table.cc) +Source_Add(core/lib/random/random.cc) +Source_Add(core/lib/io/path.cc) + +Source_Add(core/platform/cpu_info.cc) +Source_Add(core/platform/abi.cc) +Source_Add(core/platform/env.cc) +Source_Add(core/platform/env_time.cc) +Source_Add(core/platform/file_system.cc) +Source_Add(core/platform/file_system_helper.cc) +Source_Add(core/platform/tensor_coding.cc) +Source_Add(core/platform/tracing.cc) +Source_Add(core/platform/setround.cc) +Source_Add(core/platform/denormal.cc) +Source_Add(core/platform/protobuf_util.cc) + +Source_Add(core/platform/default/mutex.cc) +Source_Add(core/platform/default/logging.cc) +Source_Add(core/platform/default/string_coding.cc) + +Source_Add(core/platform/posix/error.cc) +Source_Add(core/platform/posix/env.cc) +Source_Add(core/platform/posix/env_time.cc) +Source_Add(core/platform/posix/port.cc) +Source_Add(core/platform/posix/load_library.cc) +Source_Add(core/platform/posix/posix_file_system.cc) + +Source_Add(core/util/env_var.cc) +Source_Add(core/util/padding.cc) +Source_Add(core/util/mirror_pad_mode.cc) +Source_Add(core/util/command_line_flags.cc) +Source_Add(core/util/tensor_format.cc) +Source_Add(core/util/tensor_slice_set.cc) +Source_Add(core/util/tensor_slice_reader.cc) +Source_Add(core/util/tensor_slice_reader_cache.cc) +Source_Add(core/util/saved_tensor_slice_util.cc) +Source_Add(core/util/equal_graph_def.cc) +Source_Add(core/util/device_name_utils.cc) +Source_Add(core/util/work_sharder.cc) +Source_Add(core/util/use_cudnn.cc) +Source_Add(core/util/strided_slice_op.cc) +Source_Add(core/util/bcast.cc) + +Source_Add(core/graph/tensor_id.cc) +Source_Add(core/graph/algorithm.cc) +Source_Add(core/graph/node_builder.cc) +Source_Add(core/graph/subgraph.cc) +Source_Add(core/graph/graph.cc) +Source_Add(core/graph/graph_constructor.cc) +Source_Add(core/graph/edgeset.cc) +Source_Add(core/graph/while_context.cc) +Source_Add(core/graph/control_flow.cc) +Source_Add(core/graph/gradients.cc) +Source_Add(core/graph/optimizer_cse.cc) + +Source_Add(core/framework/versions.cc) +Source_Add(core/framework/types.cc) +Source_Add(core/framework/function.cc) +Source_Add(core/framework/op.cc) +Source_Add(core/framework/op_def_builder.cc) +Source_Add(core/framework/op_kernel.cc) +Source_Add(core/framework/op_segment.cc) +Source_Add(core/framework/resource_handle.cc) +Source_Add(core/framework/tensor.cc) +Source_Add(core/framework/tensor_shape.cc) +Source_Add(core/framework/tensor_reference.cc) +Source_Add(core/framework/tensor_slice.cc) +Source_Add(core/framework/tensor_util.cc) +Source_Add(core/framework/unique_tensor_references.cc) +Source_Add(core/framework/allocator.cc) +Source_Add(core/framework/allocator_registry.cc) +Source_Add(core/framework/tracking_allocator.cc) +Source_Add(core/framework/variant.cc) +Source_Add(core/framework/variant_op_registry.cc) +Source_Add(core/framework/variant_tensor_data.cc) +Source_Add(core/framework/memory_types.cc) +Source_Add(core/framework/log_memory.cc) +Source_Add(core/framework/node_def_builder.cc) + +Source_Add(core/framework/common_shape_fns.cc) +Source_Add(core/framework/shape_inference.cc) + +Source_Add(core/framework/resource_mgr.cc) +Source_Add(core/framework/device_base.cc) +Source_Add(core/framework/rendezvous.cc) +Source_Add(core/framework/cancellation.cc) + +Source_Add(core/framework/attr_value_util.cc) +Source_Add(core/framework/attr_value_util.cc) +Source_Add(core/framework/op_def_util.cc) +Source_Add(core/framework/node_def_util.cc) +Source_Add(core/framework/kernel_def_builder.cc) +Source_Add(core/framework/kernel_def_util.cc) + +Source_Add(core/common_runtime/device.cc) +Source_Add(core/common_runtime/device_mgr.cc) +Source_Add(core/common_runtime/function.cc) +Source_Add(core/common_runtime/memory_types.cc) +Source_Add(core/common_runtime/copy_tensor.cc) +Source_Add(core/common_runtime/shape_refiner.cc) +Source_Add(core/common_runtime/constant_folding.cc) +Source_Add(core/common_runtime/eval_const_tensor.cc) +Source_Add(core/common_runtime/graph_optimizer.cc) +Source_Add(core/common_runtime/graph_runner.cc) +Source_Add(core/common_runtime/rendezvous_mgr.cc) +Source_Add(core/common_runtime/rendezvous_util.cc) +Source_Add(core/common_runtime/process_function_library_runtime.cc) +Source_Add(core/common_runtime/executor.cc) +Source_Add(core/common_runtime/executor_factory.cc) + +# TensorFlow - Operations +Source_Add(core/ops/no_op.cc) +Source_Add(core/ops/sendrecv_ops.cc) +Source_Add(core/ops/array_ops.cc) +Source_Add(core/ops/math_ops.cc) +Source_Add(core/ops/image_ops.cc) +Source_Add(core/ops/nn_ops.cc) + +# TensorFlow - OpKernel Implementations +Source_Add(core/kernels/ops_util.cc) +Source_Add(core/kernels/cwise_ops_common.cc) +Source_Add(core/kernels/cwise_op_add_1.cc) +Source_Add(core/kernels/cwise_op_sub.cc) +Source_Add(core/kernels/cwise_op_mul_1.cc) +Source_Add(core/kernels/strided_slice_op.cc) +Source_Add(core/kernels/strided_slice_op_inst_0.cc) +Source_Add(core/kernels/strided_slice_op_inst_1.cc) +Source_Add(core/kernels/strided_slice_op_inst_2.cc) +Source_Add(core/kernels/strided_slice_op_inst_3.cc) +Source_Add(core/kernels/strided_slice_op_inst_4.cc) +Source_Add(core/kernels/strided_slice_op_inst_5.cc) +Source_Add(core/kernels/strided_slice_op_inst_6.cc) +Source_Add(core/kernels/strided_slice_op_inst_7.cc) +Source_Add(core/kernels/relu_op.cc) +Source_Add(core/kernels/conv_ops.cc) +Source_Add(core/kernels/conv_grad_ops.cc) +Source_Add(core/kernels/conv_grad_input_ops.cc) +Source_Add(core/kernels/bias_op.cc) +Source_Add(core/kernels/pad_op.cc) +Source_Add(core/kernels/cast_op_impl_bool.cc) +Source_Add(core/kernels/cast_op_impl_int8.cc) +Source_Add(core/kernels/cast_op_impl_uint8.cc) +Source_Add(core/kernels/cast_op_impl_int16.cc) +Source_Add(core/kernels/cast_op_impl_uint16.cc) +Source_Add(core/kernels/cast_op_impl_int32.cc) +Source_Add(core/kernels/cast_op_impl_uint32.cc) +Source_Add(core/kernels/cast_op_impl_int64.cc) +Source_Add(core/kernels/cast_op_impl_uint64.cc) +Source_Add(core/kernels/cast_op_impl_half.cc) +Source_Add(core/kernels/cast_op_impl_bfloat.cc) +Source_Add(core/kernels/cast_op_impl_float.cc) +Source_Add(core/kernels/cast_op_impl_double.cc) +Source_Add(core/kernels/cast_op_impl_complex64.cc) +Source_Add(core/kernels/cast_op_impl_complex128.cc) +Source_Add(core/kernels/cast_op.cc) +Source_Add(core/kernels/split_op.cc) +Source_Add(core/kernels/concat_lib_cpu.cc) +Source_Add(core/kernels/concat_op.cc) +Source_Add(core/kernels/resize_bilinear_op.cc) +Source_Add(core/kernels/constant_op.cc) +Source_Add(core/kernels/pack_op.cc) +Source_Add(core/kernels/reshape_op.cc) +Source_Add(core/kernels/shape_ops.cc) +Source_Add(core/kernels/fill_functor.cc) +Source_Add(core/kernels/fused_batch_norm_op.cc) +Source_Add(core/kernels/identity_op.cc) +Source_Add(core/kernels/split_lib_cpu.cc) +Source_Add(core/kernels/unpack_op.cc) +Source_Add(core/kernels/pooling_ops_common.cc) +Source_Add(core/kernels/maxpooling_op.cc) +Source_Add(core/kernels/deep_conv2d.cc) +Source_Add(core/kernels/no_op.cc) +Source_Add(core/kernels/sendrecv_ops.cc) + +# TensorFlow "transform_graph" - Basic Infrastructure +Source_Add(tools/graph_transforms/file_utils.cc) +Source_Add(tools/graph_transforms/transform_utils.cc) +Source_Add(tools/graph_transforms/transform_graph.cc) +Source_Add(tools/graph_transforms/transform_graph_main.cc) + +# TensorFlow "trasnform_graph" - Transfrom Implementations +Source_Add(tools/graph_transforms/fold_constants_lib.cc) +Source_Add(tools/graph_transforms/fold_old_batch_norms.cc) +Source_Add(tools/graph_transforms/strip_unused_nodes.cc) + +# +# Set "PROTO_FILES" +# +unset(PROTO_FILES) + +macro(Proto_Add RPATH) + list(APPEND PROTO_FILES "${RPATH}") +endmacro(Proto_Add) + +Proto_Add(tensorflow/core/lib/core/error_codes.proto) + +# Minimal Protocol Buffer Specification to read GraphDef +Proto_Add(tensorflow/core/framework/versions.proto) +Proto_Add(tensorflow/core/framework/resource_handle.proto) +Proto_Add(tensorflow/core/framework/types.proto) +Proto_Add(tensorflow/core/framework/tensor.proto) +Proto_Add(tensorflow/core/framework/tensor_shape.proto) +Proto_Add(tensorflow/core/framework/tensor_slice.proto) +Proto_Add(tensorflow/core/framework/attr_value.proto) +Proto_Add(tensorflow/core/framework/op_def.proto) +Proto_Add(tensorflow/core/framework/node_def.proto) +Proto_Add(tensorflow/core/framework/function.proto) +Proto_Add(tensorflow/core/framework/graph.proto) + +Proto_Add(tensorflow/core/framework/api_def.proto) +# "tensorflow/core/framework/tensor.cc" requires these headers +Proto_Add(tensorflow/core/framework/allocation_description.proto) +Proto_Add(tensorflow/core/framework/tensor_description.proto) +Proto_Add(tensorflow/core/framework/log_memory.proto) +Proto_Add(tensorflow/core/framework/kernel_def.proto) +Proto_Add(tensorflow/core/framework/device_attributes.proto) +Proto_Add(tensorflow/core/framework/cost_graph.proto) +Proto_Add(tensorflow/core/framework/step_stats.proto) + +Proto_Add(tensorflow/core/protobuf/cluster.proto) +Proto_Add(tensorflow/core/protobuf/config.proto) +Proto_Add(tensorflow/core/protobuf/debug.proto) +Proto_Add(tensorflow/core/protobuf/rewriter_config.proto) + +Proto_Add(tensorflow/core/util/saved_tensor_slice.proto) + +# +# Set "PROTO_TEXT_FILES" +# +unset(PROTO_TEXT_FILES) + +macro(ProtoText_Add RPATH) + list(APPEND PROTO_TEXT_FILES "${RPATH}") +endmacro(ProtoText_Add) + +ProtoText_Add(tensorflow/core/framework/versions.proto) +ProtoText_Add(tensorflow/core/framework/attr_value.proto) +ProtoText_Add(tensorflow/core/framework/resource_handle.proto) +ProtoText_Add(tensorflow/core/framework/types.proto) +ProtoText_Add(tensorflow/core/framework/tensor_shape.proto) +ProtoText_Add(tensorflow/core/framework/tensor_description.proto) +ProtoText_Add(tensorflow/core/framework/allocation_description.proto) +ProtoText_Add(tensorflow/core/framework/tensor.proto) +ProtoText_Add(tensorflow/core/framework/op_def.proto) +ProtoText_Add(tensorflow/core/framework/node_def.proto) +ProtoText_Add(tensorflow/core/framework/function.proto) +ProtoText_Add(tensorflow/core/framework/graph.proto) +ProtoText_Add(tensorflow/core/framework/kernel_def.proto) +ProtoText_Add(tensorflow/core/framework/log_memory.proto) +ProtoText_Add(tensorflow/core/framework/device_attributes.proto) + +# +# Build "tfgraph-xform" executable +# +Protobuf_Generate(TF_PROTO + "${CMAKE_CURRENT_BINARY_DIR}/gen/tensorflow-proto" # OUTPUT ROOT + "${TensorFlowSource_DIR}" # BASE DIRECTORY + ${PROTO_FILES} # .proto path (relative to the BASE) +) + +ProtoText_Generate(TF_PROTO_TEXT + "${CMAKE_CURRENT_BINARY_DIR}/gen/tensorflow-prototext" # OUTPUT ROOT + ${PROTO_FILES} +) + +add_executable(tfgraph-xform + ${SOURCE_FILES} # TensorFlow Source Files + ${TF_PROTO_SOURCES} # Source Files generated by Protocol Buffer + ${TF_PROTO_TEXT_SOURCES} # Source Files generated by Proto Text +) + +target_include_directories(tfgraph-xform PRIVATE ${TensorFlowSource_DIR}) +target_include_directories(tfgraph-xform PRIVATE ${TF_PROTO_INCLUDE_DIRS}) +target_include_directories(tfgraph-xform PRIVATE ${TF_PROTO_TEXT_INCLUDE_DIRS}) +target_include_directories(tfgraph-xform PRIVATE ${EigenSource_DIR}) +target_link_libraries(tfgraph-xform PRIVATE ${TF_PROTO_LIBRARIES}) +target_link_libraries(tfgraph-xform PRIVATE abseil) +target_link_libraries(tfgraph-xform PRIVATE dl) +target_link_libraries(tfgraph-xform PRIVATE Google::DoubleConversion) +target_link_libraries(tfgraph-xform PRIVATE Google::NSync) |