[PATCH] D43932: [Polly][GEMM] Include parameter constraints in isMatMulOperandAcc

19 views
Skip to first unread message

Michael Kruse via Phabricator

unread,
Mar 6, 2018, 4:33:06 AM3/6/18
to ll...@meinersbur.de, siddu...@gmail.com, phabr...@grosser.es, garee...@gmail.com, poll...@googlegroups.com
Meinersbur added reviewers: grosser, gareevroman.
Meinersbur added a subscriber: pollydev.

https://reviews.llvm.org/D43932



Theodoros Theodoridis via Phabricator

unread,
Mar 6, 2018, 8:54:38 AM3/6/18
to ll...@meinersbur.de, siddu...@gmail.com, phabr...@grosser.es, garee...@gmail.com, poll...@googlegroups.com, llvm-c...@lists.llvm.org
ttheodor marked an inline comment as done.
ttheodor added a comment.

In https://reviews.llvm.org/D43932#1028149, @Meinersbur wrote:

> The additional test `pattern-matching-based-opts_15.ll` still succeeds when I remove `intersect_params(Context)`?


I generated `pattern-matching-based-opts_15.ll` with `create_ll.sh`. If I run `clang++ gemm.cpp -mllvm -polly -O3 -c -mllvm -polly-pattern-matching-based-opts -mllvm -stats 2>&1 | grep matrix` (with `gemm.cpp` containing the C++ code embedded in the test) then it only prints something if the `intersect_params(Context)` is present.


https://reviews.llvm.org/D43932



Michael Kruse via Phabricator

unread,
Mar 6, 2018, 9:18:23 AM3/6/18
to ll...@meinersbur.de, siddu...@gmail.com, phabr...@grosser.es, garee...@gmail.com, poll...@googlegroups.com, llvm-c...@lists.llvm.org
Meinersbur added a comment.

What is your `gemm.cpp`? The source in `pattern-matching-based-opts_15.ll` does not correspond to the source in your email: "GEMM pattern matching fails with parametric array sizes". The latter uses `unit64_t` while the former is from Polybench.


https://reviews.llvm.org/D43932



Theodoros Theodoridis via Phabricator

unread,
Mar 7, 2018, 9:10:52 AM3/7/18
to ll...@meinersbur.de, siddu...@gmail.com, phabr...@grosser.es, garee...@gmail.com, poll...@googlegroups.com, llvm-c...@lists.llvm.org
ttheodor added a comment.

`gemm.cpp` is:

/* C := alpha*A*B + beta*C */
void kernel_gemm(int _PB_NI, int _PB_NJ, int _PB_NK, double alpha, double beta,
double *A, double *B, double *C) {
for (int i = 0; i < _PB_NI; i++)
for (int j = 0; j < _PB_NJ; j++) {
C[i * _PB_NJ + j] *= beta;
for (int k = 0; k < _PB_NK; ++k)
C[i * _PB_NJ + j] +=
alpha * A[i * _PB_NK + k] * B[k * _PB_NJ + j];
}
}

The one I posted in the e-mail is actually wrong (I didn't linearize properly the accesses) but incidentally exhibits the same behavior when it comes to pattern matching.


https://reviews.llvm.org/D43932



Michael Kruse via Phabricator

unread,
Apr 3, 2018, 4:18:24 PM4/3/18
to ll...@meinersbur.de, siddu...@gmail.com, phabr...@grosser.es, garee...@gmail.com, poll...@googlegroups.com, llvm-c...@lists.llvm.org
Meinersbur added a comment.

Could you try to make `pattern-matching-based-opts_15.ll` fail without this `intersect_params`? Instead of `create_ll.sh`, try using `-mllvm -polly-dump-before-file=file.ll` to get a more accurate `.ll` file as Polly sees it when invoked withing clang.


https://reviews.llvm.org/D43932



Theodoros Theodoridis via Phabricator

unread,
Dec 13, 2022, 10:10:57 AM12/13/22
to theo...@inf.ethz.ch, ll...@meinersbur.de, siddu...@gmail.com, phabr...@grosser.es, garee...@gmail.com, poll...@googlegroups.com, david...@arm.com
ttheodor abandoned this revision.
Herald added a project: All.

CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D43932/new/

https://reviews.llvm.org/D43932

Reply all
Reply to author
Forward
0 new messages