1. 14 Dec, 2022 1 commit
  2. 13 Dec, 2022 2 commits
  3. 08 Dec, 2022 4 commits
    • Charlie Lin's avatar
      Dynamic ref dot operator (#1457) · d411aa69
      Charlie Lin authored
      Extends dot MIGX operator to handle dynamic input shapes
      Only allow dot between two dynamic shapes that have exactly matching outer dimensions
      Inner dimensions must also match correspondingly
      Updates dot related tests
      Change check_shapes to use shape.ndim()
      ONNX parsers for GEMM and MatMult will be updated in a separate PR
      d411aa69
    • Charlie Lin's avatar
      Dynamic reference Softmax (#1475) · 8e7d2efe
      Charlie Lin authored
      No major changes required, use dyn_output and pass dynamic shape when calling compute_shape()
      Adds dynamic shape tests
      8e7d2efe
    • Charlie Lin's avatar
      Dynamic ref flatten (#1482) · 4c32afcc
      Charlie Lin authored
      Changes flatten's compute_shape() to handle dynamic shapes
      Calculates the flattened shape with the min, max, and opt
      4c32afcc
    • shivadbhavsar's avatar
      fix issues with compiling lstm ops in fp16 mode (#1450) · 352c2465
      shivadbhavsar authored
      Currently, quantizing a program with rnn layers to fp16 results in segmentation faults due to a "convert" operation being applied to an "undefined" instruction.
      
      The following changes are implemented to fix this issue:
      
      Added is_undefined method to the instruction class that returns true if all inputs to the instruction are from an undefined op.
      Updated rewrite_rnn pass to use the new is_undefined method rather than checking ins->name()
      Updated the dead_code_elimination pass to also use this new method rather than only checking the instruction name
      352c2465
  4. 07 Dec, 2022 1 commit
  5. 06 Dec, 2022 1 commit
  6. 02 Dec, 2022 2 commits
    • Charlie Lin's avatar
      Refactor non-standard literal construction (#1443) · fdc3f00a
      Charlie Lin authored
      Fix problem with the contiguous operator constructing non-standard shape literals.  A non-standard literal will almost never be used, since a literal is known at compile time.  Added some comments on the intended behavior:
      
      - literal{shape, vector} constructor with a non-standard shape is intended to keep the same ordering as the given vector. The data buffer will be populated such that when the non-standard indexing is used the original order is as given.
      - literal{shape, argument} constructor directly copies the data buffer from the argument
      - Changed non-standard literal fill() to use tensor_view iterators as it handles non-standard shapes now
      - Changed the contiguous ref_ops_test to be more helpful
      fdc3f00a
    • Charlie Lin's avatar
      Dynamic ref pooling (#1449) · 0e40ebaa
      Charlie Lin authored
      Extends the pooling operators for dynamic shape inputs
      
      AveragePooling
      GlobalAveragePooling
      MaxPooling
      GlobalMaxPooling
      LpNormPooling
      GlobalLpNormPooling
      y.github.com>
      0e40ebaa
  7. 28 Nov, 2022 1 commit
  8. 17 Nov, 2022 1 commit
    • Charlie Lin's avatar
      Dynamic ref contiguous (#1445) · 95d82a51
      Charlie Lin authored
      Extends the ref contiguous operator to handle dynamic shapes
      Updates the eliminate_contiguous pass to use the dyn_output struct
      95d82a51
  9. 13 Nov, 2022 1 commit
    • Charlie Lin's avatar
      Dyn ref multibroadcast; dyn binary (#1423) · d73c6d7c
      Charlie Lin authored
      Updated Multibroadcast op to have a two input version for dynamic shapes
      Current dynamic shape broadcasting logic
      dynamic_dimensions must be the same or one of them is {1, 1, 0} or {1, 1, 1}
      Works for dyn-dyn, dyn-static, and static-static shape combinations
      Changed common.cpp for multibroadcasting for binary ops with dynamic shapes
      Extended binary.hpp for dynamic shapes to test the new common.cpp stuff
      d73c6d7c
  10. 02 Nov, 2022 1 commit
  11. 27 Oct, 2022 1 commit
  12. 19 Oct, 2022 2 commits
  13. 13 Oct, 2022 2 commits
  14. 04 Oct, 2022 1 commit
  15. 29 Sep, 2022 1 commit
  16. 27 Sep, 2022 1 commit
  17. 21 Sep, 2022 1 commit
  18. 08 Sep, 2022 1 commit
  19. 06 Sep, 2022 1 commit
  20. 31 Aug, 2022 1 commit
  21. 27 Aug, 2022 1 commit
  22. 26 Aug, 2022 1 commit
  23. 23 Aug, 2022 1 commit
    • Charlie Lin's avatar
      Dynamic ref NMS (#1288) · fa3c21fa
      Charlie Lin authored
      Has NMS op output a dynamic shape (ONNX spec behavior)
      Allows for dynamic input shape to NMS op
      fa3c21fa
  24. 21 Aug, 2022 1 commit
    • varunsh's avatar
      Update is_supported (#1334) · 79e15ca9
      varunsh authored
      * Update is_supported
      * Return object from is_supported
      * Return by reference in interator
      79e15ca9
  25. 19 Aug, 2022 1 commit
  26. 08 Aug, 2022 1 commit
    • Ted Themistokleous's avatar
      Imply type of literal returned based on input protobuff for zero elem… (#1326) · bb0e04ce
      Ted Themistokleous authored
      * Imply type of literal returned based on input protobuff for zero element constant values.
      
      This saves us the default behavior as the onnx parsing assumes that every zero value is float. This way we're still grabbing relevant type information from the protobuff instead and wont fail our data type checks for if them/else blocks from onnx
      
      * Revert "Imply type of literal returned based on input protobuff for zero element constant values."
      
      This reverts commit 390bb853
      
      .
      
      * Add  test case to parse in empty constant int64 proto buffer
      
      I think the previous test case was aliasing an issue where we default to float but need to actually read in int64 instead of int32
      
      * fixup! Add  test case to parse in empty constant int64 proto buffer
      
      * Add test for non empty int64 scalar
      
      Add one item in the np array to use for the constant we're parsing in.
      
      * Draft partial fix
      
      * Fix test failures from previous change to read in protobuf data types correctly for empty constants.
      
      Instead of assuming things are empty and thus we default to float, reading in the correct types broke some assumptions code was using for an empty literal.
      
      * Fix formatting and naming
      
      * Fix naming with var in constant_one_val_int64_test
      Co-authored-by: default avatarcharlie <charlie.lin@amd.com>
      Co-authored-by: default avatarkahmed10 <15948690+kahmed10@users.noreply.github.com>
      bb0e04ce
  27. 04 Aug, 2022 1 commit
    • Charlie Lin's avatar
      Dynamic ref convolution op (#1224) · 67f77ac1
      Charlie Lin authored
      
      
      * Dynamic shape handling in shape object
      
      * rewrite empty lens multibroadcast test
      
      * Shape class changes to handle dynamic
      * More throw errors for functions that don't make sense for dynamic shape
      * Print output changes
      * Serialization changes
      
      * Fixing serialization errors
      
      * Remove const on dyn_dim copy getters
      
      * Dynamic shape tests
      
      * Fix serialize errors
      
      * Add dyn_data struct to avoid ambiguous constructor
      
      * Tidy fix: emplace_back() over for loop
      
      * Tidy fix: use move
      
      * Use std::initializer_list in constructor
      Reverts the dyn_data struct change
      Should get around the ambiguous braced initialization list error
      
      * avoid typedef
      
      * element_space, min,max,opt _lens change
      
      * formatting
      
      * Comments fix
      
      * dynamic bytes() test
      
      * Seralize and reflect changes
      
      * formatting
      
      * Test the dynamic lens functions
      
      * progress
      
      * Formatting
      
      * Dynamic conv draft progress
      
      * Add operator<< tests for coverage
      
      * Coverage update
      
      * Add to conv dynamic batch test
      
      * Dynamic image size test
      
      * Dynamic weight handling
      
      * Dyn image shape test change, fix dyn weight cond
      
      * Comment update
      
      * Dynamic weights shape test and fix
      
      * Use ternary operator
      
      * Tidy fixes
      
      * Handle dynamic graph input shapes in ONNX parser
      
      * Formatting
      
      * Handle dynamic shape for convolution
      
      * formatting
      
      * cppcheck fixes
      
      * Add onnx test files
      
      * Fix typo
      
      * Disable auto_pad for dynamic input shape
      
      * check_shapes object checks for allowing dynamic shapes
      
      * Fix any_of
      
      * Change to maintain const objectness
      
      * Formatting
      
      * Check shapes allow dynamic
      
      * Refactor compute_shape() call into op.compute()
      Allows for per operator differences with handling dynamic shape
      Fix operation.hpp change to use the generator
      
      * Comment fix
      
      * Refactor normalize_attributes() calls to use max_lens()
      
      * Comment addition
      
      * Update other normalize_attributes() calls
      
      * Change to using constructor and add tests
      
      * Use const member function
      
      * Add more dynamic shape support
      
      * Add tests for error code coverage
      
      * Fix opt shape bug and add shape tests
      
      * capture all by ref
      
      * Fix typo with img shape calculation
      
      * Add more tests
      
      * dynamic auto pad attempt
      Linker error with pad_calc.cpp
      
      * Fix parse dyn auto_pad
      Should only need to use dynamic auto pad when the image shape or kernel
      shape are dynamic. For a dynamic batch size, the auto pad calculation is
      the same.
      
      * Fix linking error
      
      * Fix auto_pad bug
      Fixed input tensor with auto_pad setting on
      
      * auto_pad onnx tests
      
      * Fix auto_pad calculation, evaluate in ref_conv
      add ref_ops tests
      
      * Add shape tests, fix bugs
      
      * Refactor first two output dynamic len calculation
      
      * Conv MLIR test update
      
      * i64 MLIR test fix
      
      * Fix MLIR test typo
      Co-authored-by: default avatarChris Austen <causten@users.noreply.github.com>
      67f77ac1
  28. 02 Aug, 2022 2 commits
  29. 25 Jul, 2022 1 commit
    • Ted Themistokleous's avatar
      Add onnx mod operator (#1302) · 77e80b8e
      Ted Themistokleous authored
      * Add in changes for onnx Mod operator
      
      Initial operator for mod implementation and test cases for integer and floating based types.
      
      Need to use fmod from stdlib for floating point types. half_float::half thankfully is specced to the use the existing std::fmod() call when looking at the half.hpp implementation.
      
      fmod_flag should mirror the onnx fmod attribute. Right now using a floating point type without setting that on the user side to true will result in an exception.
      
      Ref ticket #1283 
      77e80b8e
  30. 21 Jul, 2022 1 commit
  31. 19 Jul, 2022 2 commits