Page MenuHomePhabricator

tim.schmielau (Tim Schmielau)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 7 2022, 12:01 PM (25 w, 2 d)

Recent Activity

May 17 2022

Herald added a project to D103695: [WIP][RFC][Utils] Helper script to check sanity of cost tables vs scheduler models: Restricted Project.
May 17 2022, 9:19 AM · Restricted Project, Restricted Project
Herald added a project to D46276: [CostModel][X86] Derive TTI costs from complete scheduling models (PR36550) (RFC): Restricted Project.
May 17 2022, 9:19 AM · Restricted Project

Apr 21 2022

Herald added a project to D53035: [LV] Legalize SVML call instructions during vector code generation: Restricted Project.
Apr 21 2022, 10:53 PM · Restricted Project, Restricted Project
Herald added a reviewer for D54412: [RFC] Re-implementing -fveclib with OpenMP: jdoerfert.
Apr 21 2022, 10:50 PM · Restricted Project

Apr 20 2022

Herald added a project to D116426: [InferAttrs] Add writeonly to all the math functions: Restricted Project.
Apr 20 2022, 9:07 AM · Restricted Project, Restricted Project

Apr 14 2022

Herald added a project to D57504: RFC: Prototype & Roadmap for vector predication in LLVM: Restricted Project.
Apr 14 2022, 5:47 AM · Restricted Project, Restricted Project

Mar 14 2022

tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
  • at newlines at end of file where missing
Mar 14 2022, 6:28 AM · Restricted Project
tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
  • increase nest count
  • add nounroll sincos() tests
  • make sincos test fail reliably even in single precision
  • protect against wrongly computed reference results by printing a few values
Mar 14 2022, 6:23 AM · Restricted Project

Mar 6 2022

tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
  • compute reference result in long double
Mar 6 2022, 9:48 AM · Restricted Project
tim.schmielau updated the summary of D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
Mar 6 2022, 5:11 AM · Restricted Project
tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
  • run tests in both single and double precision
Mar 6 2022, 1:56 AM · Restricted Project
tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
  • run libmvec tests for each supported ISA
  • don't depend on immintrin.h
Mar 6 2022, 1:37 AM · Restricted Project

Mar 4 2022

tim.schmielau added inline comments to D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
Mar 4 2022, 11:48 PM · Restricted Project
tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
  • handle 32 bit pointer size
Mar 4 2022, 11:45 PM · Restricted Project
tim.schmielau updated the summary of D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
Mar 4 2022, 10:41 AM · Restricted Project
tim.schmielau added inline comments to D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
Mar 4 2022, 10:12 AM · Restricted Project
tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
  • check for AVX2, not SSE2
Mar 4 2022, 10:03 AM · Restricted Project
tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.

Add check that libmvec is available for linking and at runtime
and rename Libmvec/ directory to Veclib/ to indicate the test is
not specific to libmvec and might be enabled for other vector
libraries as well.

Mar 4 2022, 9:36 AM · Restricted Project
tim.schmielau planned changes to D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.

Are you talking about automatically choosing a vector library (-fveclib)?

Mar 4 2022, 2:38 AM · Restricted Project
tim.schmielau added a comment to D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.

Even if we run the test unconditionally, some logic will still be required to select the right flags to enable auto-vectorization.

Mar 4 2022, 2:21 AM · Restricted Project
tim.schmielau added a comment to D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.

I am not sure if it should be Libmvec or X86 specific though. There are other vector libraries on different platforms that provide vector versions of sincos. I don't think we should exclude those from this testing here.

Mar 4 2022, 2:13 AM · Restricted Project
tim.schmielau edited reviewers for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation, added: venkataramanan.kumar.llvm, abique, fpetrogalli, spatel, fhahn, jdoerfert; removed: dmgreen, Matt, pengfei, ye-luo.
Mar 4 2022, 1:34 AM · Restricted Project
tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.

my previous update seems to have eaten the original changes.
Let's see if I can get this right.

Mar 4 2022, 1:11 AM · Restricted Project
Herald added a project to D116879: [llvm] Allow auto-vectorization of sincos() using libmvec: Restricted Project.

I have just submitted the test for the testsuite. Once that is merged, this change should also be fine to go in.

Mar 4 2022, 1:08 AM · Restricted Project, Restricted Project
tim.schmielau updated the diff for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.

fix mixed up comments

Mar 4 2022, 12:53 AM · Restricted Project
tim.schmielau abandoned D120978: fix mixed up comments.

This was supposed to update https://reviews.llvm.org/D120977 instead of creating a new submission.

Mar 4 2022, 12:50 AM · Restricted Project
tim.schmielau requested review of D120978: fix mixed up comments.
Mar 4 2022, 12:48 AM · Restricted Project
tim.schmielau added reviewers for D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation: rengolin, dmgreen, Matt, pengfei, RKSimon, ye-luo.
Mar 4 2022, 12:42 AM · Restricted Project
tim.schmielau requested review of D120977: [test-suite] Add unit test for libmvec sincos() auto-vectorisation.
Mar 4 2022, 12:39 AM · Restricted Project

Jan 12 2022

tim.schmielau planned changes to D116879: [llvm] Allow auto-vectorization of sincos() using libmvec.

And a variant of the code above shows that even the transformation to the vvv variant isn't safe in all cases.
I am looking into adding variations of the code above into the test-suite ahead of enabling the vectorizing transformation, to be sure the transformation is not applied when unsafe, and that the behavior of the underlying vector library matches my interpretation of the VectorAPI.
I don't see any existing tests around the transformations already performed.
Also, I see lots of regression tests to prevent potential performance regressions, ensuring the vectorizing transformation is not missed. But I don't see any tests currently to guard against correctness issues, ensuring the transformation is not applied in unsafe cases.

Jan 12 2022, 2:11 AM · Restricted Project, Restricted Project

Jan 10 2022

tim.schmielau added a comment to D116879: [llvm] Allow auto-vectorization of sincos() using libmvec.

I have beefed up my testcase to demonstrate why I had to choose the _ZGVdN4vvv_sincos() variant for correctness, even though _ZGVdN4vl8l8_sincos() would be desirable from a performance perspective:
We have no control over what pointers the user is passing in in different loop iterations.

Jan 10 2022, 12:37 PM · Restricted Project, Restricted Project
tim.schmielau added inline comments to D116879: [llvm] Allow auto-vectorization of sincos() using libmvec.
Jan 10 2022, 12:36 PM · Restricted Project, Restricted Project

Jan 9 2022

tim.schmielau added inline comments to D116879: [llvm] Allow auto-vectorization of sincos() using libmvec.
Jan 9 2022, 6:43 PM · Restricted Project, Restricted Project
tim.schmielau added a reviewer for D116879: [llvm] Allow auto-vectorization of sincos() using libmvec: jdoerfert.
Jan 9 2022, 1:40 PM · Restricted Project, Restricted Project
tim.schmielau added a comment to D116879: [llvm] Allow auto-vectorization of sincos() using libmvec.

Thank you.
I do not have commit access anyway, so can someone please commit once review is sufficient.

Jan 9 2022, 10:45 AM · Restricted Project, Restricted Project
tim.schmielau added a comment to D116879: [llvm] Allow auto-vectorization of sincos() using libmvec.

A potential issue is that working sincos() support in libmvec is "only" a bit over 5 years old.
E.g. a user on Centos 7 compiling code with a vectorizable call to sincos() and compiling with -fveclib=libmvec and -O2 or higher will now run into an undefined reference to the vectorized sincos() function and will either have to deactivate auto-vectorization or update their libmvec.

Jan 9 2022, 2:16 AM · Restricted Project, Restricted Project
tim.schmielau updated the summary of D116879: [llvm] Allow auto-vectorization of sincos() using libmvec.
Jan 9 2022, 1:15 AM · Restricted Project, Restricted Project
tim.schmielau added a comment to D116879: [llvm] Allow auto-vectorization of sincos() using libmvec.

I haven't figured out how to link to https://bugs.llvm.org/show_bug.cgi?id=51530 so that it would automatically get closed on merging. I suppose this isn't possible anymore with bugzilla being frozen?

Jan 9 2022, 1:13 AM · Restricted Project, Restricted Project
tim.schmielau added a comment to D116879: [llvm] Allow auto-vectorization of sincos() using libmvec.

In line with existing behavior, I have not added vector function definitions for AVX-512.

Jan 9 2022, 1:10 AM · Restricted Project, Restricted Project
tim.schmielau added a comment to D116879: [llvm] Allow auto-vectorization of sincos() using libmvec.

Of the two reproducers linked in https://bugs.llvm.org/show_bug.cgi?id=51530, the sincos_simd.cpp now auto-vectorizes when compiling with clang++ -fveclib=libmvec -O2 -march=core-avx2 sincos_simd.cpp, even when the #pragma omp simd annotation is left out in the source.

Jan 9 2022, 12:53 AM · Restricted Project, Restricted Project
tim.schmielau updated the summary of D116879: [llvm] Allow auto-vectorization of sincos() using libmvec.
Jan 9 2022, 12:46 AM · Restricted Project, Restricted Project
tim.schmielau added reviewers for D116879: [llvm] Allow auto-vectorization of sincos() using libmvec: venkataramanan.kumar.llvm, abique, fpetrogalli, rengolin, spatel, fhahn.

Adding reviewers who commented on D88154.

Jan 9 2022, 12:34 AM · Restricted Project, Restricted Project
tim.schmielau requested review of D116879: [llvm] Allow auto-vectorization of sincos() using libmvec.
Jan 9 2022, 12:29 AM · Restricted Project, Restricted Project

Jan 8 2022

tim.schmielau added a comment to D32280: TableGen: Add support of Intrinsics with multiple returns.

This is my first activity on reviews.llvm.org, so I might just be lacking suitable permissions - I still don't see any way to close.
Thanks!
Tim

Jan 8 2022, 2:09 AM · Restricted Project

Jan 7 2022

tim.schmielau added a comment to D32280: TableGen: Add support of Intrinsics with multiple returns.

I tried to mark this patch as a duplicate of the merged https://reviews.llvm.org/D32888 and ideally close it as such, but could not figure out how.

Jan 7 2022, 12:18 PM · Restricted Project