* Infer shape for Unsqueeze
* Lower Unsqueeze
* Revise
* Turn off backend tests
* Compute tensorSize for static shape
* Compute tensorSize with unknown dims
* Edit tests
* Update the use of attributes
* Add e2e tests
* Use SmallVector
* Remove return
* Check whether the operand is ranked or not
Co-authored-by: Gheorghe-Teodor Bercea <gt.bercea@gmail.com>
* Initial lowering of KrnlSqrtOp
* Fix errors and add a testcase
* typos
* Add the MLIR example
* Restore doc/doc_check/CMakeLists.txt
* Clean the code
* Edit comments
* Remove redundant parts
* Chang the use of -> to .
* Add a test for f64
* Support ONNXSqrtOp
* Fix indentation
Co-authored-by: Gheorghe-Teodor Bercea <gt.bercea@gmail.com>
* add attributes of Op into parameters
* fix rewrite rule for GemmOp with attributes
* use I64Attr instead of I32Attr and modify test cases for the changes in attributes
* add output name (prefixed with o_) to Op definition
* update shape inference for the new attributes
* Support Softplus and Softsign operations
* Add the default shape inference for the transposition operation.
* Fix conflict with master
* Fix conflict with master branch
* Add test for softplus and softsign in test/backend/test.py
* Re-enable Reciprocal tests.
Co-authored-by: Gheorghe-Teodor Bercea <gt.bercea@gmail.com>
Co-authored-by: Tian Jin <tjingrant@gmail.com>
* change the read-in of attribute, using variant
* Use backported variant.
* Reduce code duplication.
* 1. Make array attribute parsing more clear.
2. int -> int64_t.
* 1. Fix how array attributes are imported.
* 1. Fix clang-tidy warnings.
* 1. Nit: fix clang-tidy warnings.
* Fix MaxPool node construction.
* Fix call to MaxPool.
* Comment out backend tests that fail.
* Add path to variant submodule to enable include file detection.
* Allow unused argument to avoid special casing generator.
* Address attribute related e2e test failures for Hard sigmoid,Elu,LeakyRelu,Selu,Softmax
Co-authored-by: chentong319 <chentong@us.ibm.com>
Co-authored-by: Gheorghe-Teodor Bercea <gt.bercea@gmail.com>
* Rebase
* Use max normalization
* Handle axis
* Add tests
* Update SharingWork.md
* Remove redundant spaces
* Format code
* Rebase
* Change from the use of Value* to Value
* Add end-to-end tests
Co-authored-by: Tian Jin <tjingrant@gmail.com>
* Sync with latest MLIR.
* Enable ONNX backend tests as a means to test ONNF lowering end-to-end.
* Install ONNX using quiet mode.
* Remove debug comments.
* Install ONNX from third_party/onnx.
* Check python version and fix pip command for installing ONNX.
* Using --user install option to prevent permission denied.
* Remove unused imports.
* Try using stock ONNX pip package as there are more tests in them.
* Pip got stuck building wheels, try sudo.
* Use verbose install to debug.
* Invalidate cache to build LLVM tools.
* Fix mlir installation script location.
* Debug to locate ONNF.
* Sanity check.
* Check out ONNF code first.
* Use verbose LIT output.
* 1. Update documentation to always use verbose LIT.
2. Update krnl ops to reflect new affine map attribute syntax.
* See if conda exists
* Install ONNX by manually cloning the repo.
* Install cmake first.
* Using sudo priviledge when installing.
* Limit build parallelism.
* Limit parallelism.
* Larger memory.
* Install onnx package with pip.
* Build MLIR tools.
* Invalidate cache.
* Compile model.so with -fPIC.
* Remove module dump to get concise debug output.
* Print command before executing.
* Use quiet install mode to reduce logging.
* Use -relocation-model=pic to generate position independent code.
* 1. Remove MAKEFLAGS because now buildbot has enough memory.
2. Run DocCheck as a last step.
* 1. Add verbose mode for backtend test.
* When dumping to LLVM bitcode, do not dump module IR, but print a message indicating that bitcode has been written to disk.
* Do not pass MakeFlags to CMake.
* Add more explaination for posible reasons of failing to identify tests.
* wip, commit before merging with upstream
* organize API, return wrapped output
* enable onnx backend test
* undo unintentional commit
* fix krnl ops tablegen
* format krnl ops
* reorder fillDynMemRefWithMemRef to be after fillPtrToMemRefWithDynMemRef, better comments
* more onnx backend tests
* ensure that test names refer to existing tests
* improve code readability by shortening type names
* nit
* restore unintentional changes
* more nits
* fix ; -> :
* split runtime implementation into header and body file, add support for data types
* comment on the onnx backend test
* make the comments read better
* do not dump when lowering
* Add broadcasting support for elementwise operations
* Remove MLIRDialect from MLIRWholeArchiveLibs
* Rewrite getLoopIVsForBroadcasting
* Compute dimensions for allocating result memory
* Compute dimensions for allocating result memory (revised)
* Use static dimension for element-wise operation testcases
* Add a test for addition with broadcasting
* Missed Traits.h when merging
* Revise
* Update SharedWork.md
* Broadcasting for variadic operations
* Edit comments
* Update SharedWork.md
* Reorganize the code
* Add CHECK-LABEL for test_add_with_broadcasting
* Add reshape op handling.
* Lower reshape to KRNL dialect.
* Add comments.
* Propagate reshape to KRNL IR.
* Lower KRNL reshape to affine and standard ops level dialects.
* Add lowering of reshape operation to Krnl and LLVM Dialects.
* Add test for LLVM IR dialect output for reshape.
* Fix rebase.
* Fix test variable.
* Emit errors during reshape shape inference. Address other reviewer comments.
* Lower ONNXSumOp
* Add inferShapes() and test cases
* Load the first operand to the result
* Update SharingWork.md
* Update SharingWork.md
* Update SharingWork.md
* Add support for Max, Min
* Pass operation instead of location to mapToLowerScalarOp
* Add support for Elu, Selu, LeakyRelu, HardSigmoid
* Add test cases
* Update SharingWork.md
* Rewrite the part of lowering variadic ops and use it for binary ops
* Use two diffenrent templates for Unary and Variadic Ops
* Revise the code
* Store bounds as affine map attributes & check in test cases with generic printer
* Upgrading MLIR
MLIR is outdated on Buildbot, rebuilding a newer version.
* work with new version of mlir
* check-in parser tests
* custom printer
* nit
* bug fix
* enable custom asm printer test
* enable custom asm printer test
* more consistent variable naming
* test max/min
* variable naming scheme change to MLIR style
* can lower krnl to llvm
* kernel -> llvm
* comments
* bug fix
* try fixing ci
* fix ci
* deactivate model test
* fix lit test
* nit
* fix z buildbot
* Canonicalization pattern for eliminating identity ops
* Add a test for the identity elimination rule
* Remove frontend from test
* Use CHECK-NEXT instead of CHECK
* generate op from onnx document
* Restore FullGemm
* update the op attribute for shape inference and canonicalizer
* Update onnx_canonicalization.mlir
* compartmentalize build script, temporarily remove dependency of onnf_opt on helper.cpp
* fix test includes
* fix op directory include
* compiler -> op
* compiler test depends on boost system
* fix function name
* specify libcompiler dependencies
* let cmake take care of transitive dependencies
* remove unnecessary includes
* use ONNF_SRC_ROOT and ONNF_BIN_ROOT
* allow whole-archive linked libraries to be appended
* [MLIR] Support filecheck (#371)
* support lit+FileCheck
* add lit into build script
* format MLIR.cmake
* format cmake
* [MLIR] Remove input/output ops (#372)
* remove input/output ops
* get output tensor type from symbol table
* a complete, roud-trippable Krnl dialect operation definition
* remove old dialect definition files, edit build files
* register dialect
* check in src for onnf_opt and dimension handler types
* re-trigger jenkins
* fix build
* clarify operation semantics
* add verifier for krnl.iterate
* refactor to make things clear
* do not hard code types
* nit and add comments
* fix rebase
* update op implementation
* fix merge
* update kernel dialect definition
* more comment on how to use the builder for krnl.iterate operation
* ammend the comment
* can parse krnl.iterate
* can parse and print if bounds are not SSA values
* address comments
* better error handling
* Update CMakeLists.txt
* update comment
* reflow comments
* Create and register ONNX Dialect with one Add operation.
* Fix file formatting.
* Change name from ONNX to SGIR.
* Use ONNX dialect. Change SGIR to frontend placeholder dialect.
* Add comments.
* Type clean-up.
* use table gen
* fix name of the dialect
* add old compilation path
* add some doc
* fix bug, sgir importer imports every op twice
* knl.visit -> knl.iterate