1. 22 Mar, 2022 1 commit
  2. 18 Mar, 2022 2 commits
  3. 14 Mar, 2022 1 commit
  4. 11 Mar, 2022 1 commit
    • Shucai Xiao's avatar
      Improve print ins (#1096) · b3b44f5d
      Shucai Xiao authored
      The module::debug_print(ins) is very slow, which makes the trave_eval==1/2 very slow. The reason is printing an ins involves search the whole module to get the instruction, the print it.  This change is to fix that by calling module::print() to get names of all instructions of a program, then print the instruction by getting its name from a hash map.
      b3b44f5d
  5. 04 Mar, 2022 1 commit
    • bpickrel's avatar
      Mode as enum for pooling and roi_align (#1091) · a2e90b5d
      bpickrel authored
      Changed the pooling values for two structures from strings to specialized enum classes. Many test and operator parsing changes to support this. Introduces one new source file, op_enums.cpp.
      a2e90b5d
  6. 03 Mar, 2022 1 commit
  7. 02 Mar, 2022 2 commits
  8. 25 Feb, 2022 2 commits
  9. 23 Feb, 2022 1 commit
    • Shucai Xiao's avatar
      Keep std shape (#1059) · 98dfdf15
      Shucai Xiao authored
      This PR is the resolve two problems in the issue#999, i.e., non_standard_shape input to reshape and reduce_mean.
      Three fixes:
      
      Any operator that has a standard shape requirement will add a contiguous input for its input.
      Eliminate_contiguous, when computing whether a contiguous can be removed, we should use all the updated args, not just the one that is being checked.
      In two optimization in the simplify_reshape, we remove the contiguous in the reshaper name list, since eliminate_contiguous will remove the contiguous if it can be removed.
      the solution is add an attribute to the operator that requires standard input shape, then in the auto_contiguous pass, add a contiguous to every input of such operators.
      98dfdf15
  10. 16 Feb, 2022 1 commit
  11. 09 Feb, 2022 1 commit
  12. 08 Feb, 2022 1 commit
  13. 02 Feb, 2022 1 commit
    • Paul Fultz II's avatar
      Update trace_eval to preview the output buffers (#1073) · b20e3d4d
      Paul Fultz II authored
      Currently, MIGRAPHX_TRACE_EVAL=2 prints out the entire output buffer, but this can produce a lot of output. To make it easier to inspect and debug, using MIGRAPHX_TRACE_EVAL=2 now only prints 10 elements from the buffer(the first 5 and last 5) and shows any fp classifications found in the buffer(ie nans, infinity, etc). The previous behavior can still be enabled with MIGRAPHX_TRACE_EVAL=3.
      b20e3d4d
  14. 28 Jan, 2022 1 commit
  15. 27 Jan, 2022 1 commit
  16. 17 Jan, 2022 1 commit
  17. 08 Dec, 2021 1 commit
  18. 25 Nov, 2021 1 commit
    • Shucai Xiao's avatar
      Non std shape auto contiguous (#1001) · 2d4dcc47
      Shucai Xiao authored
      Resolves a problem in parsing the ssd-10 model.
      
      The problem is, after inserting contiguous in the auto_contiguous pass, standard output shape of some operators becomes non-standard. Then, if the next operator requires standard input shape, an exception is throw.
      
      For example, if we pass the following model:
      Input (standard shape) -> transpose (transposed) -> softmax (transposed) -> transpose (standard) -> gather.
      It works fine, and no contiguous is required.
      
      In the auto_contiguous pass, a contiguous is inserted after the first transpose. Then we need to replace the first transpose with the contiguous and recompute all shapes. When it comes to the gather operator, its input is a transposed shape, and an exception is thrown.
      
      The solution is in the recompute_shape() function. If it is called by the auto_contiguous pass and shape of an instruction is changed, and the shape is non_standard, we do not recompute shape of its output. The reason is: since its output shape is non_standard, a contiguous op will be added after the instruction, which will recompute shape for later operators.
      2d4dcc47
  19. 22 Nov, 2021 1 commit
  20. 17 Nov, 2021 1 commit
    • Paul Fultz II's avatar
      Handle removing contiguous on operators that use modules (#1005) · 785307c3
      Paul Fultz II authored
      Currently, eliminate_contiguous will never remove contiguous for operators that use module inputs due to the fact that it doesn't pass the module inputs to compute_shape.
      
      - Update to pass the module inputs correctly to compute_shape
      - Fix the overloads of compute_shape so that when passed an empty vector of module inputs it will call the overload without module inputs
      - Add tests with contiguous and pointwise module function.
      - Move add_pointwise function to a seperate header to reuse across different tests
      785307c3
  21. 15 Nov, 2021 1 commit
  22. 11 Nov, 2021 1 commit
    • Paul Fultz II's avatar
      Conditionally enable pointwise fusion (#992) · 157935ff
      Paul Fultz II authored
      This enables the pointwise fusions using the MIGRAPHX_ENABLE_POINTWISE_FUSION env variable. Its disabled by default since MIOpen fusions need to be refactored.
      
      This also adds a compile_ops pass to compile the pointwise modules. All tests except test_gpu_fast_math passes with MIGRAPHX_ENABLE_POINTWISE_FUSION=1 set.
      157935ff
  23. 05 Nov, 2021 1 commit
  24. 28 Oct, 2021 1 commit
  25. 20 Oct, 2021 1 commit
    • Shucai Xiao's avatar
      Roialign (#952) · d7653732
      Shucai Xiao authored
      Implementation of the roialign operator. For now, we have only the ref implementation. When we run a model on the GPU, we fall back the execution to use the ref implementation.
      d7653732
  26. 19 Oct, 2021 1 commit
  27. 18 Oct, 2021 1 commit
  28. 15 Oct, 2021 1 commit
    • Cagri's avatar
      Enabling rocTX markers for migraphx-driver via roctx knob (#946) · 4a71ec8c
      Cagri authored
      
      
      Added features:
      This enables wrapping each migraphx operator with rocTX markers.
      It adds new knob trace to migraphx-driver binary.
      
      Limitation:
      
      rocTX standalone does not output a file, it needs to be used with rocprof. Example command line:
      
      /opt/rocm/bin/rocprof -i ./in.txt --hip-trace --roctx-trace --flush-rate 10ms --timestamp on -d cagri_out --obj-tracking on /opt/rocm/bin/migraphx-driver trace ./resnet50-v2-7.onnx --onnx --gpu
      Co-authored-by: default avatarShucai Xiao <shucai@gmail.com>
      4a71ec8c
  29. 08 Oct, 2021 2 commits
  30. 01 Oct, 2021 1 commit
    • turneram's avatar
      Add multinomial op (#954) · 0b7672d7
      turneram authored
      
      
      Add multinomial op to onnx parser with ref and GPU implementations.
      
      The onnx parser inserts a literal of shape {batch_size, sample_size} with random values in the range [0, 1) and inserts existing ops to compute the cumulative density function. The multinomial operator multiplies the random values by the sum of the CDF and returns the index of the first element of the CDF that is greater than the result, representing samples randomly drawn from [0, class_size) that follow the log-probability distribution.
      
      Resolves #821
      Co-authored-by: default avatarShucai Xiao <shucai@gmail.com>
      0b7672d7
  31. 21 Sep, 2021 1 commit
  32. 17 Sep, 2021 2 commits
    • Paul Fultz II's avatar
      985f58b0
    • Umang Yadav's avatar
      Remove alpha and beta attributes from dot operator (#945) · 9e43cb8b
      Umang Yadav authored
      This PR aims to remove alpha and beta attributes from dot operator completely.
      
      Previously dot operator was defined as C = alpha * A . B + beta * C where * is scalar multiplication and . is dot product or matrix multiplication depending on dimension of the inputs.
      
      Aim is to have the definition of dot operator as C = A . B without having alpha or beta.
      
      In order to achieve the same effect as alpha and beta (1) it multiplies the one of the inputs to the dot operator with alpha value. (2) if beta is present then, multiplies the C with beta and then adds into the output from step 1.
      9e43cb8b
  33. 16 Sep, 2021 1 commit
    • Shucai Xiao's avatar
      Loop operator (#853) · a275f590
      Shucai Xiao authored
      
      
      Add Loop operator for opset version 13.
      Notes: 1) Default max iteration number is 10 if no max iteration number is provided
      2) To change the max iter number, a user can set the max_loop_iterations in the onnx_option struct when parsing a model.
      3) The returned shape of the scan output is from the max_loop_iterations even the actual loop num is less than that. This issue also applies to other operators like NonZero and NonMaxSuppression. A issue #948 is created to track this and to be resolved later.
      Co-authored-by: default avatarPaul <pfultz2@yahoo.com>
      Co-authored-by: default avatarmvermeulen <5479696+mvermeulen@users.noreply.github.com>
      a275f590
  34. 07 Sep, 2021 2 commits