Commit Graph

1596 Commits

Author SHA1 Message Date
Adrian Kuegel
08d7d1ef9a [mlir][Bazel] Add missing dependencies after aa0208d1bc 2023-10-20 08:52:14 +00:00
Adrian Kuegel
c7be4e6db9 [mlir][Bazel] Add missing dependency after d871daea81 2023-10-20 06:37:15 +00:00
Emilio Cota
f6818528f7 [bazel][mlir] fixes for a2288a89 2023-10-19 18:35:13 -04:00
Ingo Müller
3517b67ef0 Reapply "[mlir][transform] Support symlinks in module loading. Reorganize tests. (#69329)"
This reverts commit c122b9727a but fixes
tests that were added between submitting #69329 for review and landing
it for the first time.
2023-10-19 09:04:49 +00:00
Ingo Müller
c122b9727a Revert "[mlir][transform] Support symlinks in module loading. Reorganize tests. (#69329)"
This reverts commit f681225700. That
commit changed the organization of the tests of the transform dialect
interpreter but did not take into account some tests that were added in
the meantime.
2023-10-19 08:51:15 +00:00
Ingo Müller
f681225700 [mlir][transform] Support symlinks in module loading. Reorganize tests. (#69329)
A recent commit (#69190) broke the bazel builds. Turns out that Bazel
uses symlinks for providing the test files, which the path expansion of
the module loading mechanism did not handle correctly. This PR fixes
that.

It also reorganizes the tests better: It puts all `.mlir` files that are
included by some other test into a common `include` folder. This greatly
simplifies the definition of the dependencies between the different
`.mlir` files in Bazel's `BUILD` file. The commit also adds a comment to
all included files why these aren't tested themselves direclty and uses
the `%{fs-sep}` expansion for paths more consistently. Finally, it
uncomments all but one of the tests excluded in Bazel because they seem
to run now. (The remaining one includes a file that it itself a test, so
it would have to live *in* and *outside* of the `include` folder.)
2023-10-19 10:45:33 +02:00
Peiming Liu
761c9dd927 [mlir][sparse] implementating stageSparseOpPass as an interface (#69022) 2023-10-17 10:54:44 -07:00
Dmitry Chernenkov
12bf4231eb [Bazel] Fix dependencies for clang codegen 2023-10-17 12:36:11 +00:00
Dmitry Chernenkov
90576084c1 [Bazel] fix typo 2023-10-17 11:58:43 +00:00
Dmitry Chernenkov
4434253f0f [Bazel] disable preload-library.mlir test 2023-10-17 11:54:35 +00:00
Aart Bik
233c3e6c53 [mlir][sparse] remove sparse2sparse path in library (#69247)
This cleans up all external entry points that will have to deal with
non-permutations, making any subsequent refactoring much more local to
the lib files.
2023-10-16 14:45:57 -07:00
Lei Zhang
3049ac44e6 [mlir][vector] Enable transfer op hoisting with dynamic indices (#68500)
Recent changes (https://github.com/llvm/llvm-project/pull/66930)
disabled vector transfer ops hoisting with view-like intermediate ops.
The recommended way is to fold subview ops into transfer op indices
before invoking hoisting. That would mean now we see transfer op indices
involving dynamic values, instead of static constant values before with
subview ops. Therefore hoisting won't kick in anymore. This breaks
downstream users.

To fix it, this commit enables hoisting transfer ops with dynamic
indices by using `ValueBoundsConstraintSet` to prove ranges are disjoint
in `isDisjointTransferIndices`. Given that utility is used in many
places including op folders, right now we introduce a flag to it and
only set as true for "heavy" transforms in hoisting and load-store
forwarding.
2023-10-15 16:37:54 -07:00
Balaji V. Iyer
28b27c1b10 [ArmSVE][NVVM][Bazel] Added Features to BUILD.bazel file (#68949)
Added VectorOps support for ArmSVE in BUILD.bazel
Added BasicPtxBuilderInterface support for NVVM in build.bazel
2023-10-13 07:47:36 +02:00
Mikhail Goncharov
f5c34126d4 [bazel] add llvm/HipStdPar (#68883)
for 0ce6255a50
2023-10-12 14:24:19 +02:00
Mikhail Goncharov
7a18b3ce65 [bazel] update llvm-config.h.cmake
after 28bb2193f6
2023-10-12 10:20:45 +02:00
Mikhail Goncharov
97cd39ff09 [bazel] fix linter complains for libc bazel 2023-10-12 10:00:20 +02:00
Adrian Kuegel
ff16c9878c [mlir][Bazel] Don't duplicate files in data and test attribute.
Followup fix for 1bf0870934
2023-10-12 05:37:33 +00:00
Balaji V. Iyer
e80cdf0ef9 [Affine][Bazel] Added AffineOps to BUILD.bazel file (#68842)
Added AffineOps and correct dependencies to the BUILD.bazel file.
2023-10-12 07:24:42 +02:00
Nicolas Vasilache
1bf0870934 [mlir][Transform] Create a transform interpreter and a preloader pass (#68661)
This revision provides the ability to use an arbitrary named sequence op
as
the entry point to a transform dialect strategy.

It is also a step towards better transform dialect usage in pass
pipelines
that need to preload a transform library rather thanparse it on the fly.

The interpreter itself is significantly simpler than its testing
counterpart
by avoiding payload/debug root tags and multiple shared modules.

In the process, the NamedSequenceOp::apply function is adapted to allow
it
being an entry point.

NamedSequenceOp is **not** extended to take the PossibleTopLevelTrait at
this
time, because the implementation of the trait is specific to allowing
one
top-level dangling op with a region such as SequenceOp or
AlternativesOp.
In particular, the verifier of PossibleTopLevelTrait does not allow for
an
empty body, which is necessary to declare a NamedSequenceOp that gets
linked
in separately before application.

In the future, we should dispense with the PossibleTopLevelTrait
altogether
and always enter the interpreter with a NamedSequenceOp.

Lastly, relevant TD linking utilities are moved to
TransformInterpreterUtils
and reused from there.
2023-10-11 14:56:09 -07:00
Adrian Kuegel
9620053272 [mlir][Bazel] Adjustments for 8c67c48591 2023-10-11 05:39:33 +00:00
Adrian Kuegel
8b3e150bbb [mlir][Bazel] Fix wrong dependency path. 2023-10-11 05:28:33 +00:00
Balaji V. Iyer
e9ca1665c9 [Mesh][Bazel] Added MeshOps to BUILD.bazel file (#68759)
Added MeshOps and correct dependencies to the BUILD.bazel file.
2023-10-11 07:25:17 +02:00
Guillaume Chatelet
0e1481439f [libc][bazel] Define libc namespace in a separate file and drop the release flag (#68563)
The `release` flag is misleading and its semantics are not well defined.
Originally this was meant to allow for different `LIBC_NAMESPACE`
depending on whether the code was considered stabled and released or
unstable. It appears that we may have a canary environment that is
neither released or dev. As a consequence we move the `LIBC_NAMESPACE`
definition to its own file and each environment can override this file
with whatever makes sense.
2023-10-10 15:41:34 +02:00
Mikhail Goncharov
141ca548e3 [bazel] fix build for 479057887f
for real
2023-10-10 10:13:08 +02:00
Mikhail Goncharov
962a049d64 [bazel] fix build for 479057887f 2023-10-10 10:09:14 +02:00
Balaji V. Iyer
3684f6a887 [OpenACC][Bazel] Added OpenACCOpsInterfaces to BUILD.bazel file (#68639)
Added OpenACCOpsInterfaces and correct dependencies to the BUILD.bazel
file.
2023-10-09 15:10:47 -07:00
Juergen Ributzka
eb601430d3 [llvm][objdump] Remove support for printing the embedded Bitcode section in MachO files. (#68457)
It's no longer possible to submit bitcode apps to the Apple App Store.
The tools
used to create xar archived bitcode sections inside MachO files have
been
discontinued. Additionally, the xar APIs have been deprecated since
macOS 12,
so this change removes unnecessary code from objdump and all
dependencies on
libxar.

This fixes rdar://116600767
2023-10-09 15:03:29 -07:00
JoelWee
648046db15 [mlir][bazel] Fix after 7bbfd2a 2023-10-09 11:35:41 +01:00
Benjamin Kramer
2fc5649ccf [bazel] Add missing dependency for 5d2a7101b7 2023-10-07 09:55:23 +02:00
Aart Bik
d3af65358d [mlir][sparse] introduce MapRef, unify conversion/codegen for reader (#68360)
This revision introduces a MapRef, which will support a future
generalization beyond permutations (e.g. block sparsity). This revision
also unifies the conversion/codegen paths for the sparse_tensor.new
operation from file (eg. the readers). Note that more unification is
planned as well as general affine dim2lvl and lvl2dim (all marked with
TODOs).
2023-10-06 13:42:01 -07:00
Christian Sigg
22f81b4cf4 [mlir][bazel] Fix after ef8c26b772 2023-10-06 15:06:53 +02:00
Christian Sigg
79c33d23c3 [mlir][bazel] Fix after ef8c26b772 2023-10-06 15:01:59 +02:00
Christian Sigg
1cd14adb25 [mlir][bazel] Fix after ef8c26b772 2023-10-06 14:43:45 +02:00
Christian Sigg
03bdfcc2ba [mlir][bazel] Fix after 6a2071cc6a
Second try...
2023-10-06 14:04:07 +02:00
Christian Sigg
4e311ea20f [mlir][bazel] Fix after 6a2071cc6a 2023-10-06 14:01:03 +02:00
Christian Sigg
185e16dba2 [mlir][bazel] Disable test added in 787689943d 2023-10-06 11:25:00 +02:00
Christian Sigg
59e75b7df2 [mlir][bazel] Sort targets list. 2023-10-05 11:14:12 +02:00
Christian Sigg
2f1c78014f [mlir][bazel] Fix after d20fbc9007 2023-10-05 11:12:55 +02:00
Guray Ozen
29b33e8397 [bazel] fix typo 2023-10-05 11:08:46 +02:00
Guray Ozen
d20fbc9007 [MLIR][NVGPU] Introduce nvgpu.wargroup.mma.store Op for Hopper GPUs (#65441)
This PR introduces a new Op called `warpgroup.mma.store` to the NVGPU
dialect of MLIR. The purpose of this operation is to facilitate storing
fragmanted result(s) `nvgpu.warpgroup.accumulator` produced by
`warpgroup.mma` to the given memref.

An example of fragmentated matrix is given here :

https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#wgmma-64n16-d

The `warpgroup.mma.store` does followings:
1) Takes one or more `nvgpu.warpgroup.accumulator` type (fragmented
results matrix)
2) Calculates indexes per thread in warp-group and stores the data into
give memref.

Here's an example usage:
```
// A warpgroup performs GEMM, results in fragmented matrix
%result1, %result2 = nvgpu.warpgroup.mma ...

// Stores the fragmented result to memref
nvgpu.warpgroup.mma.store [%result1, %result2], %matrixD : 
    !nvgpu.warpgroup.accumulator< fragmented = vector<64x128xf32>>,
    !nvgpu.warpgroup.accumulator< fragmented = vector<64x128xf32>> 
    to memref<128x128xf32,3>
```
2023-10-05 10:54:13 +02:00
Benjamin Kramer
6cbf6f5d37 [bazel] Port 8d6d4f8321 2023-10-04 18:41:43 +02:00
Christian Sigg
73f8ec9edb [mlir][bazel] Fix load() order. 2023-10-04 11:39:13 +02:00
Christian Sigg
c2ff180d5f [mlir][bazel] Fix after afe400620f 2023-10-04 10:30:18 +02:00
Oleksandr "Alex" Zinenko
bc30b415ca [mlir] enable python bindings for nvgpu transforms (#68088)
Expose the autogenerated bindings.

Co-authored-by: Martin Lücke <mluecke@google.com>
2023-10-03 14:52:52 +02:00
Guillaume Chatelet
dd65427408 [libc][bazel] Add a flag to configure LIBC_NAMESPACE (#68093) 2023-10-03 13:35:59 +02:00
Christian Sigg
2b5a6d774c [mlir][bazel] Fix for f33afea260. 2023-10-03 10:40:02 +02:00
Haojian Wu
7fc25ae12c [bazel] Add missing deps. 2023-09-29 09:24:50 +02:00
Haojian Wu
535665ebf0 [bazel] Add build rules for new target added in 7ddf7d8783 2023-09-29 09:15:08 +02:00
lntue
da28593d71 [libc][math] Implement double precision expm1 function correctly rounded for all rounding modes. (#67048)
Implementing expm1 function for double precision based on exp function
algorithm:

- Reduced x = log2(e) * (hi + mid1 + mid2) + lo, where:
  * hi is an integer
  * mid1 * 2^-6 is an integer
  * mid2 * 2^-12 is an integer
  * |lo| < 2^-13 + 2^-30
- Then exp(x) - 1 = 2^hi * 2^mid1 * 2^mid2 * exp(lo) - 1 ~ 2^hi *
(2^mid1 * 2^mid2 * (1 + lo * P(lo)) - 2^(-hi) )
- We evaluate fast pass with P(lo) is a degree-3 Taylor polynomial of
(e^lo - 1) / lo in double precision
- If the Ziv accuracy test fails, we use degree-6 Taylor polynomial of
(e^lo - 1) / lo in double double precision
- If the Ziv accuracy test still fails, we re-evaluate everything in
128-bit precision.
2023-09-28 16:43:15 -04:00
Peiming Liu
9477aa227f [bazel] fix bazel for (D152457) (#67706) 2023-09-28 09:59:30 -07:00