summaryrefslogtreecommitdiff
path: root/compiler/tfgraph-xform/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/tfgraph-xform/CMakeLists.txt')
-rw-r--r--compiler/tfgraph-xform/CMakeLists.txt328
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)