提交 c85eefde 编写于 作者: M Megvii Engine Team

fix(tree): fix copybara

GitOrigin-RevId: 404721996238ac842fba118f3920713b38600b5b
上级 37c3e0a9
......@@ -56,9 +56,9 @@
```
# How to build
Note: Guarantee the git repo is mounted in docker container, do not use `git submodule update --init` in to init megbrain repo
Note: Guarantee the git repo is mounted in docker container, do not use `git submodule update --init` in to init Project repo
## Build for linux
* MegBrain delivers `wheel` package with `manylinux2014` tag defined in [PEP-571](https://www.python.org/dev/peps/pep-0571/).
* This Project delivers `wheel` package with `manylinux2014` tag defined in [PEP-571](https://www.python.org/dev/peps/pep-0571/).
commands:
```bash
export CUDA_ROOT_DIR=/path/to/cuda
......
add_custom_command(
OUTPUT link_sh
COMMAND ${CMAKE_COMMAND} -E create_symlink
${PROJECT_SOURCE_DIR}/tools/mlir/mgb-file-check/mgb-file-check.sh
${PROJECT_BINARY_DIR}/tools/mlir/mgb-file-check/mgb-file-check
)
add_custom_target(mgb-file-check DEPENDS link_sh)
\ No newline at end of file
#!/bin/bash -e
FileCheck --enable-var-scope --dump-input=fail "$@"
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS)
set(LIBS
${dialect_libs}
${conversion_libs}
LLVMSupport
MLIROptLib
MLIRIR
MLIRPass
MLIRSupport
)
add_executable(mgb-opt mgb-opt.cpp)
target_include_directories(
mgb-opt
PRIVATE ${MLIR_LLVM_INCLUDE_DIR} ${PROJECT_SOURCE_DIR}/src/jit/include
${PROJECT_BINARY_DIR}/src/jit/include)
add_dependencies(mgb-opt mgb_dialect)
target_link_libraries(mgb-opt PRIVATE ${LIBS} megbrain megdnn ${MGE_CUDA_LIBS})
llvm_update_compile_flags(mgb-opt)
/**
* \file tools/mlir/mgb-opt/mgb-opt.cpp
* MegEngine is Licensed under the Apache License, Version 2.0 (the "License")
*
* Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied.
*/
#include "megbrain/jit/mlir/ir/dialect.h"
#include "megbrain/jit/mlir/ir/passes.h"
#include <llvm/Support/CommandLine.h>
#include <llvm/Support/InitLLVM.h>
#include <llvm/Support/PrettyStackTrace.h>
#include <llvm/Support/SourceMgr.h>
#include <llvm/Support/ToolOutputFile.h>
#include <mlir/Dialect/Affine/IR/AffineOps.h>
#include <mlir/Dialect/LLVMIR/LLVMDialect.h>
#include <mlir/IR/AsmState.h>
#include <mlir/InitAllDialects.h>
#include <mlir/InitAllPasses.h>
#include <mlir/Pass/Pass.h>
#include <mlir/Pass/PassManager.h>
#include <mlir/Support/FileUtilities.h>
#include <mlir/Support/MlirOptMain.h>
using namespace llvm;
using namespace mlir;
//! TODO: Implement a custom MlirOptMain that supports the following flags.
static cl::opt<bool> print_mlir{
"print-mlir",
cl::desc("Prints MLIR IR after translation"),
cl::init(false),
};
static cl::list<std::string> input_values{
"input-value",
cl::desc("Input shapes and optional values"),
cl::ZeroOrMore,
};
static cl::opt<std::string> input_values_file{
"input-value-file",
cl::desc("Provides a file for input shapes and optional values (see "
"ParseToVariantListFromFile in vm_util.h for details)"),
cl::init(""),
};
static cl::opt<bool> run{
"run",
cl::desc("Runs the module (vs. just compiling and verifing)"),
cl::init(true),
};
static cl::list<std::string> run_args{
"run-arg",
cl::desc("Argument passed to the execution flag parser"),
cl::ZeroOrMore,
};
namespace mgb {
namespace jit {
void register_test_mgb_to_affine_lowering_pass();
void register_test_affine_to_llvm_lowering_pass();
} // namespace jit
} // namespace mgb
int main(int argc, char** argv) {
mlir::registerAllPasses();
mlir::DialectRegistry registry;
mlir::registerAllDialects(registry);
registry.insert<mgb::jit::MgbDialect>();
mgb::jit::register_test_mgb_to_affine_lowering_pass();
mgb::jit::register_test_affine_to_llvm_lowering_pass();
return failed(MlirOptMain(argc, argv, "MLIR modular optimizer driver", registry));
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册