Skip to content
This repository was archived by the owner on Jan 25, 2023. It is now read-only.

MLIR based backend for Numba #115

Draft
wants to merge 278 commits into
base: mlir-develop-base
Choose a base branch
from
Draft

Conversation

Hardcode84
Copy link

@Hardcode84 Hardcode84 commented Nov 12, 2020

MLIR based backend for numba

based on Numba 0.51

It is not yet integrated properly into Numba build process and require 2 verions of llvm, "usual" llvm for numba, and llvm master mlir-compiler/llvm-sha.txt for MLIR backend. Require pybind11.

Ivan Butygin and others added 30 commits February 9, 2021 19:31
* test

* check getitem/setitem index type

* PropagateBuildTupleTypes

* multidim setitem/getitem
* test

* fix CanonicalizeReduction for nested loops

* math. fixes

* numpy sqrt

* refactor

* numpy.square
* some buffer opt passes

* StaticSetItem

* StaticSetItem test

* fix to meminfo<->memref conversion

* fix lowering to tbb

* generate parallel loops only loops from prange
* store context in Var

* rework shape accessor

* dtype accessor rework

* remove unused code

* refactor shape

* remove unused code

* fix setitem lowering

* numpy empty

* numpy.sum

* some kwargs support

* linlag resolver kwargs support

* linalg resolver some literal support

* work on linalg resolver

* add symbolDCE pass

* numpy sum axis support
* refac

* proper types for numpy.sum

* move test

* numpy dot 1D

* numpy dot 2D

* adapt linalg resolver to attrs

* array size support

* refac

* array transpose
* fix plier parallel

* use loop to init reduce vars

* transfor to tbb parallel if have parallel attr or outermost loop

* we dont need fix_tls_observer, also do not recreate task arena each time
* use std::function

* refac test

* numpy operator add

* fix plier binop

* numpy subtract

* numpy multiply
* fixes to broadcasting

* fix

* work on broadcast

* some work on broadcast

* work on broadcast

* broadcasting

* broadcast fix

* PostFusionOptPass
* Use default values for SmallVector N

* Move readme file, remove old file
* change builder func

* accept list of bounds

* plier::ParallelOp nested loops support

* fix to nested parallel loops
…ts (#199)

* some broadcoasting opt

* rework broadcast

* add pass

* move force inline to opt pass

* Proper increfs/decrefs for input arrays
* PostPlierToLinalgPass pass

* refactor out populate_common_opts_patterns

* propagate if const values

* simplify expand dims

* plier inliner interface

* simplify if and select

* fixes

* fixes

* EnforceShapeOp

* copy removal pass and parallel loop fusion

* fixes

* more SelectOp folding

* Add non-recursive CSE

* more efficient reshape

* run few rounds ParallelOp fusing
* refac

* refac

* extend CanonicalizeReduction

* PromoteParallelPass pass

* promote some simple loads

* Rewrite single-element single-store memref

* copypaste naiveParallelLoopFusion from mlir

* Extend mem rewrites
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants