diff --git a/CMakeLists.txt b/CMakeLists.txt index db5cf2743..b23e70e68 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -248,7 +248,7 @@ if (NOT USE_PRE_BUILT_NGRAPH) ExternalProject_Add( ext_ngraph GIT_REPOSITORY https://github.com/NervanaSystems/ngraph - GIT_TAG v0.25.1-rc.8 + GIT_TAG v0.25.1-rc.9 CMAKE_ARGS -DNGRAPH_DISTRIBUTED_ENABLE=${NGRAPH_DISTRIBUTED_ENABLE} -DNGRAPH_INSTALL_PREFIX=${NGRAPH_ARTIFACTS_DIR} diff --git a/README.md b/README.md index 416f93d8e..0cbe2686f 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ Once TensorFlow's dependencies are installed, clone the `ngraph-bridge` repo: git clone https://github.com/tensorflow/ngraph-bridge.git cd ngraph-bridge - git checkout v0.19.0-rc5 + git checkout v0.19.0-rc6 Run the following Python script to build TensorFlow, nGraph, and the bridge. Use Python 3.5: diff --git a/bazel/WORKSPACE b/bazel/WORKSPACE index 0a26e0fa9..9675b0e3f 100644 --- a/bazel/WORKSPACE +++ b/bazel/WORKSPACE @@ -55,11 +55,11 @@ tf_workspace(path_prefix = "", tf_repo_name = "org_tensorflow") http_archive( name = "ngraph", build_file = "//:bazel/ngraph.BUILD", - sha256 = "4cd939dcf07544dc71f46f422d82a175b210fe7b21417fa67436168d5c40c9dc", - strip_prefix = "ngraph-0.25.1-rc.8", + sha256 = "bb9effe71818d932dfa1f024051ba716267ca1b2fc35471faf780f7bfdf6c9b3", + strip_prefix = "ngraph-0.25.1-rc.9", urls = [ - "https://mirror.bazel.build/github.com/NervanaSystems/ngraph/archive/v0.25.1-rc.8.tar.gz", - "https://github.com/NervanaSystems/ngraph/archive/v0.25.1-rc.8.tar.gz" + "https://mirror.bazel.build/github.com/NervanaSystems/ngraph/archive/v0.25.1-rc.9.tar.gz", + "https://github.com/NervanaSystems/ngraph/archive/v0.25.1-rc.9.tar.gz" ], ) diff --git a/bazel/ngraph.BUILD b/bazel/ngraph.BUILD index 67b6238cc..35563f62a 100644 --- a/bazel/ngraph.BUILD +++ b/bazel/ngraph.BUILD @@ -84,7 +84,7 @@ cc_library( "-fstack-protector-all", '-D SHARED_LIB_PREFIX=\\"lib\\"', '-D SHARED_LIB_SUFFIX=\\".so\\"', - '-D NGRAPH_VERSION=\\"v0.25.1-rc.8\\"', + '-D NGRAPH_VERSION=\\"v0.25.1-rc.9\\"', "-D NGRAPH_DEX_ONLY", '-D PROJECT_ROOT_DIR=\\"\\"', '-D NGRAPH_STATIC_LIB_ENABLE' @@ -117,7 +117,7 @@ cc_library( "-fstack-protector-all", '-D SHARED_LIB_PREFIX=\\"lib\\"', '-D SHARED_LIB_SUFFIX=\\".so\\"', - '-D NGRAPH_VERSION=\\"v0.25.1-rc.8\\"', + '-D NGRAPH_VERSION=\\"v0.25.1-rc.9\\"', "-D NGRAPH_DEX_ONLY", '-D PROJECT_ROOT_DIR=\\"\\"', ] + CXX_ABI, @@ -268,7 +268,7 @@ cc_library( "-fstack-protector-all", '-D SHARED_LIB_PREFIX=\\"lib\\"', '-D SHARED_LIB_SUFFIX=\\".so\\"', - '-D NGRAPH_VERSION=\\"0.25.1-rc.7\\"', + '-D NGRAPH_VERSION=\\"0.25.1-rc.9\\"', "-D NGRAPH_DEX_ONLY", '-D PROJECT_ROOT_DIR=\\"\\"', '-D NGRAPH_CPU_STATIC_LIB_ENABLE' diff --git a/build_ngtf.py b/build_ngtf.py index 9a9f46cee..c87a04679 100755 --- a/build_ngtf.py +++ b/build_ngtf.py @@ -53,7 +53,7 @@ def main(): ''' # Component versions - ngraph_version = "v0.25.1-rc.8" + ngraph_version = "v0.25.1-rc.9" tf_version = "v1.14.0" # Command line parser options diff --git a/ngraph_bridge/ngraph_builder.cc b/ngraph_bridge/ngraph_builder.cc index 65d38f204..7208a40ba 100644 --- a/ngraph_bridge/ngraph_builder.cc +++ b/ngraph_bridge/ngraph_builder.cc @@ -4879,6 +4879,7 @@ const static std::map< {"All", TranslateDirectReduceOp}, {"ArgMax", TranslateArgMinMaxOp}, {"ArgMin", TranslateArgMinMaxOp}, + {"Atan2", TranslateBinaryOp}, {"AvgPool", TranslateAvgPoolOp}, {"AvgPoolGrad", TranslateAvgPoolGradOp}, {"BatchMatMul", TranslateBatchMatMulOp}, {"BiasAdd", TranslateBiasAddOp}, {"BiasAddGrad", TranslateBiasAddGradOp}, {"Cast", TranslateCastOp}, diff --git a/ngraph_bridge/ngraph_mark_for_clustering.cc b/ngraph_bridge/ngraph_mark_for_clustering.cc index 0f4d156dc..5a384ff70 100644 --- a/ngraph_bridge/ngraph_mark_for_clustering.cc +++ b/ngraph_bridge/ngraph_mark_for_clustering.cc @@ -230,6 +230,7 @@ Status MarkForClustering(Graph* graph, const std::set skip_these_nodes, confirmation_function_map["All"] = SimpleConfirmationFunction(); confirmation_function_map["ArgMax"] = SimpleConfirmationFunction(); confirmation_function_map["ArgMin"] = SimpleConfirmationFunction(); + confirmation_function_map["Atan2"] = SimpleConfirmationFunction(); confirmation_function_map["AvgPool"] = SimpleConfirmationFunction(); confirmation_function_map["AvgPoolGrad"] = SimpleConfirmationFunction(); confirmation_function_map["BatchMatMul"] = SimpleConfirmationFunction(); @@ -431,6 +432,7 @@ Status MarkForClustering(Graph* graph, const std::set skip_these_nodes, type_constraint_map["ArgMax"]["Tidx"] = NGraphIndexDTypes(); type_constraint_map["ArgMin"]["T"] = NGraphNumericDTypes(); type_constraint_map["ArgMin"]["Tidx"] = NGraphIndexDTypes(); + type_constraint_map["Atan2"]["T"] = NGraphRealDTypes(); type_constraint_map["AvgPool"]["T"] = NGraphNumericDTypes(); type_constraint_map["AvgPoolGrad"]["T"] = NGraphNumericDTypes(); type_constraint_map["BatchMatMul"]["T"] = NGraphNumericDTypes(); diff --git a/ngraph_bridge/version.cc b/ngraph_bridge/version.cc index 84bb0704a..087eab5d8 100644 --- a/ngraph_bridge/version.cc +++ b/ngraph_bridge/version.cc @@ -32,7 +32,7 @@ // candidate such as v0.7.0-rc0 // The code in master will always have the last released version number // with a suffix of '-master' -#define NG_TF_VERSION_SUFFIX "-rc5" +#define NG_TF_VERSION_SUFFIX "-rc6" #define VERSION_STR_HELPER(x) #x #define VERSION_STR(x) VERSION_STR_HELPER(x) diff --git a/python/setup.in.py b/python/setup.in.py index fdbae3e51..60a4ef9d8 100644 --- a/python/setup.in.py +++ b/python/setup.in.py @@ -59,7 +59,7 @@ def get_tag(self): setup( name='ngraph_tensorflow_bridge', - version='0.19.0rc5', + version='0.19.0rc6', description='Intel nGraph compiler and runtime for TensorFlow', long_description=long_description, long_description_content_type="text/markdown", diff --git a/test/test_math_ops.cpp b/test/test_math_ops.cpp index 94ea014f3..a7df0b2ad 100644 --- a/test/test_math_ops.cpp +++ b/test/test_math_ops.cpp @@ -489,6 +489,29 @@ TEST(MathOps, ArgMinPos) { opexecuter.RunTest(); } // end of test op ArgMin +// Test op: Atan2 +TEST(MathOps, Atan2) { + Scope root = Scope::NewRootScope(); + int dim1 = 2; + int dim2 = 5; + + Tensor A(DT_FLOAT, TensorShape({dim1, dim2})); + Tensor B(DT_FLOAT, TensorShape({dim1, dim2})); + + AssignInputValues(A, {0, -0, 3, -3.5, 1.2, 3, 5, -4.5, 1.0, -7.0}); + AssignInputValues(B, {0, -0, 3, 2.5, -0.7, 2, 3.4, -5.6, 30, 0.06}); + + vector static_input_indexes = {}; + auto R = ops::Atan2(root, A, B); + + vector output_datatypes = {DT_FLOAT}; + std::vector sess_run_fetchoutputs = {R}; + OpExecuter opexecuter(root, "Atan2", static_input_indexes, output_datatypes, + sess_run_fetchoutputs); + + opexecuter.RunTest(); +} // end of test op Atan2 + // Test op: BatchMatMul // BatchMatMul2D // AdjX = false