Bug 2334587

Summary: Review Request: amdmigraphx - AMD's graph optimization engine
Product: [Fedora] Fedora Reporter: Tom.Rix
Component: Package ReviewAssignee: Nobody's working on this, feel free to take it <nobody>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: jnolck, package-review
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2336118    
Bug Blocks:    

Description Tom.Rix 2024-12-27 17:12:15 UTC
Spec URL: https://trix.fedorapeople.org/amdmigraphx.spec

AMD MIGraphX is AMD's graph inference engine, which
accelerates machine learning model inference.

This BZ is to track this package and it's dependencies that also need packaging.
Needs at least composable_kernel to be packaged.


Reproducible: Always

Comment 1 Fedora Review Service 2024-12-27 17:12:26 UTC
Cannot find any valid SRPM URL for this ticket. Common causes are:

- You didn't specify `SRPM URL: ...` in the ticket description
  or any of your comments
- The URL schema isn't HTTP or HTTPS
- The SRPM package linked in your URL doesn't match the package name specified
  in the ticket summary


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 2 Jorge Nolck 2025-01-12 23:24:15 UTC
I tried to build this on my machine but got an error. 

CMake Error at /usr/lib64/cmake/composable_kernel/composable_kernelConfig.cmake:34 (include):
  include could not find requested file:

    /usr/lib64/cmake/composable_kernel/composable_kerneljit_libraryTargets.cmake
Call Stack (most recent call first):
  src/targets/gpu/CMakeLists.txt:60 (find_package)


CMake Error at src/targets/gpu/CMakeLists.txt:60 (find_package):
  Found package configuration file:

    /usr/lib64/cmake/composable_kernel/composable_kernelConfig.cmake

  but it set composable_kernel_FOUND to FALSE so package "composable_kernel"
  is considered to be NOT FOUND.  Reason given by package:

  Unsupported component: jit_library

I build composable kernel with the spec and srpm you provided in 2336118

Comment 3 Tom.Rix 2025-01-13 12:23:44 UTC
Thanks for giving this a try.
The spec file listed is a work in progress as a way to show that the dependencies, like ck are needed.
Is there an improvement to the ck package you can recommend ?

Comment 4 Jorge Nolck 2025-01-14 05:08:07 UTC
(In reply to Tom.Rix from comment #3)
> Thanks for giving this a try.
> The spec file listed is a work in progress as a way to show that the
> dependencies, like ck are needed.
> Is there an improvement to the ck package you can recommend ?

Yes, as per the documentation. 

"Additional cmake flags can be used to significantly speed-up the build:

    DTYPES (default is not set) can be set to any subset of "fp64;fp32;fp16;fp8;bf16;int8" to build instances of select data types only. The main default data types are fp32 and fp16; you can safely skip other data types.

    DL_KERNELS (default is OFF) must be set to ON in order to build instances, such as gemm_dl or batched_gemm_multi_d_dl. These instances are useful on architectures like the NAVI2x, as most other platforms have faster instances, such as xdl or wmma, available.

    DPP_KERNELS (default is OFF) must be set to ON in order to build instances, such as gemm_dpp. These instances are useful on architectures like the NAVI2x, as most other platforms have faster instances, such as xdl or wmma, available.

    CK_USE_FP8_ON_UNSUPPORTED_ARCH (default is OFF) must be set to ON in order to build instances, such as gemm_universal, gemm_universal_streamk and gemm_multiply_multiply for fp8 data type for GPU targets which do not have native support for fp8 data type, such as gfx908 or gfx90a. These instances are useful on architectures like the MI100/MI200 for the functional support only."

Maybe an easy way to choose DTYPES: in the spec in order to make compilation time shorter. I'm not sure if you can do this from a spec file, but set up sscache or make a comment about it there. This package takes ages to compile.

Comment 5 Jorge Nolck 2025-01-14 05:12:59 UTC
I kept going. Now I get this. and it does seem like we don't have this package in Fedora yet. 

CMake Error at src/targets/gpu/CMakeLists.txt:250 (find_package):
  Could not find a package configuration file provided by "rocMLIR"
  (requested version 1.0.0) with any of the following names:

    rocMLIRConfig.cmake
    rocmlir-config.cmake

  Add the installation prefix of "rocMLIR" to CMAKE_PREFIX_PATH or set
  "rocMLIR_DIR" to a directory containing one of the above files.  If
  "rocMLIR" provides a separate development package or SDK, be sure it has
  been installed.

Comment 6 Tom.Rix 2025-01-14 12:26:02 UTC
Yes, this package is needed.
I am working on packaging this package now.

Comment 7 Jorge Nolck 2025-01-15 15:38:14 UTC
I don't mean to be annoying, but I kept at this. I built rocmlir as the github instructions point out. 

Like, just switched the /opt/rocm. 

mkdir build
cd build
cmake -G Ninja .. -DBUILD_FAT_LIBROCKCOMPILER=On -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/opt/rocm/llvm/bin/clang -DCMAKE_CXX_COMPILER=/opt/rocm/llvm/bin/clang++
ninja

and then cmake --install . --prefix to a local directory. It looks like this 

include  lib  lib64  share

include include/rocmlir/

build  external  Miir.h  mlir  mlir-c

I did this to point your spec to that. 

rocMLIR_DIR=/home/jnolck/Downloads/software/install/ rpmbuild -bb SPECS/amdmigraphx.spec 

and I think it works. The compilation failed though with:

/home/jnolck/rpmbuild/BUILD/amdmigraphx-6.3.1-build/AMDMIGraphX-rocm-6.3.1/src/include/migraphx/half.hpp:28:10: fatal error: 'half/half.hpp' file not found
   28 | #include <half/half.hpp>
      |          ^~~~~~~~~~~~~~~
1 error generated.

I do have half installed, but it's in /include/half.hpp instead of include/half/half.hpp where that wants it. 

Created a sym link to that. Tried to build, tons of warnings, build failed. Ugh. I'm way over my head here.

Comment 8 Jorge Nolck 2025-01-15 15:55:05 UTC
switched the compiler flag to -DCMAKE_CXX_COMPILER=/usr/lib64/rocm/llvm/bin/clang++. It's building. used  -DCMAKE_CXX_COMPILER=%{rocmllvm_bindir}/clang++ like in your rocmlir.spec file. The script you are using here didn't work for me.

Comment 9 Jorge Nolck 2025-01-16 02:21:54 UTC
RPM build errors:
    Installed (but unpackaged) file(s) found:
   /usr/bin/migraphx-driver
   /usr/bin/migraphx-hiprtc-driver
   /usr/include/migraphx/api/export.h
   /usr/include/migraphx/export.h
   /usr/include/migraphx/gpu/device/export.h
   /usr/include/migraphx/gpu/export.h
   /usr/include/migraphx/migraphx.h
   /usr/include/migraphx/migraphx.hpp
   /usr/include/migraphx/onnx/export.h
   /usr/include/migraphx/py.hpp
   /usr/include/migraphx/py/export.h
   /usr/include/migraphx/ref/export.h
   /usr/include/migraphx/tf/export.h
   /usr/lib/cmake/migraphx/migraphx-config-version.cmake
   /usr/lib/cmake/migraphx/migraphx-config.cmake
   /usr/lib/cmake/migraphx/migraphx-targets-release.cmake
   /usr/lib/cmake/migraphx/migraphx-targets.cmake
   /usr/lib/debug/usr/bin/migraphx-driver-6.3.1-1.fc42.x86_64.debug
   /usr/lib/debug/usr/bin/migraphx-hiprtc-driver-6.3.1-1.fc42.x86_64.debug
   /usr/lib/debug/usr/lib/libmigraphx_c.so.3.0-6.3.1-1.fc42.x86_64.debug
   /usr/lib/debug/usr/lib/libmigraphx_py.so-6.3.1-1.fc42.x86_64.debug
   /usr/lib/debug/usr/lib/libmigraphx_py_3.10.so-6.3.1-1.fc42.x86_64.debug
   /usr/lib/debug/usr/lib/libmigraphx_py_3.11.so-6.3.1-1.fc42.x86_64.debug
   /usr/lib/debug/usr/lib/libmigraphx_py_3.12.so-6.3.1-1.fc42.x86_64.debug
   /usr/lib/debug/usr/lib/migraphx/lib/libmigraphx.so.2011000.0-6.3.1-1.fc42.x86_64.debug
   /usr/lib/debug/usr/lib/migraphx/lib/libmigraphx_device.so.2011000.0-6.3.1-1.fc42.x86_64.debug
   /usr/lib/debug/usr/lib/migraphx/lib/libmigraphx_gpu.so.2011000.0-6.3.1-1.fc42.x86_64.debug
   /usr/lib/debug/usr/lib/migraphx/lib/libmigraphx_onnx.so.2011000.0-6.3.1-1.fc42.x86_64.debug
   /usr/lib/debug/usr/lib/migraphx/lib/libmigraphx_ref.so.2011000.0-6.3.1-1.fc42.x86_64.debug
   /usr/lib/debug/usr/lib/migraphx/lib/libmigraphx_tf.so.2011000.0-6.3.1-1.fc42.x86_64.debug
   /usr/lib/libmigraphx_c.so
   /usr/lib/libmigraphx_c.so.3
   /usr/lib/libmigraphx_c.so.3.0
   /usr/lib/libmigraphx_py.so
   /usr/lib/libmigraphx_py_3.10.so
   /usr/lib/libmigraphx_py_3.11.so
   /usr/lib/libmigraphx_py_3.12.so
   /usr/lib/migraphx.cpython-310-x86_64-linux-gnu.so
   /usr/lib/migraphx.cpython-311-x86_64-linux-gnu.so
   /usr/lib/migraphx.cpython-312-x86_64-linux-gnu.so
   /usr/lib/migraphx/include/migraphx/adjust_allocation.hpp
   /usr/lib/migraphx/include/migraphx/algorithm.hpp
   /usr/lib/migraphx/include/migraphx/allocation_model.hpp
   /usr/lib/migraphx/include/migraphx/analyze_streams.hpp
   /usr/lib/migraphx/include/migraphx/any_ptr.hpp
   /usr/lib/migraphx/include/migraphx/apply_alpha_beta.hpp
   /usr/lib/migraphx/include/migraphx/argument.hpp
   /usr/lib/migraphx/include/migraphx/array.hpp
   /usr/lib/migraphx/include/migraphx/as_number.hpp
   /usr/lib/migraphx/include/migraphx/assert.hpp
   /usr/lib/migraphx/include/migraphx/assignment_options.hpp
   /usr/lib/migraphx/include/migraphx/auto_any_cast.hpp
   /usr/lib/migraphx/include/migraphx/auto_contiguous.hpp
   /usr/lib/migraphx/include/migraphx/auto_register.hpp
   /usr/lib/migraphx/include/migraphx/autocast_fp8.hpp
   /usr/lib/migraphx/include/migraphx/bit_cast.hpp
   /usr/lib/migraphx/include/migraphx/bit_signal.hpp
   /usr/lib/migraphx/include/migraphx/builtin.hpp
   /usr/lib/migraphx/include/migraphx/check_context.hpp
   /usr/lib/migraphx/include/migraphx/check_shapes.hpp
   /usr/lib/migraphx/include/migraphx/clamp.hpp
   /usr/lib/migraphx/include/migraphx/cloneable.hpp
   /usr/lib/migraphx/include/migraphx/common.hpp
   /usr/lib/migraphx/include/migraphx/common_dims.hpp
   /usr/lib/migraphx/include/migraphx/compile_options.hpp
   /usr/lib/migraphx/include/migraphx/compile_src.hpp
   /usr/lib/migraphx/include/migraphx/concat_opt.hpp
   /usr/lib/migraphx/include/migraphx/config.hpp
   /usr/lib/migraphx/include/migraphx/context.hpp
   /usr/lib/migraphx/include/migraphx/convert_to_json.hpp
   /usr/lib/migraphx/include/migraphx/convolution.hpp
   /usr/lib/migraphx/include/migraphx/copy_assignable_function.hpp
   /usr/lib/migraphx/include/migraphx/cpp_generator.hpp
   /usr/lib/migraphx/include/migraphx/dead_code_elimination.hpp
   /usr/lib/migraphx/include/migraphx/dfor.hpp
   /usr/lib/migraphx/include/migraphx/dom_info.hpp
   /usr/lib/migraphx/include/migraphx/dyn_output.hpp
   /usr/lib/migraphx/include/migraphx/dynamic_loader.hpp
   /usr/lib/migraphx/include/migraphx/eliminate_allocation.hpp
   /usr/lib/migraphx/include/migraphx/eliminate_common_subexpression.hpp
   /usr/lib/migraphx/include/migraphx/eliminate_concat.hpp
   /usr/lib/migraphx/include/migraphx/eliminate_contiguous.hpp
   /usr/lib/migraphx/include/migraphx/eliminate_convert.hpp
   /usr/lib/migraphx/include/migraphx/eliminate_data_type.hpp
   /usr/lib/migraphx/include/migraphx/eliminate_identity.hpp
   /usr/lib/migraphx/include/migraphx/eliminate_pad.hpp
   /usr/lib/migraphx/include/migraphx/env.hpp
   /usr/lib/migraphx/include/migraphx/erase.hpp
   /usr/lib/migraphx/include/migraphx/errors.hpp
   /usr/lib/migraphx/include/migraphx/execution_environment.hpp
   /usr/lib/migraphx/include/migraphx/export.h
   /usr/lib/migraphx/include/migraphx/fallthrough.hpp
   /usr/lib/migraphx/include/migraphx/file_buffer.hpp
   /usr/lib/migraphx/include/migraphx/filesystem.hpp
   /usr/lib/migraphx/include/migraphx/fileutils.hpp
   /usr/lib/migraphx/include/migraphx/float8.hpp
   /usr/lib/migraphx/include/migraphx/float8_impl.hpp
   /usr/lib/migraphx/include/migraphx/float_equal.hpp
   /usr/lib/migraphx/include/migraphx/fp8_types.hpp
   /usr/lib/migraphx/include/migraphx/fp_to_double.hpp
   /usr/lib/migraphx/include/migraphx/functional.hpp
   /usr/lib/migraphx/include/migraphx/fuse_concat.hpp
   /usr/lib/migraphx/include/migraphx/fuse_pointwise.hpp
   /usr/lib/migraphx/include/migraphx/fuse_pointwise_reduce.hpp
   /usr/lib/migraphx/include/migraphx/fuse_reduce.hpp
   /usr/lib/migraphx/include/migraphx/gemm.hpp
   /usr/lib/migraphx/include/migraphx/generate.hpp
   /usr/lib/migraphx/include/migraphx/gpu/abs.hpp
   /usr/lib/migraphx/include/migraphx/gpu/allocation_model.hpp
   /usr/lib/migraphx/include/migraphx/gpu/analyze_streams.hpp
   /usr/lib/migraphx/include/migraphx/gpu/argmax.hpp
   /usr/lib/migraphx/include/migraphx/gpu/argmin.hpp
   /usr/lib/migraphx/include/migraphx/gpu/ck.hpp
   /usr/lib/migraphx/include/migraphx/gpu/code_object_op.hpp
   /usr/lib/migraphx/include/migraphx/gpu/compile_gen.hpp
   /usr/lib/migraphx/include/migraphx/gpu/compile_hip.hpp
   /usr/lib/migraphx/include/migraphx/gpu/compile_hip_code_object.hpp
   /usr/lib/migraphx/include/migraphx/gpu/compile_miopen.hpp
   /usr/lib/migraphx/include/migraphx/gpu/compile_ops.hpp
   /usr/lib/migraphx/include/migraphx/gpu/compile_pointwise.hpp
   /usr/lib/migraphx/include/migraphx/gpu/compiler.hpp
   /usr/lib/migraphx/include/migraphx/gpu/concat_gpu_opt.hpp
   /usr/lib/migraphx/include/migraphx/gpu/config.hpp
   /usr/lib/migraphx/include/migraphx/gpu/context.hpp
   /usr/lib/migraphx/include/migraphx/gpu/contiguous.hpp
   /usr/lib/migraphx/include/migraphx/gpu/convolution.hpp
   /usr/lib/migraphx/include/migraphx/gpu/device/arg_op.hpp
   /usr/lib/migraphx/include/migraphx/gpu/device/argmax.hpp
   /usr/lib/migraphx/include/migraphx/gpu/device/argmin.hpp
   /usr/lib/migraphx/include/migraphx/gpu/device/config.hpp
   /usr/lib/migraphx/include/migraphx/gpu/device/contiguous.hpp
   /usr/lib/migraphx/include/migraphx/gpu/device/fill.hpp
   /usr/lib/migraphx/include/migraphx/gpu/device/logsoftmax.hpp
   /usr/lib/migraphx/include/migraphx/gpu/device/multinomial.hpp
   /usr/lib/migraphx/include/migraphx/gpu/device/nonzero.hpp
   /usr/lib/migraphx/include/migraphx/gpu/device/prefix_scan_sum.hpp
   /usr/lib/migraphx/include/migraphx/gpu/device/reverse.hpp
   /usr/lib/migraphx/include/migraphx/gpu/device/rnn_variable_seq_lens.hpp
   /usr/lib/migraphx/include/migraphx/gpu/device/topk.hpp
   /usr/lib/migraphx/include/migraphx/gpu/device_name.hpp
   /usr/lib/migraphx/include/migraphx/gpu/fuse_ck.hpp
   /usr/lib/migraphx/include/migraphx/gpu/fuse_mlir.hpp
   /usr/lib/migraphx/include/migraphx/gpu/fuse_ops.hpp
   /usr/lib/migraphx/include/migraphx/gpu/gemm.hpp
   /usr/lib/migraphx/include/migraphx/gpu/gemm_impl.hpp
   /usr/lib/migraphx/include/migraphx/gpu/gemm_softmax_gemm.hpp
   /usr/lib/migraphx/include/migraphx/gpu/group_query_attention.hpp
   /usr/lib/migraphx/include/migraphx/gpu/hip.hpp
   /usr/lib/migraphx/include/migraphx/gpu/hip_gemm.hpp
   /usr/lib/migraphx/include/migraphx/gpu/hip_gemm_impl.hpp
   /usr/lib/migraphx/include/migraphx/gpu/hipblaslt.hpp
   /usr/lib/migraphx/include/migraphx/gpu/kernel.hpp
   /usr/lib/migraphx/include/migraphx/gpu/logsoftmax.hpp
   /usr/lib/migraphx/include/migraphx/gpu/loop.hpp
   /usr/lib/migraphx/include/migraphx/gpu/lowering.hpp
   /usr/lib/migraphx/include/migraphx/gpu/lrn.hpp
   /usr/lib/migraphx/include/migraphx/gpu/miopen.hpp
   /usr/lib/migraphx/include/migraphx/gpu/mlir.hpp
   /usr/lib/migraphx/include/migraphx/gpu/multinomial.hpp
   /usr/lib/migraphx/include/migraphx/gpu/name.hpp
   /usr/lib/migraphx/include/migraphx/gpu/nonzero.hpp
   /usr/lib/migraphx/include/migraphx/gpu/oper.hpp
   /usr/lib/migraphx/include/migraphx/gpu/pack_args.hpp
   /usr/lib/migraphx/include/migraphx/gpu/perfdb.hpp
   /usr/lib/migraphx/include/migraphx/gpu/pooling.hpp
   /usr/lib/migraphx/include/migraphx/gpu/prefix_scan_sum.hpp
   /usr/lib/migraphx/include/migraphx/gpu/prefuse_ops.hpp
   /usr/lib/migraphx/include/migraphx/gpu/prepare_reduce.hpp
   /usr/lib/migraphx/include/migraphx/gpu/problem_cache.hpp
   /usr/lib/migraphx/include/migraphx/gpu/reduce_op.hpp
   /usr/lib/migraphx/include/migraphx/gpu/reverse.hpp
   /usr/lib/migraphx/include/migraphx/gpu/rnn_variable_seq_lens.hpp
   /usr/lib/migraphx/include/migraphx/gpu/rocblas.hpp
   /usr/lib/migraphx/include/migraphx/gpu/schedule_model.hpp
   /usr/lib/migraphx/include/migraphx/gpu/sync_device.hpp
   /usr/lib/migraphx/include/migraphx/gpu/target.hpp
   /usr/lib/migraphx/include/migraphx/gpu/time_op.hpp
   /usr/lib/migraphx/include/migraphx/gpu/topk.hpp
   /usr/lib/migraphx/include/migraphx/gpu/tuning_config.hpp
   /usr/lib/migraphx/include/migraphx/gpu/write_literals.hpp
   /usr/lib/migraphx/include/migraphx/half.hpp
   /usr/lib/migraphx/include/migraphx/hash.hpp
   /usr/lib/migraphx/include/migraphx/inline_module.hpp
   /usr/lib/migraphx/include/migraphx/insert_pad.hpp
   /usr/lib/migraphx/include/migraphx/instruction.hpp
   /usr/lib/migraphx/include/migraphx/instruction_ref.hpp
   /usr/lib/migraphx/include/migraphx/iota_iterator.hpp
   /usr/lib/migraphx/include/migraphx/iterator.hpp
   /usr/lib/migraphx/include/migraphx/iterator_for.hpp
   /usr/lib/migraphx/include/migraphx/json.hpp
   /usr/lib/migraphx/include/migraphx/layout_convolution.hpp
   /usr/lib/migraphx/include/migraphx/lexing.hpp
   /usr/lib/migraphx/include/migraphx/lifetime.hpp
   /usr/lib/migraphx/include/migraphx/literal.hpp
   /usr/lib/migraphx/include/migraphx/liveness.hpp
   /usr/lib/migraphx/include/migraphx/load_save.hpp
   /usr/lib/migraphx/include/migraphx/make_op.hpp
   /usr/lib/migraphx/include/migraphx/make_shared_array.hpp
   /usr/lib/migraphx/include/migraphx/make_signed.hpp
   /usr/lib/migraphx/include/migraphx/manage_ptr.hpp
   /usr/lib/migraphx/include/migraphx/marker.hpp
   /usr/lib/migraphx/include/migraphx/match/gelu_erf.hpp
   /usr/lib/migraphx/include/migraphx/match/gelu_tanh.hpp
   /usr/lib/migraphx/include/migraphx/match/layernorm.hpp
   /usr/lib/migraphx/include/migraphx/match/softmax.hpp
   /usr/lib/migraphx/include/migraphx/matcher.hpp
   /usr/lib/migraphx/include/migraphx/memory_coloring.hpp
   /usr/lib/migraphx/include/migraphx/module.hpp
   /usr/lib/migraphx/include/migraphx/module_ref.hpp
   /usr/lib/migraphx/include/migraphx/msgpack.hpp
   /usr/lib/migraphx/include/migraphx/normalize_attributes.hpp
   /usr/lib/migraphx/include/migraphx/normalize_ops.hpp
   /usr/lib/migraphx/include/migraphx/onnx.hpp
   /usr/lib/migraphx/include/migraphx/op/abs.hpp
   /usr/lib/migraphx/include/migraphx/op/acos.hpp
   /usr/lib/migraphx/include/migraphx/op/acosh.hpp
   /usr/lib/migraphx/include/migraphx/op/add.hpp
   /usr/lib/migraphx/include/migraphx/op/allocate.hpp
   /usr/lib/migraphx/include/migraphx/op/argmax.hpp
   /usr/lib/migraphx/include/migraphx/op/argmin.hpp
   /usr/lib/migraphx/include/migraphx/op/as_shape.hpp
   /usr/lib/migraphx/include/migraphx/op/asin.hpp
   /usr/lib/migraphx/include/migraphx/op/asinh.hpp
   /usr/lib/migraphx/include/migraphx/op/atan.hpp
   /usr/lib/migraphx/include/migraphx/op/atanh.hpp
   /usr/lib/migraphx/include/migraphx/op/binary.hpp
   /usr/lib/migraphx/include/migraphx/op/bitwise_and.hpp
   /usr/lib/migraphx/include/migraphx/op/broadcast.hpp
   /usr/lib/migraphx/include/migraphx/op/broadcast_for_dot.hpp
   /usr/lib/migraphx/include/migraphx/op/broadcast_with_dims.hpp
   /usr/lib/migraphx/include/migraphx/op/capture.hpp
   /usr/lib/migraphx/include/migraphx/op/ceil.hpp
   /usr/lib/migraphx/include/migraphx/op/clip.hpp
   /usr/lib/migraphx/include/migraphx/op/common.hpp
   /usr/lib/migraphx/include/migraphx/op/concat.hpp
   /usr/lib/migraphx/include/migraphx/op/contiguous.hpp
   /usr/lib/migraphx/include/migraphx/op/convert.hpp
   /usr/lib/migraphx/include/migraphx/op/convolution.hpp
   /usr/lib/migraphx/include/migraphx/op/convolution_backwards.hpp
   /usr/lib/migraphx/include/migraphx/op/cos.hpp
   /usr/lib/migraphx/include/migraphx/op/cosh.hpp
   /usr/lib/migraphx/include/migraphx/op/dequantizelinear.hpp
   /usr/lib/migraphx/include/migraphx/op/dimensions_of.hpp
   /usr/lib/migraphx/include/migraphx/op/div.hpp
   /usr/lib/migraphx/include/migraphx/op/dot.hpp
   /usr/lib/migraphx/include/migraphx/op/elu.hpp
   /usr/lib/migraphx/include/migraphx/op/equal.hpp
   /usr/lib/migraphx/include/migraphx/op/erf.hpp
   /usr/lib/migraphx/include/migraphx/op/exp.hpp
   /usr/lib/migraphx/include/migraphx/op/fill.hpp
   /usr/lib/migraphx/include/migraphx/op/flatten.hpp
   /usr/lib/migraphx/include/migraphx/op/floor.hpp
   /usr/lib/migraphx/include/migraphx/op/fmod.hpp
   /usr/lib/migraphx/include/migraphx/op/gather.hpp
   /usr/lib/migraphx/include/migraphx/op/gathernd.hpp
   /usr/lib/migraphx/include/migraphx/op/get_tuple_elem.hpp
   /usr/lib/migraphx/include/migraphx/op/greater.hpp
   /usr/lib/migraphx/include/migraphx/op/group_query_attention.hpp
   /usr/lib/migraphx/include/migraphx/op/gru.hpp
   /usr/lib/migraphx/include/migraphx/op/identity.hpp
   /usr/lib/migraphx/include/migraphx/op/if_op.hpp
   /usr/lib/migraphx/include/migraphx/op/im2col.hpp
   /usr/lib/migraphx/include/migraphx/op/isinf.hpp
   /usr/lib/migraphx/include/migraphx/op/isnan.hpp
   /usr/lib/migraphx/include/migraphx/op/layout.hpp
   /usr/lib/migraphx/include/migraphx/op/leaky_relu.hpp
   /usr/lib/migraphx/include/migraphx/op/less.hpp
   /usr/lib/migraphx/include/migraphx/op/load.hpp
   /usr/lib/migraphx/include/migraphx/op/log.hpp
   /usr/lib/migraphx/include/migraphx/op/log2.hpp
   /usr/lib/migraphx/include/migraphx/op/logical_and.hpp
   /usr/lib/migraphx/include/migraphx/op/logical_or.hpp
   /usr/lib/migraphx/include/migraphx/op/logical_xor.hpp
   /usr/lib/migraphx/include/migraphx/op/logsoftmax.hpp
   /usr/lib/migraphx/include/migraphx/op/loop.hpp
   /usr/lib/migraphx/include/migraphx/op/lrn.hpp
   /usr/lib/migraphx/include/migraphx/op/lstm.hpp
   /usr/lib/migraphx/include/migraphx/op/max.hpp
   /usr/lib/migraphx/include/migraphx/op/min.hpp
   /usr/lib/migraphx/include/migraphx/op/mod.hpp
   /usr/lib/migraphx/include/migraphx/op/mul.hpp
   /usr/lib/migraphx/include/migraphx/op/multibroadcast.hpp
   /usr/lib/migraphx/include/migraphx/op/multinomial.hpp
   /usr/lib/migraphx/include/migraphx/op/name.hpp
   /usr/lib/migraphx/include/migraphx/op/nearbyint.hpp
   /usr/lib/migraphx/include/migraphx/op/neg.hpp
   /usr/lib/migraphx/include/migraphx/op/nonmaxsuppression.hpp
   /usr/lib/migraphx/include/migraphx/op/nonzero.hpp
   /usr/lib/migraphx/include/migraphx/op/normalize_attribute.hpp
   /usr/lib/migraphx/include/migraphx/op/onehot.hpp
   /usr/lib/migraphx/include/migraphx/op/outline.hpp
   /usr/lib/migraphx/include/migraphx/op/pack_int4.hpp
   /usr/lib/migraphx/include/migraphx/op/pad.hpp
   /usr/lib/migraphx/include/migraphx/op/pointwise.hpp
   /usr/lib/migraphx/include/migraphx/op/pooling.hpp
   /usr/lib/migraphx/include/migraphx/op/pow.hpp
   /usr/lib/migraphx/include/migraphx/op/prefix_scan_op.hpp
   /usr/lib/migraphx/include/migraphx/op/prefix_scan_sum.hpp
   /usr/lib/migraphx/include/migraphx/op/prelu.hpp
   /usr/lib/migraphx/include/migraphx/op/quant_convolution.hpp
   /usr/lib/migraphx/include/migraphx/op/quant_dot.hpp
   /usr/lib/migraphx/include/migraphx/op/quantizelinear.hpp
   /usr/lib/migraphx/include/migraphx/op/random_seed.hpp
   /usr/lib/migraphx/include/migraphx/op/random_uniform.hpp
   /usr/lib/migraphx/include/migraphx/op/recip.hpp
   /usr/lib/migraphx/include/migraphx/op/reduce_all.hpp
   /usr/lib/migraphx/include/migraphx/op/reduce_any.hpp
   /usr/lib/migraphx/include/migraphx/op/reduce_max.hpp
   /usr/lib/migraphx/include/migraphx/op/reduce_mean.hpp
   /usr/lib/migraphx/include/migraphx/op/reduce_min.hpp
   /usr/lib/migraphx/include/migraphx/op/reduce_op.hpp
   /usr/lib/migraphx/include/migraphx/op/reduce_prod.hpp
   /usr/lib/migraphx/include/migraphx/op/reduce_sum.hpp
   /usr/lib/migraphx/include/migraphx/op/relu.hpp
   /usr/lib/migraphx/include/migraphx/op/reshape.hpp
   /usr/lib/migraphx/include/migraphx/op/reshape_lazy.hpp
   /usr/lib/migraphx/include/migraphx/op/resize.hpp
   /usr/lib/migraphx/include/migraphx/op/reverse.hpp
   /usr/lib/migraphx/include/migraphx/op/rnn.hpp
   /usr/lib/migraphx/include/migraphx/op/rnn_last_cell_output.hpp
   /usr/lib/migraphx/include/migraphx/op/rnn_last_hs_output.hpp
   /usr/lib/migraphx/include/migraphx/op/rnn_var_sl_last_output.hpp
   /usr/lib/migraphx/include/migraphx/op/rnn_variable_seq_lens.hpp
   /usr/lib/migraphx/include/migraphx/op/roialign.hpp
   /usr/lib/migraphx/include/migraphx/op/rsqrt.hpp
   /usr/lib/migraphx/include/migraphx/op/run_on_target.hpp
   /usr/lib/migraphx/include/migraphx/op/scalar.hpp
   /usr/lib/migraphx/include/migraphx/op/scan_slice.hpp
   /usr/lib/migraphx/include/migraphx/op/scatter_add.hpp
   /usr/lib/migraphx/include/migraphx/op/scatter_max.hpp
   /usr/lib/migraphx/include/migraphx/op/scatter_min.hpp
   /usr/lib/migraphx/include/migraphx/op/scatter_mul.hpp
   /usr/lib/migraphx/include/migraphx/op/scatter_none.hpp
   /usr/lib/migraphx/include/migraphx/op/scatter_op.hpp
   /usr/lib/migraphx/include/migraphx/op/scatternd_add.hpp
   /usr/lib/migraphx/include/migraphx/op/scatternd_max.hpp
   /usr/lib/migraphx/include/migraphx/op/scatternd_min.hpp
   /usr/lib/migraphx/include/migraphx/op/scatternd_mul.hpp
   /usr/lib/migraphx/include/migraphx/op/scatternd_none.hpp
   /usr/lib/migraphx/include/migraphx/op/scatternd_op.hpp
   /usr/lib/migraphx/include/migraphx/op/select_module.hpp
   /usr/lib/migraphx/include/migraphx/op/sigmoid.hpp
   /usr/lib/migraphx/include/migraphx/op/sign.hpp
   /usr/lib/migraphx/include/migraphx/op/sin.hpp
   /usr/lib/migraphx/include/migraphx/op/sinh.hpp
   /usr/lib/migraphx/include/migraphx/op/slice.hpp
   /usr/lib/migraphx/include/migraphx/op/softmax.hpp
   /usr/lib/migraphx/include/migraphx/op/sqdiff.hpp
   /usr/lib/migraphx/include/migraphx/op/sqrt.hpp
   /usr/lib/migraphx/include/migraphx/op/squeeze.hpp
   /usr/lib/migraphx/include/migraphx/op/step.hpp
   /usr/lib/migraphx/include/migraphx/op/sub.hpp
   /usr/lib/migraphx/include/migraphx/op/tan.hpp
   /usr/lib/migraphx/include/migraphx/op/tanh.hpp
   /usr/lib/migraphx/include/migraphx/op/topk.hpp
   /usr/lib/migraphx/include/migraphx/op/transpose.hpp
   /usr/lib/migraphx/include/migraphx/op/unary.hpp
   /usr/lib/migraphx/include/migraphx/op/unary_not.hpp
   /usr/lib/migraphx/include/migraphx/op/undefined.hpp
   /usr/lib/migraphx/include/migraphx/op/unique.hpp
   /usr/lib/migraphx/include/migraphx/op/unknown.hpp
   /usr/lib/migraphx/include/migraphx/op/unpack_int4.hpp
   /usr/lib/migraphx/include/migraphx/op/unsqueeze.hpp
   /usr/lib/migraphx/include/migraphx/op/where.hpp
   /usr/lib/migraphx/include/migraphx/operation.hpp
   /usr/lib/migraphx/include/migraphx/operators.hpp
   /usr/lib/migraphx/include/migraphx/optimize_module.hpp
   /usr/lib/migraphx/include/migraphx/optional.hpp
   /usr/lib/migraphx/include/migraphx/output_iterator.hpp
   /usr/lib/migraphx/include/migraphx/pad_calc.hpp
   /usr/lib/migraphx/include/migraphx/par.hpp
   /usr/lib/migraphx/include/migraphx/par_dfor.hpp
   /usr/lib/migraphx/include/migraphx/par_for.hpp
   /usr/lib/migraphx/include/migraphx/param_utils.hpp
   /usr/lib/migraphx/include/migraphx/pass.hpp
   /usr/lib/migraphx/include/migraphx/pass_manager.hpp
   /usr/lib/migraphx/include/migraphx/permutation.hpp
   /usr/lib/migraphx/include/migraphx/preallocate_param.hpp
   /usr/lib/migraphx/include/migraphx/process.hpp
   /usr/lib/migraphx/include/migraphx/program.hpp
   /usr/lib/migraphx/include/migraphx/promote_literals.hpp
   /usr/lib/migraphx/include/migraphx/propagate_constant.hpp
   /usr/lib/migraphx/include/migraphx/quantization.hpp
   /usr/lib/migraphx/include/migraphx/quantize_8bits.hpp
   /usr/lib/migraphx/include/migraphx/quantize_fp16.hpp
   /usr/lib/migraphx/include/migraphx/quantize_int4.hpp
   /usr/lib/migraphx/include/migraphx/ranges.hpp
   /usr/lib/migraphx/include/migraphx/rank.hpp
   /usr/lib/migraphx/include/migraphx/raw_data.hpp
   /usr/lib/migraphx/include/migraphx/reduce_dims.hpp
   /usr/lib/migraphx/include/migraphx/ref/context.hpp
   /usr/lib/migraphx/include/migraphx/ref/lowering.hpp
   /usr/lib/migraphx/include/migraphx/ref/target.hpp
   /usr/lib/migraphx/include/migraphx/reflect.hpp
   /usr/lib/migraphx/include/migraphx/register_op.hpp
   /usr/lib/migraphx/include/migraphx/register_target.hpp
   /usr/lib/migraphx/include/migraphx/replace_allocate.hpp
   /usr/lib/migraphx/include/migraphx/requires.hpp
   /usr/lib/migraphx/include/migraphx/rewrite_gelu.hpp
   /usr/lib/migraphx/include/migraphx/rewrite_low_precision.hpp
   /usr/lib/migraphx/include/migraphx/rewrite_pooling.hpp
   /usr/lib/migraphx/include/migraphx/rewrite_quantization.hpp
   /usr/lib/migraphx/include/migraphx/rewrite_reduce.hpp
   /usr/lib/migraphx/include/migraphx/rewrite_reshapes.hpp
   /usr/lib/migraphx/include/migraphx/rewrite_rnn.hpp
   /usr/lib/migraphx/include/migraphx/run_loop.hpp
   /usr/lib/migraphx/include/migraphx/sat_ops.hpp
   /usr/lib/migraphx/include/migraphx/schedule.hpp
   /usr/lib/migraphx/include/migraphx/schedule_model.hpp
   /usr/lib/migraphx/include/migraphx/serialize.hpp
   /usr/lib/migraphx/include/migraphx/shape.hpp
   /usr/lib/migraphx/include/migraphx/shape_for_each.hpp
   /usr/lib/migraphx/include/migraphx/shape_transform_descriptor.hpp
   /usr/lib/migraphx/include/migraphx/simple_par_for.hpp
   /usr/lib/migraphx/include/migraphx/simplify_algebra.hpp
   /usr/lib/migraphx/include/migraphx/simplify_dyn_ops.hpp
   /usr/lib/migraphx/include/migraphx/simplify_qdq.hpp
   /usr/lib/migraphx/include/migraphx/simplify_reshapes.hpp
   /usr/lib/migraphx/include/migraphx/source_location.hpp
   /usr/lib/migraphx/include/migraphx/split_reduce.hpp
   /usr/lib/migraphx/include/migraphx/split_single_dyn_dim.hpp
   /usr/lib/migraphx/include/migraphx/sqlite.hpp
   /usr/lib/migraphx/include/migraphx/stream_model.hpp
   /usr/lib/migraphx/include/migraphx/streamutils.hpp
   /usr/lib/migraphx/include/migraphx/stringutils.hpp
   /usr/lib/migraphx/include/migraphx/support_metric.hpp
   /usr/lib/migraphx/include/migraphx/supported_segments.hpp
   /usr/lib/migraphx/include/migraphx/target.hpp
   /usr/lib/migraphx/include/migraphx/target_assignments.hpp
   /usr/lib/migraphx/include/migraphx/tensor_view.hpp
   /usr/lib/migraphx/include/migraphx/tf.hpp
   /usr/lib/migraphx/include/migraphx/time.hpp
   /usr/lib/migraphx/include/migraphx/tmp_dir.hpp
   /usr/lib/migraphx/include/migraphx/tracer.hpp
   /usr/lib/migraphx/include/migraphx/tune_axis.hpp
   /usr/lib/migraphx/include/migraphx/type_name.hpp
   /usr/lib/migraphx/include/migraphx/type_traits.hpp
   /usr/lib/migraphx/include/migraphx/value.hpp
   /usr/lib/migraphx/include/migraphx/verify.hpp
   /usr/lib/migraphx/include/migraphx/verify_args.hpp
   /usr/lib/migraphx/include/migraphx/version.h
   /usr/lib/migraphx/lib/libmigraphx.so
   /usr/lib/migraphx/lib/libmigraphx.so.2011000
   /usr/lib/migraphx/lib/libmigraphx.so.2011000.0
   /usr/lib/migraphx/lib/libmigraphx_device.so
   /usr/lib/migraphx/lib/libmigraphx_device.so.2011000
   /usr/lib/migraphx/lib/libmigraphx_device.so.2011000.0
   /usr/lib/migraphx/lib/libmigraphx_gpu.so
   /usr/lib/migraphx/lib/libmigraphx_gpu.so.2011000
   /usr/lib/migraphx/lib/libmigraphx_gpu.so.2011000.0
   /usr/lib/migraphx/lib/libmigraphx_onnx.so
   /usr/lib/migraphx/lib/libmigraphx_onnx.so.2011000
   /usr/lib/migraphx/lib/libmigraphx_onnx.so.2011000.0
   /usr/lib/migraphx/lib/libmigraphx_ref.so
   /usr/lib/migraphx/lib/libmigraphx_ref.so.2011000
   /usr/lib/migraphx/lib/libmigraphx_ref.so.2011000.0
   /usr/lib/migraphx/lib/libmigraphx_tf.so
   /usr/lib/migraphx/lib/libmigraphx_tf.so.2011000
   /usr/lib/migraphx/lib/libmigraphx_tf.so.2011000.0
   /usr/share/doc/migraphx/LICENSE