- 25 Feb, 2022 1 commit
-
-
Paul Fultz II authored
wrapped in a any_ptr class so the type can be checked at runtime for a mismatch.
-
- 24 Feb, 2022 1 commit
-
-
Paul Fultz II authored
Make doc/CMakeLists.txt standalone Switch to use rocm-cmake modules for document generation Add CONFIGURE_DEPENDS to file(GLOB) so it will update without an explicit cmake run Add STRINGS property for build type to make it easier to switch build types with ccmake Various fixes and improvements
-
- 23 Feb, 2022 1 commit
-
-
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.
-
- 16 Feb, 2022 2 commits
-
-
Umang Yadav authored
Support nonstandard shapes like slice, broadcast and transpose for the unsqueeze op
-
kahmed10 authored
-
- 11 Feb, 2022 1 commit
-
-
kahmed10 authored
* add submodule test * remove for loop * simplify reshape test
-
- 09 Feb, 2022 2 commits
-
-
Paul Fultz II authored
There is now a MIGRAPHX_DISABLE_POINTWISE_FUSION to disable it
-
Umang Yadav authored
Support slice, broadcast and transpose shapes for the squeeze op.
-
- 08 Feb, 2022 1 commit
-
-
Charlie Lin authored
Changed MessagePack file extensions to mxr.
-
- 31 Jan, 2022 1 commit
-
-
Shucai Xiao authored
* use the parse_resize to parse the upsample operator
-
- 28 Jan, 2022 1 commit
-
-
turneram authored
* Add mean op onnx parser and unit tests * Refactor parse_mean to use add_broadcastable_binary_op
-
- 27 Jan, 2022 1 commit
-
-
Umang Yadav authored
allow nonstd shape for the arg ops, non-standard shapes include broadcast, slice and transpose
-
- 26 Jan, 2022 1 commit
-
-
turneram authored
Add HardSwish to HardSigmoid parser HardSwish formula is y = x * HardSigmoid<alpha=1/6, beta=0.5>(x) HardSigmoid parser sets alpha to 1/6 and adds the mul instruction if op name is HardSwish Resolves #1062
-
- 21 Jan, 2022 3 commits
- 20 Jan, 2022 1 commit
-
-
Paul Fultz II authored
-
- 17 Jan, 2022 1 commit
-
-
Paul Fultz II authored
Make clip a pointwise op
-
- 11 Jan, 2022 1 commit
-
-
turneram authored
Add HardSigmoid onnx parser and unit tests Produces mathematical equivalent to ONNX operator through combination of existing pointwise ops. Resolves #1028
-
- 05 Jan, 2022 1 commit
-
-
turneram authored
Fix bug caused by casting time seed to float
-
- 09 Dec, 2021 1 commit
-
-
Paul Fultz II authored
Fuse last instruction in fuse_pointwise This is also fixes a bug with using an invalid iterator.
-
- 02 Dec, 2021 1 commit
-
-
Paul Fultz II authored
Fix pointwise compile error with half sqrt
-
- 25 Nov, 2021 1 commit
-
-
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.
-
- 17 Nov, 2021 1 commit
-
-
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
-
- 15 Nov, 2021 1 commit
-
-
kahmed10 authored
Currently we have the option of passing in --batch to the driver to change the batch size when the model has a dynamic dim value. We can use this flag to adjust the perf report's rate.
-
- 11 Nov, 2021 1 commit
-
-
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.
-
- 10 Nov, 2021 1 commit
-
-
Shucai Xiao authored
This PR is to turn on a few gemm unit test with int8 input datatype. Before rocm4.4, int8 input data type requires matrix size to be no less than 4 in rocblas implementation. Because of this limitation, we turned off a few gemm unit tests with int8 input data type. This limitation is removed in rocm4.4, so after we upgrade to rocm4.5, we can turn on these unit tests. Also we change to unit test conv_bn_add to adding instructions to module instead of program. Co-authored-by:kahmed10 <15948690+kahmed10@users.noreply.github.com>
-
- 05 Nov, 2021 1 commit
-
-
kahmed10 authored
Moving our Docker file from ROCm 4.3 to 4.5 Add Navi base GPUs in to the CI infrastructure
-
- 03 Nov, 2021 1 commit
-
-
Umang Yadav authored
In migraphx, DepthToSpace (d2s) is implemented as reshape --> transpose --> contiguous --> reshape. If there is trailing binary pointwise operator after depthToSpace then, migraphx can move binary operator before contiguous and reshape of the depthtospce. So, it becomes reshape-->transpose-->binary_op-->contiguous-->reshape. Explicit contiguous wouldn't be required since binary_op outputs standard shape. So, it becomes reshape-->transpose-->binary-->reshape. simplify_reshapes already has matcher that can do this transformation. This PR adds test for cases like depthtospace +binary op. solves #905
-
- 28 Oct, 2021 3 commits
-
-
Shucai Xiao authored
This PR is the ref implementation of the nonmaxsuppression operator. It always returns the max possible output shape, which is the problem tracked in issue #948.
-
Umang Yadav authored
In migraphx, DepthToSpace (d2s) is implemented as reshape --> transpose --> contiguous --> reshape. This PR adds matcher to find d2s + unary pointwise ops. Application of the matcher moves the pointwise unary operation before the contiguous and reshape of the d2s. So it becomes reshape --> transpose --> unary --> contiguous --> reshape. Motivation is that, later pointwise module would be created out of unary --> contiguous --> reshape. Codegen for this pointwise module can write out buffer such that explicit contiguous and reshape wouldn't be required. This transformation is not always guaranteed to improve performance, since unary op will operate on non-standard shape. So, we would need some tuning mechanism to make decision. #905 pending PR for binary operations.
-
Shucai Xiao authored
GPU implementation of the roialign operator, using the jit approach to reduce the lib size.
-
- 20 Oct, 2021 1 commit
-
-
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.
-
- 19 Oct, 2021 1 commit
-
-
Paul Fultz II authored
Adds a pass to fuse pointwise operators into one "pointwsie" op that has a submodule which does the calculation.
-
- 18 Oct, 2021 2 commits
-
-
Paul Fultz II authored
Designed to allow a user to format the values needed for the json_string: migraphx::operation("reduce_mean", "{axes : [%i, %i, %i, %i]}", axes[0], axes[1], axes[2], axes[3]) instead of needing to use string concat or stringstream -
Paul Fultz II authored
Enable a cppcheck rule to catch these redundant casts in the future
-
- 15 Oct, 2021 1 commit
-
-
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:Shucai Xiao <shucai@gmail.com>
-
- 14 Oct, 2021 1 commit
-
-
Umang Yadav authored
Inverse of DepthToSpace op Co-authored-by:Shucai Xiao <shucai@gmail.com>
-
- 08 Oct, 2021 2 commits
-
-
Shucai Xiao authored
This PR is for the nonzero operator with static output shape. Co-authored-by:
Paul Fultz II <pfultz2@yahoo.com> Co-authored-by:
mvermeulen <5479696+mvermeulen@users.noreply.github.com>
-
Umang Yadav authored
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.
-