1. 16 Jul, 2019 2 commits
    • Adam Rogowiec's avatar
      [ONNX] Use nGraph auto padding in ONNX operators. (#3175) · 599f0f21
      Adam Rogowiec authored
      * Helper function converting ONNX auto_pad into nGraph PadType.
      
      Separate auto_pad support from explicitly provided paddings.
      
      * Add support for more PadType values for GroupConvolutionTranspose.
      
      * Pass auto_pad attribute value to nGraph operator.
      
      * Helper class for generating ONNX pooling operators.
      
      * Pass auto pad type to nGraph Convolution operator.
      
      * Use pooling factory.
      
      * Helper function calculating pads taking into account auto_pad attribute.
      
      * Fix attribute type in UT ONNX models.
      
      * Take auto_pad attribute value into account.
      
      * Rename helper function and update doc.
      
      * Retain old API for GroupConvoloutionTranspose
      
      * Remove PadType::INVALID and use other approach to validate auto_pad
      value.
      
      * Style apply.
      
      * Fix clang err on documentation style.
      
      * Refactor get_auto_pad method.
      
      * Fix segfaults on CentOS 7.
      
      When using const reference the node member m_attributes had invalid
      data.
      599f0f21
    • Adam Rogowiec's avatar
      [ONNX] Fix backward pass for bidirectional LSTM. (#3194) · 7ccb6cf1
      Adam Rogowiec authored
      * Fix used operator for reversing input sequences in LSTM.
      
      * Fix backward pass for bidirectional LSTM.
      
      * UT for LSTM with sequence_lens shorter than input sequence size.
      
      * Skip LSTM UT using ReverseSequence since it is not supported yet on
      PlaidML.
      7ccb6cf1
  2. 28 Jun, 2019 1 commit
  3. 27 Jun, 2019 1 commit
  4. 26 Jun, 2019 1 commit
    • tsocha's avatar
      [ONNX] Add support for EyeLike operator (#3050) · 5e19c25c
      tsocha authored
      * [ONNX] Add eyelike operator
      
      * Use shifted square identity in square identity
      
      * Make new helper function to map onnx_types<->ngraph_types
      
      * Add fp16 support to ngraph Python API
      
      * Move helper common.hpp => common.cpp
      
      * Add checker for attribute presence
      
      * Style check
      
      * Add definition of shifted word
      
      * Change return value of attribute presence !(==) -> !=
      
      * Rename is_attribute_present => has_attribute
      
      * Clean-up headers in eyelike.cpp
      
      * Organize headers in common.*pp
      
      * Minor review fixes
      
      * Style check
      
      * Add test for EyeLike with negative k
      5e19c25c
  5. 25 Jun, 2019 1 commit
  6. 24 Jun, 2019 3 commits
  7. 14 Jun, 2019 1 commit
    • Tomasz Dołbniak's avatar
      [ONNX] Shrink op support (#3024) · 250dddbc
      Tomasz Dołbniak authored
      * Initial implementation of the Shrink op
      
      * Multiply the values by the correct masks
      
      * Basic test case for Shrink with floats
      
      * Shrink test on integers
      
      * Code formatting
      
      * Shrink documentation and typo fix
      
      * Rephrase the Shrink docs
      
      * Out of <memory> ;)
      250dddbc
  8. 13 Jun, 2019 1 commit
    • Michał Karzyński's avatar
      [ONNX] Add ConvInteger op (#3012) · fa300fae
      Michał Karzyński authored
      * Unit tests for ConvInteger
      
      * Add ONNX ConvInteger op
      
      * Add QuantizedConvInteger builder
      
      * Add unit tests
      
      * Exclude tests on nVidia GPU backend
      
      * Fix merge artifact
      
      * Add const-correctness and allow RVO
      fa300fae
  9. 12 Jun, 2019 1 commit
    • Michał Karzyński's avatar
      [ONNX] Add MatMulInteger op (#3011) · e51c5824
      Michał Karzyński authored
      * Unit tests for MatMulInteger
      
      * Add ONNX MatMulInteger op
      
      * Add QuantizedLinearMatmulInteger builder
      
      * Additional unit test
      
      * Exclude tests on nVidia GPU backend
      
      * Add 4D test case
      
      * Enable >2D MatMulInteger
      
      * Refactoring to MatMulFactory - step 1
      
      * Refactoring to MatMulFactory - step 2
      
      * Remove `using namespace ngraph` to make `Node` unambiguous.
      
      * Disable quantized ops tests on GPU backend
      
      * Remove unused `includes`
      
      * Remove redundant dynamic_pointer_cast
      
      * Remove redundant `move`
      
      * Add const correctness
      
      * Code review comments
      
      * Style apply
      
      * Add documentation
      
      * Use more complex shapes in tests
      e51c5824
  10. 31 May, 2019 1 commit
    • Sang Ik Lee's avatar
      Cleanup how compile flags are set and used by nGraph and external projects. (#2942) · 08dcd01b
      Sang Ik Lee authored
      * Cleanup how compile flags set and used by nGraph and external projects.
      Set C++11 through CMake and pass it down to external projects.
      Prefer CMake variables such as CMAKE_POSITION_INDEPENDENT_CODE and
      CMAKE_CXX_STANDARD instead of explicitly setting compiler dependent
      flags.
      Create json compilation database for external projects.
      CMAKE_CXX_FLAGS is used as common global options for nGraph and external
      projects.
      add_compile_options() is used for local options for current and sub
      directories.
      add_definitions() is used for setting definitions for current and sub
      directories.
      Note: Global options are not passed down to some external projects.
      Note: mkl-dnn resets CMAKE_CXX_FLAGS internally.
      Note: TBB and MLSL are not CMake based.
      Noet: Eigen and json is header only library.
      
      * Fix error.
      
      * Fix error. (second attempt)
      
      * Cleanup code.
      
      * Allow check for undefined macro.
      
      * Try to fix cldnn issue.
      
      * Set type for CMake arguments.
      
      * Pass C++ standard to protobuf.
      
      * Pass C++ standard down to TBB.
      
      * Change how Clang specific flags are handled.
      
      * Fix error.
      
      * Workaround for compile error on Baidu's PDPD docker.
      
      * Fix windows build error.
      08dcd01b
  11. 24 May, 2019 1 commit
    • Michał Karzyński's avatar
      [ONNX] Unit tests for QLinearMatMul (#2706) · 9560c1fa
      Michał Karzyński authored
      * [ONNX] Unit test models for QLinearMatMul
      
      * [ONNX] Extended types support for NgraphTestCase
      
      * [ONNX] Move the value comparators to the NgraphTestCase class
      
      * Add test cases
      
      * Add shape checking
      
      * disable GPU tests
      9560c1fa
  12. 10 May, 2019 1 commit
    • Adam Rogowiec's avatar
      [ONNX] Activation functions parameters for LSTM. (#2842) · dddcd4a8
      Adam Rogowiec authored
      * Move HardSigmoid to nGraph fused operators.
      
      * UT for HardSigmoid fused operator.
      
      * Add type_prop UT.
      
      * Activation function parameters and hardsigmoid activation function.
      
      * UT for lstm with hardsigmoid activation function.
      
      * Reorder operations in implementation.
      
      * Fix unit tests.
      
      * Fix typo.
      
      * Change stored activation function to pure function pointer.
      
      * Apply style-check.
      
      * [ONNX] Refactor LSTM tests to use NgraphTestCase
      
      * Enable passing instance values to comparator
      
      * Style apply.
      
      * Fix style, syntax
      
      * Change order of class member to fix errors.
      
      * Switch to single-precision parameters.
      
      * Disable unit test for IGPU.
      dddcd4a8
  13. 09 May, 2019 1 commit
    • Tomasz Dołbniak's avatar
      [ONNX] Hardmax support in ONNX importer (#2869) · ae352fa4
      Tomasz Dołbniak authored
      * [ONNX] Hardmax implementation in the onnx importer
      
      * [ONNX] More generic handling of types in hardmax
      
      * [ONNX] Support for doubles in EmbeddingLookup CPU builder
      
      * [ONNX] Throw when the provided axis is out of range
      
      * [ONNX] Skip the hardmax test on GPU
      
      * Unused headers clean-up
      
      * refactor: move the identity matrix generator to common.hpp
      
      * ASSERT_VALID_ARGUMENT for axis range validation
      
      * Adapt to the code changes in master
      ae352fa4
  14. 18 Apr, 2019 1 commit
  15. 17 Apr, 2019 1 commit
    • Tomasz Dołbniak's avatar
      [ONNX] Erf op support (#2763) · 45e4e893
      Tomasz Dołbniak authored
      * [ONNX] Erf op support
      
      * [ONNX] Missing CMakeLists entry for the Erf op
      
      * [ONNX] model_erf unit test excluded from GPU
      
      * Update quoting style to fix errors raised by updated version of flake8.
      45e4e893
  16. 09 Apr, 2019 1 commit
  17. 08 Apr, 2019 1 commit
    • Michał Karzyński's avatar
      [ONNX] Unit test models for QLinearConv (#2705) · 9bfc0e5f
      Michał Karzyński authored
      * [ONNX] Unit test models for QLinearConv
      
      * Temp ref conv
      
      * ref conv temp
      
      * add qlinearconv2d test
      
      * adding conv3d test case
      
      * ignore tests on GPU
      
      * Dynamic scale
      
      * add builder based solution for zero point and conv
      
      * Revert "Dynamic scale"
      
      This reverts commit be8e57bdf7013967e5575164a0402dcc6d16b8ed.
      
      * Revert "Merge remote-tracking branch 'origin/nishant_ref_conv_u8u8' into mkarzyns/qlinear_conv_uts"
      
      This reverts commit dea29a18c474b644b5b531f0e59f21d21bd56bf2, reversing
      changes made to b12fc13c5852efa4c335377164d9b7e5d9227a8a.
      
      * style
      9bfc0e5f
  18. 05 Apr, 2019 2 commits
  19. 20 Mar, 2019 1 commit
  20. 13 Mar, 2019 1 commit
    • tsocha's avatar
      [ONNX] Quantization operators (#2495) · ee1a5ca8
      tsocha authored
      * Lin quant ONNX operators
      
      * Add EOL at EOF
      
      * Update licence year
      
      * Cleanup namespaces
      
      * Add missing headers
      
      * Check if group is correct
      
      * Remove Check in dequantize
      
      * Remove TODO
      
      * Add converting zero point to data element type
      
      * Remove unused scale variable
      
      * Removing zero point
      
      * Remove make_ng_conv_bias helper function
      
      * Add test for Quantize Linear
      
      * Remove dead code
      
      * Add test for Dequantize Linear
      
      * Add Quant Conv test
      
      * Convert models to prototxt
      
      * Remove artifact test
      
      * Skip test on INTERPRETER
      
      * Style check
      
      * Remove stupid skipping
      
      * Enable test skipping in onnx_backend tests
      
      * Skip GPU tests on quantized operators
      
      * Review fix
      ee1a5ca8
  21. 07 Mar, 2019 1 commit
    • Adam Rogowiec's avatar
      [ONNX] Convert models to text format. (#2528) · 073e68fd
      Adam Rogowiec authored
      * Handle models in prototxt format.
      Signed-off-by: 's avatarAdam Rogowiec <adam.rogowiec@intel.com>
      
      * Convert Onnx models to text format.
      
      * Tool for conversion between protobuf ONNX models in binary and text format.
      Signed-off-by: 's avatarAdam Rogowiec <adam.rogowiec@intel.com>
      
      * Update ONNX test models text format.
      
      * Convert ONNX LSTM model to text format.
      
      * Rename and make second argument optional.
      
      * Unify models metadata.
      
      * Remove onnx binary models.
      
      * Review: fix comments.
      
      * Fix not yet updated models extension in UTs.
      
      * Add UT with binary protobuf models.
      
      * Clang format.
      
      * Remove failing UT in prototxt since it has problems with CI.
      
      * Inhibit logging protobuf errors.
      
      * Revert "Remove failing UT in prototxt since it has problems with CI."
      
      This reverts commit 94741a8c4594f3cc2ebdca428fa40b94a79240c2.
      
      * Remove LogSilencer from onnx importer api and remove respective UT.
      
      * Conversion script updates
      073e68fd
  22. 27 Feb, 2019 1 commit
    • Amy Zhuang's avatar
      Reuse memory for CPU backend. (#2238) · b277627a
      Amy Zhuang authored
      * Reuse memory for CPU backend.
      
      * Use NGRAPH_REUSE_MEMORY to enable memory reuse.
      
      * Add a test.
      
      * Move make_function to test_tools.cpp.
      
      * Add more comments.
      
      * Address PR Feedback: add a method to CPU backend.
      
      * *Add a member to CPUOpAnnotations to remove redundant code.
      
      *Overload compile function for CPU backend.
      
      * Move make_function out of test_tools.
      
      * Address PR Feedback.
      
      * Use modified liveness analysis in CPUMemoryAssignment pass.
      
      * Use lambda expression.
      
      * Fix style error.
      
      * Check if any user of the tensor has destructive io when building tensor alias map.
      
      * Fix a bug.
      
      * Check if tensor has multiple users.
      
      * Allow tensor alias for destructive oi node.
      
      * Update multiple_users_tensor set along the chain of in place ops.
      
      * No tensor alias if input is parameter or constant.
      
      * Use buffer sets in cpu memory assignment,
      tensors sharing the same memory buffer are put into the same set.
      
      * Add more checks and do not combine sets when allowing destructive oi.
      
      * Style fix.
      
      * Do no allow destructive oi if the input tensor uses function input memory.
      
      Update set label.
      
      * Add unit tests.
      
      * Style fix.
      
      * Get the correct size for memcpy when the input is padded.
      
      * Style fix.
      
      * Address PR feedback.
      
      * Address PR feedback.
      
      * Move make_function in cpu_test after #if 0 and before the disabled test.
      
      * Add utility functions.
      
      Use iterator.
      
      Rename variables.
      
      * Add pass attributes and move cpu memory assignment to common passes (#2504)
      b277627a
  23. 26 Feb, 2019 2 commits
    • Adam Rogowiec's avatar
      [ONNX] GlobalLpPool operator (#2476) · d357cb92
      Adam Rogowiec authored
      * Utility functions for calculating Lp norm.
      
      * Use functor object as a reduction operation.
      
      * Use new api of make_ng_reduction_op.
      
      * Use utility norm functions for reduction operations.
      
      * Onnx GlobalLpPool operator.
      
      * Ensure correct shapes after lp_norm reduction.
      
      * Remove unused function overload.
      
      * Fix shapes and tensor types.
      
      * Unit tests.
      
      * Update comments.
      
      * Update supported ops status table.
      
      * Fix: take absolute value of input tensor elements.
      
      * UT: with odd value p-norm.
      
      * Fix: move taking abs value into respective lp-norm functions.
      
      * Fix clang -Wdocumentation-unknown-command error.
      
      * Update supported op status table with new Jira ticket for Erf op.
      
      * Update supported_ops status table.
      
      * Update interface of make_ng_reduction_op - accept std::function object.
      
      * Update to use new make_ng_reduction_op api.
      
      * Remove unused header.
      
      * Fix errors on CentOS.
      d357cb92
    • Adam Rogowiec's avatar
      [ONNX] Enhance LSTM support. (#2408) · 6e6c8af4
      Adam Rogowiec authored
      6e6c8af4
  24. 25 Feb, 2019 1 commit
    • Pruthvi's avatar
      Pruthvi/bi rnn (#2232) · a444f7a9
      Pruthvi authored
      * - Added reorder support for rnn weights_layer/iter
      
      * i) fixed compilation issues ii) working but still observing precision error
      
      * i) fixed failing rnn unit test for DEX ii) refactored workspace in RNN mkldnn emitter
      
      * i) added support for src reorder to TNC from NTC
      
      * reorder support for rnn output fron NTC to TNC
      
      * - added support for rnn weight reorder ldgoi -> ldigo
      - code refactor for lstm/rnn kernel in mkldnn emitter
      
      * - refactor rnn mkldnnn kernel, change variable names
      
      * fix RNN codegen kernel
      
      * disbale layer rnn fusion pass, to test CI
      
      * method to validate recurrent rnn inputs
      
      * add correlated macthes for Recurrent RNN PM
      
      * - simplify reorder logic for rnn_weights
      - fix graph pattern for fusing rnn cell across time steps
      
      * do weights reorders in rnn timesteps fusion
      
      * refactored LSTM graph pass
      
      * - Bug fix for finding the lstm inputs determenstically
      - Refactored LSTM graph pass to single pass
      - made changes to LSTM RNN time step fusion graph pass
      
      * - use replace_node instead of replace_output in Lstm_step_wise fusion graph pass
      
      * fix compilation error
      
      * Fix GNMT rnn fusion
      
      * check if the node is in use before replacing in RNN graph passes
      
      *  i) fix style ii) fix topo sort issue in RNN graph pass
      
      * style fix
      
      * fix bug in simplify_concat pass
      
      * replaces Lstm1 -> {GOE1, GOE2} -> {Slice1, Slice2} -> Concat -> Lstm2 with Lstm1 -> Lstm2
      
      * cse for convert layout
      
      * addressed PR comments
      
      * - optimization pass to remove  Lstm1 -> {GOE1, GOE2} -> {Slice1, Slice2} -> Lstm2
      - conditional fusing of LSTM cells only for the decoder
      
      * made changes to multi layer RNN fusion callback
      
      * fix asserts in RNN op
      
      * - added support to fuse layers when slc=dlc for RNN cells
      - bug fix on the sanity checks for RNN Op
      
      * - support RNN layer fusion till slc = dlc
      - bug fixes in multi layer rnn fusion call back
      
      * capture reshape in the RNN weights
      
      * Addressed PR comments
      
      * - added comments in multi layer PM call back
      - fuse only if slc == DLC across layers
      
      * restore deleted 3_lstm_cell_forward.json file
      
      * fix typo
      
      * fix failing unit tets
      
      * When processing in place slice, do not change the offset of the slice node if the argument pointer comes from function input.
      
      * Address PR feedback: process in place slice after propagating in place input.
      
      * Set INTERMEDIATE role before propagating in place input.
      
      * Do not add temporaries to the variable name map before propagating in place input in codegen.
      
      * Fix a bug in codegen.
      
      * Fix a bug in codegen slice.
      
      * reenable disabled rnn unit test
      
      * fix compiler error
      
      * - bug fix in the slicing logic for the layer fused rnn cell
      - fix failing rnn unit test
      
      * - Addressed PR comments
      - removed redundant checks from the rnn graph pass
      - simplified rnn call back replace node logic
      
      * - added new multilayer rnn *.json file
      - fix test case
      
      * [PRIVATE BRANCH] Style fixes (#2080)
      
      * Style fixes
      
      * change order of lstm gates
      
      * WIP bi rnn
      
      * [PRIVATE BRANCH] Jbobba/rnn fusion review (#2113)
      
      * Style fixes for single-layer RNN fusion
      
      * Style fixes to multi-layer RNN
      
      * added callback routine for bi-directional rnn
      
      * fix rnn op ctor, rnn mkldnn emitter to accomodate bi directional rnn
      
      * style fix
      
      * added helper function for rnn's to query direction and cell_type
      
      * fix clang error
      
      * - unit test case for bi rnn fusion
      - style fix
      
      * - updated bi-rnn graph pass to handle reverse and reverse_seq ops in the predicate
      - added bi-rnn inter v/s cpu unit test case
      - add support to in mkldnn_utils to create_md with tnc/ntc format
      
      * - added enum type to deduce rnn_type
      
      * Addressed PR comments
          - handle reshapes from {t, n, c} to {n, t, c} in the graph pass
      
      * fix style
      
      * fix clang error
      
      * fix style
      
      * i) move enum specific to rnn to seperate header
      a444f7a9
  25. 22 Feb, 2019 1 commit
  26. 21 Feb, 2019 1 commit
  27. 19 Feb, 2019 1 commit
    • tsocha's avatar
      [ONNX] Enable OneHot operation (#2448) · a6be6ea3
      tsocha authored
      * [ONNX] Enable OneHot operation
      
      * Add UT
      
      * Style check
      
      * Change converts
      
      * Change assert messages
      
      * Update comments
      
      * Update onehot.cpp
      a6be6ea3
  28. 18 Feb, 2019 1 commit
  29. 12 Feb, 2019 2 commits
    • Tomasz Dołbniak's avatar
      [ONNX] Sign operator support (#2412) · adfe479a
      Tomasz Dołbniak authored
      * [ONNX] Add support for ONNX sinh op
      
      * [ONNX] Test the sinh op and improve an error msg about not supported op version
      
      * [ONNX] Fix the failing tests by moving sinh to opset 1
      
      * [ONNX] Apply clang-format to fix failing CI builds
      
      * [ONNX] Add and test ONNX cosh op
      
      * [ONNX] Add and test ONNX cosh op
      
      * [ONNX] Add and test ONNX sign op
      
      * [ONNX] Test the sign operator with more challenging values
      
      * [ONNX] Update of supported ops documentation table
      adfe479a
    • tsocha's avatar
      [ONNX] Add null node. (#2386) · 5b63a3c7
      tsocha authored
      * [ONNX] Add null node.
      
      Optional inputs in ONNX standard are represented by empty string.
      We need a placeholder to keep information which inputs are not provided.
      
      * Rename class null_node -> NullNode
      
      * Remove unnecesary validate_and_infer_types method
      
      * Add <memory> header
      
      * Change name != "" -> !name.empty()
      
      * Change constructor
      
      * Little description
      
      * Change node type in NullNode
      
      * Add is_null() method
      
      * Docstring
      
      * Add UT
      
      * Use override
      
      * Style check
      
      * Update null_node.cpp
      5b63a3c7
  30. 11 Feb, 2019 1 commit
  31. 08 Feb, 2019 1 commit
    • Tomasz Dołbniak's avatar
      [ONNX] Add hyperbolic functions support (#2402) · 6beb6732
      Tomasz Dołbniak authored
      * [ONNX] Add support for ONNX sinh op
      
      * [ONNX] Test the sinh op and improve an error msg about not supported op version
      
      * [ONNX] Fix the failing tests by moving sinh to opset 1
      
      * [ONNX] Apply clang-format to fix failing CI builds
      
      * [ONNX] Add and test ONNX cosh op
      
      * [ONNX] Add and test ONNX cosh op
      6beb6732
  32. 02 Feb, 2019 1 commit
    • Pruthvi's avatar
      Pruthvi/fix input matrix fusion (#2381) · 917efb94
      Pruthvi authored
      * -   check to verify if the data_slices shares the same weights
      
      * add the serialized graph
      
      * - explicitly fuse the data slices, so all the parameter partitioned by slices are in contigous memory location
      - fixes all the failing test cases
      917efb94
  33. 01 Feb, 2019 1 commit
  34. 29 Jan, 2019 1 commit