On Thu, Mar 20, 2025 at 2:37 AM Liu, Hongtao <hongtao....@intel.com> wrote: > > > > > -----Original Message----- > > From: Jiang, Haochen <haochen.ji...@intel.com> > > Sent: Wednesday, March 19, 2025 3:38 PM > > To: gcc-patches@gcc.gnu.org > > Cc: Liu, Hongtao <hongtao....@intel.com>; ubiz...@gmail.com > > Subject: [PATCH 00/27] Use avx10.x as the only option for AVX10 with 512 bit > > vector support while remove avx10.x-256/512 option and 256 bit rounding > > support > > > > Hi all, > > > > It is a little late for this change but I hope this will be a welcoming > > change since > > it will greatly simplify the compiler options and reduce confusion for AVX10 > > option combination with AVX512. > > > > AVX10 whitepaper just got a major change and it will impact how we design > > the compiler option, which will actually simplify everything. > I like the decision.
I also like the decision. Hopefully they stick to it this time ... Richard. > Ok for the series. > But I'd like to leave a little time for others to comment. so please COMMIT > this series in next week if there's no objection. > > > > Ref: https://cdrdv2.intel.com/v1/dl/getContent/784343 > > > > In this new whitepaper, all the platforms will support 512 bit vector width > > (previously, E-core is up to 256 bit, leading to hybrid clients and Atom > > Server > > 256 bit only). Also, 256 bit rounding is not that useful because we > > currently > > have rounding feature directly on E-core now and no need to use 256-bit > > rounding as somehow a workaround. HW will remove that support. > > > > Thus, there is no need to add avx10.x-256/512 into compiler options. A > > simple avx10.x supporting all vector length is all we need. The change also > > makes -mno-evex512 not that useful. It is introduced with avx10.1-256 for > > compiling 256 bit only binary on legacy platforms to have a partial trial > > for > > avx10.x-256. What we also need to do is to remove 256 bit rounding. > > > > For new features added in GCC 15 (i.e., option avx10.2-256/512 and 256 bit > > rounding), we will just simply remove them. Since avx10.2 has been directed > > to 512 bit previously. No need to change that option. We will keep the > > testcase > > and intrin file structure for now since it is late in GCC 15 release cycle > > and do > > clean up in GCC 16. > > > > For features added in GCC 14 (i.e., option avx10.1-256/512 and no-evex512), > > we will raise a deprecate warning in GCC 15 and finally remove them in GCC > > 16. Also, we will need to add avx10.1 back (it was removed just less than > > one > > month ago) and direct it to 512 bit with a warning in GCC 15 since it was > > aliased to 256 bit previously. The deprecate and re-alias warning would also > > like to be backported to GCC 14 and landed into GCC 14.3. > > > > The change will also lead to AVX10 and AVX512 option combination design > > simplification. Since we do not need to consider vector width enabled > > anymore, it is much more natural to just treat avx10.1 to an alias of all > > avx512xxx in SPR. Thus, "-mavx10.1 -mno-avx512fp16" should enable all > > AVX512 features while disabling AVX512FP16. And "-mavx512f -mno- > > avx10.1" > > should disable all AVX512 features. Both of the two combinations currently > > will ignore "-mno-". In GCC 15, we will raise a warning to mention that we > > are > > going to change that behavior in GCC 16. > > > > Upcoming would be the patches we want to landed in GCC 15. The first two > > patches are removing 256 bit roundings added with AVX10.2 new > > instructions. > > Then the following 22 are simple revert patch for the legacy instruction > > 256 bit ymm rounding addition. The last three patch is for avx10.x option > > change. > > > > Thx, > > Haochen > > >