Skip to content

[REFACTOR][RUNTIME] Phase out legacy contrib runtime backends#18813

Merged
tlopex merged 2 commits into
apache:mainfrom
tqchen:phase-out-legacy-runtimes
Feb 23, 2026
Merged

[REFACTOR][RUNTIME] Phase out legacy contrib runtime backends#18813
tlopex merged 2 commits into
apache:mainfrom
tqchen:phase-out-legacy-runtimes

Conversation

@tqchen

@tqchen tqchen commented Feb 23, 2026

Copy link
Copy Markdown
Member

This PR removes legacy runtime contrib backends that have no existing compiler backend,
no active development. They can always be brought back in future in case we find there is a need

This PR removes 9 stale/dead contrib runtime backends that have no active
development or test coverage:

Tier 4 (dead code): arm_compute_lib, bnns, edgetpu, tflite
Tier 3 (stale): miopen, mrvl, rocblas, mps, papi

For each backend, removes: src/runtime/contrib/<name>/, cmake modules,
CMake config options, Python contrib wrappers, test files, and include
headers. Also cleans up references in LibInfo, ROCM.cmake, Metal.cmake,
FindROCM.cmake, and the Python profiling module.
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @tqchen, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request undertakes a significant refactoring effort by phasing out a collection of legacy runtime backends. The primary goal is to reduce technical debt and simplify the codebase by removing components that are no longer actively developed, lack compiler integration, or have minimal test coverage. This cleanup impacts various parts of the system, from build configurations to documentation, ensuring a more focused and maintainable project moving forward.

Highlights

  • Legacy Backend Removal: Removed several legacy runtime contrib backends that lacked compiler support, active development, or sufficient test coverage, including Arm Compute Library (ACL), Apple BNNS, Google Edge TPU, TensorFlow Lite Runtime, MIOpen, MetalPerformanceShaders (MPS), Marvell (MRVL), ROCBLAS, and PAPI.
  • Codebase Cleanup: Eliminated associated C++ runtime code, CMake modules and configuration entries, Python contrib modules, test files, and documentation references for the deprecated backends, reducing maintenance overhead and streamlining the project.
  • Build System Simplification: Streamlined CMake configuration by removing build options and includes for the phased-out backends, leading to a cleaner and potentially faster build process.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • CMakeLists.txt
    • Removed tvm_option entries for PAPI, MIOpen, ROCBLAS, TFLite, BNNS, Arm Compute Lib, and MRVL.
    • Removed include directives for TFLite, BNNS, ArmComputeLib, Mrvl, and PAPI CMake modules.
  • cmake/config.cmake
    • Removed configuration variables and their comments for USE_TFLITE, USE_TENSORFLOW_PATH, USE_FLATBUFFERS_PATH, USE_EDGETPU, USE_MIOPEN, USE_MPS, USE_ROCBLAS, USE_ARM_COMPUTE_LIB, USE_ARM_COMPUTE_LIB_GRAPH_EXECUTOR, USE_MRVL, USE_BNNS, and USE_PAPI.
  • cmake/modules/LibInfo.cmake
    • Removed TVM_INFO variables related to Arm Compute Lib, BNNS, MIOpen, MRVL, PAPI, ROCBLAS, TFLite, and TensorFlow path from the generated library information.
  • cmake/modules/Metal.cmake
    • Removed conditional compilation logic for MetalPerformanceShaders (MPS).
  • cmake/modules/ROCM.cmake
    • Removed conditional compilation logic for MIOpen and ROCBLAS.
  • cmake/modules/contrib/ArmComputeLib.cmake
    • Removed the entire CMake module for Arm Compute Library.
  • cmake/modules/contrib/BNNS.cmake
    • Removed the entire CMake module for BNNS.
  • cmake/modules/contrib/Mrvl.cmake
    • Removed the entire CMake module for Marvell.
  • cmake/modules/contrib/PAPI.cmake
    • Removed the entire CMake module for PAPI.
  • cmake/modules/contrib/TFLite.cmake
    • Removed the entire CMake module for TFLite.
  • cmake/utils/FindROCM.cmake
    • Removed variables and status messages for ROCM_MIOPEN_LIBRARY and ROCM_ROCBLAS_LIBRARY.
  • docs/reference/api/python/contrib.rst
    • Removed documentation references for tvm.contrib.miopen and tvm.contrib.rocblas.
  • include/tvm/runtime/contrib/papi.h
    • Removed the PAPI metric collector header file.
  • include/tvm/topi/contrib/rocblas.h
    • Removed the rocBLAS external function interface header file.
  • python/tvm/contrib/miopen.py
    • Removed the entire Python module for MIOpen.
  • python/tvm/contrib/mps.py
    • Removed the entire Python module for MPS.
  • python/tvm/contrib/mrvl.py
    • Removed the entire Python module for Marvell.
  • python/tvm/contrib/rocblas.py
    • Removed the entire Python module for rocBLAS.
  • python/tvm/contrib/tflite_runtime.py
    • Removed the entire Python module for TFLite runtime.
  • python/tvm/runtime/profiling/init.py
    • Removed the PAPIMetricCollector class and related FFI checks.
  • python/tvm/testing/utils.py
    • Removed the requires_mrvl feature flag.
  • src/runtime/contrib/arm_compute_lib/acl_allocator.cc
    • Removed the ACL allocator implementation file.
  • src/runtime/contrib/arm_compute_lib/acl_allocator.h
    • Removed the ACL allocator header file.
  • src/runtime/contrib/arm_compute_lib/acl_runtime.cc
    • Removed the ACL runtime implementation file.
  • src/runtime/contrib/arm_compute_lib/acl_utils.cc
    • Removed the ACL utility functions implementation file.
  • src/runtime/contrib/arm_compute_lib/acl_utils.h
    • Removed the ACL utility functions header file.
  • src/runtime/contrib/bnns/bnns_json_runtime.cc
    • Removed the BNNS JSON runtime implementation file.
  • src/runtime/contrib/bnns/bnns_wrp.h
    • Removed the BNNS wrapper header file.
  • src/runtime/contrib/edgetpu/edgetpu_runtime.cc
    • Removed the Edge TPU runtime implementation file.
  • src/runtime/contrib/edgetpu/edgetpu_runtime.h
    • Removed the Edge TPU runtime header file.
  • src/runtime/contrib/miopen/conv_forward.cc
    • Removed the MIOpen convolution forward implementation file.
  • src/runtime/contrib/miopen/miopen_utils.cc
    • Removed the MIOpen utility functions implementation file.
  • src/runtime/contrib/miopen/miopen_utils.h
    • Removed the MIOpen utility functions header file.
  • src/runtime/contrib/miopen/softmax.cc
    • Removed the MIOpen softmax implementation file.
  • src/runtime/contrib/mps/conv.mm
    • Removed the MPS convolution implementation file.
  • src/runtime/contrib/mps/gemm.mm
    • Removed the MPS GEMM implementation file.
  • src/runtime/contrib/mps/mps_utils.h
    • Removed the MPS utility functions header file.
  • src/runtime/contrib/mps/mps_utils.mm
    • Removed the MPS utility functions implementation file.
  • src/runtime/contrib/mrvl/mrvl_base64.h
    • Removed the Marvell base64 utility header file.
  • src/runtime/contrib/mrvl/mrvl_hw_runtime.cc
    • Removed the Marvell hardware runtime implementation file.
  • src/runtime/contrib/mrvl/mrvl_runtime.cc
    • Removed the Marvell software simulator runtime implementation file.
  • src/runtime/contrib/mrvl/mrvl_sw_runtime_lib.cc
    • Removed the Marvell software simulator library implementation file.
  • src/runtime/contrib/mrvl/mrvl_sw_runtime_lib.h
    • Removed the Marvell software simulator library header file.
  • src/runtime/contrib/papi/papi.cc
    • Removed the PAPI metric collector implementation file.
  • src/runtime/contrib/rocblas/rocblas.cc
    • Removed the rocBLAS implementation file.
  • src/runtime/contrib/tflite/tflite_runtime.cc
    • Removed the TFLite runtime implementation file.
  • src/runtime/contrib/tflite/tflite_runtime.h
    • Removed the TFLite runtime header file.
  • src/support/libinfo.cc
    • Removed TVM_INFO_USE_MRVL, TVM_INFO_USE_MIOPEN, TVM_INFO_USE_ROCBLAS, TVM_INFO_USE_TFLITE, TVM_INFO_USE_TENSORFLOW_PATH, TVM_INFO_USE_ARM_COMPUTE_LIB, and TVM_INFO_USE_ARM_COMPUTE_LIB_GRAPH_EXECUTOR definitions and their entries from GetLibInfo.
  • tests/python/contrib/test_edgetpu_runtime.py
    • Removed the Edge TPU runtime Python test file.
  • tests/python/contrib/test_mps.py
    • Removed the MPS Python test file.
  • tests/python/contrib/test_rocblas.py
    • Removed the rocBLAS Python test file.
  • tests/python/contrib/test_tflite_runtime.py
    • Removed the TFLite runtime Python test file.
Activity
  • The author verified that ruff lint passes.
  • The author expects CI to pass as the removed code was behind CMake flags, which were off by default.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

The pull request successfully phases out several legacy contrib runtime backends, including arm_compute_lib, bnns, edgetpu, tflite, miopen, mps, mrvl, rocblas, and papi. These backends were identified as having no Relax compiler support, no active development, and minimal test coverage. The removal is thorough, spanning CMake build configurations, library information reporting, Python contrib modules, runtime C++ implementations, and associated tests. The changes are consistent and correctly decouple these deprecated components from the TVM ecosystem.

@tlopex tlopex merged commit d463395 into apache:main Feb 23, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants