This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] x86_64: memset optimized with AVX512


On Fri, Dec 18, 2015 at 6:06 AM, Andrew Senkevich
<andrew.n.senkevich@gmail.com> wrote:
> 2015-12-16 20:19 GMT+03:00 H.J. Lu <hjl.tools@gmail.com>:
>> On Fri, Dec 11, 2015 at 10:13 AM, Andrew Senkevich
>> <andrew.n.senkevich@gmail.com> wrote:
>>> 2015-12-11 17:43 GMT+03:00 H.J. Lu <hjl.tools@gmail.com>:
>>>>> Please make following changes:
>>>>>
>>>>> 1.  Change _avx512 to _avx512_no_vzeroupper.
>>>>> 2.  Add a feature, Prefer_No_VZEROUPPER, to cpu-features.h, and set
>>>>> it for KNL.
>>>>> 3. Check Prefer_No_VZEROUPPER instead of AVX512DQ_Usable,
>>>>> 4. Don't check AVX512DQ_Usable nor  Prefer_No_VZEROUPPER in
>>>>> ifunc-impl-list.c.
>>>>>
>>>>
>>>> I submitted a patch to enable SLM optimization for KNL:
>>>>
>>>> https://sourceware.org/ml/libc-alpha/2015-12/msg00221.html
>>>>
>>>> It is on hjl/32bit/master branch.   Please rebase your patch against
>>>> mine since it adds KNL optimization.
>>>
>>> Here ir rebased and updated version:
>>>
>>> From f488d8572bc43c731b0ce054ce1f84db7d90eb61 Mon Sep 17 00:00:00 2001
>>> From: Andrew Senkevich <andrew.senkevich@intel.com>
>>> Date: Fri, 11 Dec 2015 20:58:57 +0300
>>> Subject: [PATCH] Added memset optimized with AVX512 for KNL hardware.
>>>
>>> It shows improvement up to 28% over AVX2 memset (performance results
>>> attached at <https://sourceware.org/ml/libc-alpha/2015-12/msg00052.html>).
>>>
>>>         * sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S: New file.
>>>         * sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Added new file.
>>>         * sysdeps/x86_64/multiarch/ifunc-impl-list.c: Added new tests.
>>>         * sysdeps/x86_64/multiarch/memset.S: Added new IFUNC branch.
>>>         * sysdeps/x86_64/multiarch/memset_chk.S: Likewise.
>>>         * sysdeps/x86/cpu-features.h (bit_Prefer_No_VZEROUPPER,
>>>         index_Prefer_No_VZEROUPPER): New.
>>>         * sysdeps/x86/cpu-features.c (init_cpu_features): Set the
>>>         Prefer_No_VZEROUPPER for Knights Landing.
>>
>> Looks good to me.
>>
>> Thanks.
>
> Is it OK for trunk?
>
>

Yes, please check it in.

Thanks.


-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]