mbox series

[v4,0/2] Add AVX512F optimization option and buffer_zero_avx512()

Message ID 1582979675-22550-1-git-send-email-robert.hu@linux.intel.com (mailing list archive)
Headers show
Series Add AVX512F optimization option and buffer_zero_avx512() | expand

Message

Robert Hoo Feb. 29, 2020, 12:34 p.m. UTC
1) Introduce {enable,disable}-avx512f configure option

2) Implement new buffer_zero_avx512() with AVX512F instructions

Changes in v4:
In init_cpuid_cache(), stringently test AVX512F OS level enablement.

Changes in v3:
In init_accel(), init length_to_accel value in every accel case, because
in unit test, it will be invoked several times with different accel cases.
(Thanks Richard's careful review)

Changes in v2:
1. Fixes wrong definition of CACHE_SSE2 in v1.
2. Fixes not handle <256 length case in buffer_zero_avx512() implementaion.
(Follow Richard's suggestion: handle the case in select_accel_fn(), and have a
global variable alongside buffer_accel)
3. Changes avx512f configuration option's default status to disabled.
4. Ran 'make check-unit' on this patch, on both a Ivybridge machine and a
CascadeLake machine.


Robert Hoo (2):
  configure: add configure option avx512f_opt
  util: add util function buffer_zero_avx512()

 configure            | 41 +++++++++++++++++++++++++++++
 include/qemu/cpuid.h |  3 +++
 util/bufferiszero.c  | 74 +++++++++++++++++++++++++++++++++++++++++++++-------
 3 files changed, 108 insertions(+), 10 deletions(-)

Comments

Paolo Bonzini March 6, 2020, 8:36 a.m. UTC | #1
On 29/02/20 13:34, Robert Hoo wrote:
> 1) Introduce {enable,disable}-avx512f configure option
> 
> 2) Implement new buffer_zero_avx512() with AVX512F instructions
> 
> Changes in v4:
> In init_cpuid_cache(), stringently test AVX512F OS level enablement.
> 
> Changes in v3:
> In init_accel(), init length_to_accel value in every accel case, because
> in unit test, it will be invoked several times with different accel cases.
> (Thanks Richard's careful review)
> 
> Changes in v2:
> 1. Fixes wrong definition of CACHE_SSE2 in v1.
> 2. Fixes not handle <256 length case in buffer_zero_avx512() implementaion.
> (Follow Richard's suggestion: handle the case in select_accel_fn(), and have a
> global variable alongside buffer_accel)
> 3. Changes avx512f configuration option's default status to disabled.
> 4. Ran 'make check-unit' on this patch, on both a Ivybridge machine and a
> CascadeLake machine.
> 
> 
> Robert Hoo (2):
>   configure: add configure option avx512f_opt
>   util: add util function buffer_zero_avx512()
> 
>  configure            | 41 +++++++++++++++++++++++++++++
>  include/qemu/cpuid.h |  3 +++
>  util/bufferiszero.c  | 74 +++++++++++++++++++++++++++++++++++++++++++++-------
>  3 files changed, 108 insertions(+), 10 deletions(-)
> 

Queued, thanks.

Paolo