-
Notifications
You must be signed in to change notification settings - Fork 44
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Writing down requirements for refactoring igpu dialect and L0 runner. Goal of this document is to keep track of tasks for refactoring code base to avoid duplicate effort.
- level zero runner and igpu work would continue on main branch until most of the following requirements/features are ready on refactor branch.
- Some of these may be applied to main branch during that period.
- Any task with a checkmark against it indicates it is completed in the
refactor
branch. - Following list assume "dpcomp" project specific passes and dialects will be redone in
refactor
branch.
Also ran some experiments with https://github.com/silee2/mlir-extensions/blob/cleanup/mlir/CMakeLists.txt to filter out files not need to for level zero runner usage case.
- Use MLIR upstream file structure. "refactor" branch is based on that structure. See mlir-hlo project layout for reference. #236
- Move scripts to build imex to a separate build_tools directory #237
- Remove dpcomp-opt and add imex-opt by using proper dialect and pass registration mechanism IMEX needs a CLI tool similar to mlir-opt #233
- Provide a script using imex-opt and mlir-cpu-runner to achieve same effect as level-zero-runner #238
- Move wrapper libraries to lib/ExecutionEngine #239
- Refactor and rename wrapper libraries: IGPURuntimeWrapper, ... #240
- Remove unused Tranforms and Conversions: Only two conversions (gpu-to-gpu-runtime, gpu-runtime-to-llvm) and one transform (func_utils) is used by L0 runner #241
- Remove Analysis and Compiler, utils.cpp from lib/ as they are not used. #242
- Move Undef op from plier_util to gpu_runtime dialect and remove plier and plier_util dialect #243
- Remove local FileCheck util and use -DLLVM_INSTALL_UTILS flag when building LLVM
- Add IMEXConfig
- CMake version and C++ version should follow upstream LLVM/MLIR. Use cmake policy to use advanced cmake features and provide a fallback for older versions of cmake #244
- find_package(LLVM) is redundant since find_package(MLIR) calls it internally #245
- Add cmake target check-imex-opt to run unit tests #246
- Remove need for LLVM_ENABLE_RTTI: imex-opt and FileCheck refactoring should remove need for rtti. #247
- Provide cmake option for installing toolchain only (not as an SDK). Useful when using separating development and testing machine. See -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON for reference. #248
- python "lit" and wrapper script (runlit.py) has to be installed for running lit tests. #249
- Add support for various build situations: Ex) as an LLVM external project (LLVM_EXTERNAL_${project}_SOURCE_DIR), as part of an external build, standalone build with local LLVM/MLIR. See mlir-hlo project and [Do not merge] Initial support for auto updating and building dependent third party projects #211 for reference.
- Use MLIR cmake macros for building libraries and executables: https://github.com/llvm/llvm-project/blob/main/mlir/cmake/modules/AddMLIR.cmake #250
- Refactor CMakeLists.txt to move all options to a separate cmake module #251
- Provide a cmake option to add mlir-hlo project : LLVM version will be common between imex and mlir-hlo #252
- When updating LLVM version, use a version that is/was used by mlir-hlo #253
- Add support for building and executing on Windows #254
Metadata
Metadata
Labels
enhancementNew feature or requestNew feature or request