1. 23 Jul, 2023 1 commit
  2. 21 Jul, 2023 1 commit
    • Umang Yadav's avatar
      Add back clamping and add tests (#1969) · 6957243c
      Umang Yadav authored
      Fixes #1957
      
      Clamping was removed in #1853.
      
      Turns out clamping as necessary to handle overflow/underflow cases. during downcasting, if it overflowed then without clamping it returned infinity.
      6957243c
  3. 16 Jul, 2023 1 commit
  4. 13 Jul, 2023 1 commit
    • Charlie Lin's avatar
      Update deconvolution -> convolution_backwards and Dynamic Shape Support (#1801) · 4edf1195
      Charlie Lin authored
      Renames deconvolution -> convolution_backwards to be more consistent with the literature
      Note: this is not the cross-correlation operator (which is the adjoint of convolution). This is technically a standard convolution operator combined with an upsampling operator rather than a downsampling operator.
      Adds unit tests for the padding, strides, dilations, and other op attributes.
      Throws on auto_pad attribute since it has not been implemented
      Previously it read the attribute and set it but then did nothing with it
      Extended for dynamic shapes
      Does not support using asymmetric padding (padding_L != padding_R) and output_shape with dynamic shapes.
      4edf1195
  5. 10 Jul, 2023 1 commit
    • Brian Pickrell's avatar
      Pooling op. calculation changes (#1823) · bb06dbf5
      Brian Pickrell authored
      Changes to the way Pooling operation calculates pooling when there's padding. Old code would clip off any padding values before computing; for instance if an Average pooling window contained 0 1 2 where the 0 is padding, the result was 1.5 instead of 1.0. See Issue 1766
      bb06dbf5
  6. 06 Jul, 2023 1 commit
  7. 02 Jul, 2023 1 commit
  8. 17 Jun, 2023 1 commit
  9. 16 Jun, 2023 1 commit
  10. 03 May, 2023 1 commit
    • Charlie Lin's avatar
      Update C/C++ API for dynamic batch (#1712) · 0ff00ef6
      Charlie Lin authored
      Relies on Removed split_single_dyn_dim compile flag #1711
      Exposes dynamic_dimension as a opaque object with dynamic_dimensions and optimals
      Exposes ONNX dyn_input_dims and default_dyn_dim to run with dynamic batch
      Updates api.py to be able to create objects from aggregate initialization (used for dynamic_dimension)
      Uses offload copy for now
      0ff00ef6
  11. 04 Apr, 2023 1 commit
    • Charlie Lin's avatar
      Refactor dynamic_dimension to have multiple optimals (#1625) · e7ec374f
      Charlie Lin authored
      Makes the optimals into a std::set<std::size_t>
      Changes shape object functions to handle the opts change
      Changes to convolution, flatten, pooling, and convolution in that they no longer calculate the output optimal dimensions. Instead returns empty opts. Will need to change this in the future if we want to support dynamic shapes fully.
      Many changes to tests and shape calls with respect to the new optimals
      e7ec374f
  12. 31 Mar, 2023 1 commit
    • Charlie Lin's avatar
      Split single dynamic dimension compiler pass (#1580) · e9e3eacc
      Charlie Lin authored
      Adds a new GPU compiler pass split_single_dyn_dim that handles when one input parameter has a single non-fixed dynamic_dimension.
      commonly occurs for dynamic batch or BERT sequence length
      Splits the dynamic shape into several submodules will static input parameters to handle all of the cases in the dynamic_dimension range.
      Essentially does what I manually did for the select_module verify tests
      Adds a compile option split_single_dyn_dim that toggles the pass on/off. Defaults to false.
      Updates verify_program.hpp and run_verify.cpp to allow for the tests to change the compile_options
      e9e3eacc
  13. 18 Mar, 2023 1 commit
  14. 28 Feb, 2023 1 commit
    • Charlie Lin's avatar
      Select module op (#1569) · a63ee2e0
      Charlie Lin authored
      Creates the select_module operator that selects one of the submodules passed to it to run based on the submodule parameters.  The submodule is selected by having the exact same static shapes for the arguments to select_module as the parameters in the submodule
      a63ee2e0
  15. 15 Feb, 2023 1 commit
    • Brian Pickrell's avatar
      Dyn slice (#1503) · 102c6bdb
      Brian Pickrell authored
      Add dynamic shape support to slice operator.
      
      First draft of this feature doesn't support ops slicing non-fixed, dynamic axes. Resulting shape in such cases is not guaranteed.* Also, onnx parsing doesn't support any arguments other than "axes".
      102c6bdb
  16. 11 Feb, 2023 1 commit
  17. 10 Feb, 2023 1 commit
  18. 03 Feb, 2023 1 commit
  19. 02 Feb, 2023 1 commit
  20. 30 Jan, 2023 1 commit
  21. 17 Jan, 2023 3 commits
    • Charlie Lin's avatar
      Dynamic ONNX Gemm (#1459) · 8b651eee
      Charlie Lin authored
      Extends ONNX Gemm parser to handle dynamic input shapes
      Limits ONNX Gemm parsing to 2D input tensors for A and B inputs
      As per the ONNX specifications
      Changed Gemm ONNX tests to 2D input versions
      Add onnx_verify tests for Gemm
      Parsing ONNX Gemm links to more than one operator, checking that it produces the correct result
      8b651eee
    • Charlie Lin's avatar
      Dynamic ref reshape (one non-fixed case) (#1500) · 3f49f8eb
      Charlie Lin authored
      Extends reshape to handle the case of a single non-fixed dynamic_dimension
      3f49f8eb
    • Charlie Lin's avatar
      Dynamic ref pad (#1487) · 8202e411
      Charlie Lin authored
      Extends pad operator to handle dynamic input shapes
      Only handles computing the shape for adding constant padding to a dynamic shape
      - adds the padding to the min, max, and opt values (unless opt is 0, where it keeps it 0)
      - does not handle reflect padding with dynamic shapes
      8202e411
  22. 04 Jan, 2023 1 commit
  23. 08 Dec, 2022 1 commit
  24. 07 Dec, 2022 1 commit
  25. 06 Dec, 2022 1 commit
  26. 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
  27. 28 Nov, 2022 1 commit
  28. 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
  29. 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
  30. 27 Oct, 2022 2 commits
  31. 19 Oct, 2022 1 commit
    • Charlie Lin's avatar
      Refactor dynamic compute; Dynamic ref unary functions (#1407) · 693cb5d8
      Charlie Lin authored
      Refactor dynamic compute
      - add a compute_output_shape object that implicitly converts to a new dyn_output or shape object
      - dyn_output object can handle computing the static output shape of an operator given the input arguments shapes
        change an operator's compute function to argument compute(const dyn_output& dyn_out, std::vector<argument> args) to 
        use dyn_output object
      
      Dynamic ref unary functions
      -  Included these changes to have an example of the refactored dynamic compute being used
      -  Changes to unary base class to handle dynamic shapes
      -  Changed elu and leaky_relu to use unary base class and pointwise JIT
      693cb5d8
  32. 13 Oct, 2022 2 commits
  33. 26 Sep, 2022 1 commit
  34. 06 Sep, 2022 1 commit
  35. 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