diff --git a/CHANGELOG.md b/CHANGELOG.md index dc183f127a1..30a09d00584 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,49 @@ Full documentation for MIGraphX is available at [MIGraphX Documentation](https://rocmdocs.amd.com/projects/AMDMIGraphX/en/latest/). +## MIGraphX 2.8 for ROCm 6.0.0 +### Added +- Support for MI300 GPUs +- Support for TorchMIGraphX via PyTorch +- Boosted overall performance by integrating rocMLIR +- INT8 support for ONNX Runtime +- Support for ONNX version 1.14.1 +- Added operators Qlinearadd, QlinearGlobalAveragePool, Qlinearconv, Shrink, CastLike, and RandomUniform operators +- Added an error message when gpu_targets is not set when compiling migraphx +- Added parameter to set tolerances with migraphx-driver verify +- Added support for MXR files >4 GB +- Added MIGRAPHX_TRACE_MLIR flag +- BETA added capability to use ROCm Composable Kernels via environment variable MIGRAPHX_ENABLE_CK=1 + +### Optimizations +- Improved performance support for INT8 +- Improved time percision while benchmarking candidate kernels from CK or MLIR +- Remove contiguous from reshape parsing +- Updated ConstantOfShape operator to support Dynamic Batch +- Simplifies dynamic shapes related operators to their static versions if possible +- Improved debugging tools for accuracy issues +- Print warning about miopen_fusion while generating mxr +- General reduction in system memory usage during model compilation +- Created additional fusion opportunities during model compilation +- Improved debugging for matchers +- Improved general debug messages + +### Fixed +- Fixed scatter operator for nonstandard shapes with some models from ONNX Model Zoo +- Provided a compile option to improve accuracy of some models by disabling Fast-Math +- Improved layernorm + pointwise fusion matching to ignore arguments order +- Fixed accuracy issue with ROIAlign operator +- Fixed Trilu operator computation logic +- Fixed support for the DETR model + +### Changed +- Changed migraphx version to 2.8 +- Extracted test packages as its own separate deb file when building migraphx from source + +### Removed +- Removed building Python 2.7 bindings + + ## MIGraphX 2.7 for ROCm 5.7.0 ### Added - Enabled hipRTC to not require dev packages for migraphx runtime and allow the ROCm install to be in a different directory than it was during build time diff --git a/src/driver/CMakeLists.txt b/src/driver/CMakeLists.txt index d1bb44d55f4..1f835a036a4 100755 --- a/src/driver/CMakeLists.txt +++ b/src/driver/CMakeLists.txt @@ -55,6 +55,9 @@ if(MIGRAPHX_ENABLE_PYTHON) target_compile_definitions(driver PRIVATE MIGRAPHX_ENABLE_PYTHON) endif() -rocm_install_targets( - TARGETS driver -) +# For ASAN Enabled Build no need to package binaries +if( NOT ENABLE_ASAN_PACKAGING ) + rocm_install_targets( + TARGETS driver + ) +endif() diff --git a/src/onnx/parse_slice.cpp b/src/onnx/parse_slice.cpp index 7287f6479be..9f001efc747 100644 --- a/src/onnx/parse_slice.cpp +++ b/src/onnx/parse_slice.cpp @@ -137,7 +137,7 @@ struct parse_slice : op_parser sd.always_insert(args.at(0)); // If axes arg is not given, the default is all of them. - if(sd.op.axes.empty() and sd.op_args.size() < 3) + if(sd.op.axes.empty() and sd.op_args.size() <= 3) { std::vector axes(args[0]->get_shape().ndim()); std::iota(axes.begin(), axes.end(), int64_t{0}); diff --git a/src/program.cpp b/src/program.cpp index 4efe90ed8ed..72644b28745 100644 --- a/src/program.cpp +++ b/src/program.cpp @@ -936,7 +936,7 @@ void program::perf_report(std::ostream& os, os << std::endl; os << "Batch size: " << batch << std::endl; - os << "Rate: " << rate * batch << "/sec" << std::endl; + os << "Rate: " << rate * batch << " inferences/sec" << std::endl; os << "Total time: " << total_time << "ms" << std::endl; os << "Total instructions time: " << total_instruction_time << "ms" << std::endl; os << "Overhead time: " << overhead_time << "ms" diff --git a/src/targets/gpu/fuse_mlir.cpp b/src/targets/gpu/fuse_mlir.cpp index b393f415532..33d0e5dc0ae 100644 --- a/src/targets/gpu/fuse_mlir.cpp +++ b/src/targets/gpu/fuse_mlir.cpp @@ -361,7 +361,8 @@ struct find_mlir_standalone_op return; static size_t counter = 0; - module_ref mm = mpm.create_module("mlir_" + std::to_string(counter++)); + module_ref mm = + mpm.create_module("mlir_" + conv_based_op->name() + std::to_string(counter++)); mm->set_bypass(); auto [anchor_op, top_inputs] = fuse_input_ops_and_gemm_based_op(mm, conv_based_op); mm->add_return({anchor_op}); diff --git a/src/targets/gpu/hiprtc/CMakeLists.txt b/src/targets/gpu/hiprtc/CMakeLists.txt index 598816e2700..e9fa67ba15b 100644 --- a/src/targets/gpu/hiprtc/CMakeLists.txt +++ b/src/targets/gpu/hiprtc/CMakeLists.txt @@ -28,6 +28,10 @@ add_executable(migraphx-hiprtc-driver rocm_clang_tidy_check(migraphx-hiprtc-driver) target_link_libraries(migraphx-hiprtc-driver PRIVATE migraphx_gpu) add_dependencies(migraphx_all_targets migraphx-hiprtc-driver) -rocm_install_targets( - TARGETS migraphx-hiprtc-driver -) + +# For ASAN Enabled Build no need to package binaries +if( NOT ENABLE_ASAN_PACKAGING ) + rocm_install_targets( + TARGETS migraphx-hiprtc-driver + ) +endif() diff --git a/test/py/requirements.txt b/test/py/requirements.txt index dda4d2dc228..83194a34017 100644 --- a/test/py/requirements.txt +++ b/test/py/requirements.txt @@ -22,4 +22,4 @@ # THE SOFTWARE. ##################################################################################### -numpy==1.21.6 \ No newline at end of file +numpy==1.19.5