Browse Source

fix(tree): fix copybara

GitOrigin-RevId: 4047219962
tags/v1.3.1
Megvii Engine Team 4 years ago
parent
commit
c85eefded4
5 changed files with 121 additions and 2 deletions
  1. +2
    -2
      scripts/whl/BUILD_PYTHON_WHL_README.md
  2. +8
    -0
      tools/mlir/mgb-file-check/CMakeLists.txt
  3. +3
    -0
      tools/mlir/mgb-file-check/mgb-file-check.sh
  4. +23
    -0
      tools/mlir/mgb-opt/CMakeLists.txt
  5. +85
    -0
      tools/mlir/mgb-opt/mgb-opt.cpp

+ 2
- 2
scripts/whl/BUILD_PYTHON_WHL_README.md View File

@@ -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


+ 8
- 0
tools/mlir/mgb-file-check/CMakeLists.txt View File

@@ -0,0 +1,8 @@
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)

+ 3
- 0
tools/mlir/mgb-file-check/mgb-file-check.sh View File

@@ -0,0 +1,3 @@
#!/bin/bash -e

FileCheck --enable-var-scope --dump-input=fail "$@"

+ 23
- 0
tools/mlir/mgb-opt/CMakeLists.txt View File

@@ -0,0 +1,23 @@
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)

+ 85
- 0
tools/mlir/mgb-opt/mgb-opt.cpp View File

@@ -0,0 +1,85 @@
/**
* \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));
}

Loading…
Cancel
Save