mbox series

[00/20] x86-64: Add vector functions to libmvec microbenchmark

Message ID 20220204062559.222989-1-skpgkp2@gmail.com
Headers show
Series x86-64: Add vector functions to libmvec microbenchmark | expand

Message

Sunil Pandey Feb. 4, 2022, 6:25 a.m. UTC
This patch set adds following vector functions in libmvec
microbenchmark infrastructure.

atan
atanf
asin
asinf
hypot
hypotf
exp2
exp2f
exp10
exp10f
cosh
coshf
expm1
expm1f
sinh
sinhf
cbrt
cbrtf
atan2
atan2f
log10
log10f
log2
log2f
log1p
log1pf
atanh
atanhf
acosh
acoshf
erf
erff
tanh
tanhf
asinh
asinhf
erfc
erfcf
tan
tanf

Input data set generated as follows.

libmvec-atan-inputs:
  arg1:
    90% Normal random distribution
    range: (-DBL_MAX, DBL_MAX)
    mean: 0.0
    sigma: 4.0
    10% uniform random distribution in range (-1.0e6, 1.0e6)
  arg2:
    90% Normal random distribution
    range: (-DBL_MAX, DBL_MAX)
    mean: 0.0
    sigma: 4.0
    10% uniform random distribution in range (-1.0e6, 1.0e6)

libmvec-atanf-inputs:
  arg1:
    90% Normal random distribution
    range: (-FLT_MAX, FLT_MAX)
    mean: 0.0f
    sigma: 4.0f
    10% uniform random distribution in range (-1.0e6f, 1.0e6f)
  arg2:
    90% Normal random distribution
    range: (-FLT_MAX, FLT_MAX)
    mean: 0.0f
    sigma: 4.0f
    10% uniform random distribution in range (-1.0e6f, 1.0e6f)

libmvec-asin-inputs:
  90% Normal random distribution
  range: (-1.0, 1.0)
  mean: 0.0
  sigma: 1.0
  10% uniform random distribution in range (-1.0, 1.0)

libmvec-asinf-inputs:
  90% Normal random distribution
  range: (-1.0f, 1.0f)
  mean: 0.0f
  sigma: 1.0f
  10% uniform random distribution in range (-1.0f, 1.0f)

libmvec-hypot-inputs:
  arg1:
    90% Normal random distribution
    range: (-DBL_MAX, DBL_MAX)
    mean: 0.0
    sigma: 10.0
    10% uniform random distribution in range (-1000.0, 1000.0)
  arg1:
    90% Normal random distribution
    range: (-DBL_MAX, DBL_MAX)
    mean: 0.0
    sigma: 10.0
    10% uniform random distribution in range (-1000.0, 1000.0)

libmvec-hypotf-inputs:
  arg1:
    90% Normal random distribution
    range: (-FLT_MAX, FLT_MAX)
    mean: 0.0f
    sigma: 10.0f
    10% uniform random distribution in range (-1000.0f, 1000.0f)
  arg2:
    90% Normal random distribution
    range: (-FLT_MAX, FLT_MAX)
    mean: 0.0f
    sigma: 10.0f
    10% uniform random distribution in range (-1000.0f, 1000.0f)

libmvec-exp2-inputs:
  90% Normal random distribution
  range: (-1022.0, 1024.0)
  mean: 0.0
  sigma: 16.0
  10% uniform random distribution in range (-1000.0, 1000.0)

libmvec-exp2f-inputs:
  90% Normal random distribution
  range: (-126.0f, 128.0f)
  mean: 0.0f
  sigma: 8.0f
  10% uniform random distribution in range (-100.0f, 100.0f)

libmvec-exp10-inputs:
  90% Normal random distribution
  range: (-307.0, 308.0)
  mean: 0.0
  sigma: 16.0
  10% uniform random distribution in range (-250.0, 250.0)

libmvec-exp10f-inputs:
  90% Normal random distribution
  range: (-37.0f, 38.0f)
  mean: 0.0f
  sigma: 8.0f
  10% uniform random distribution in range (-25.0f, 25.0f)

libmvec-cosh-inputs:
  90% Normal random distribution
  range: (-710.0, 710.0)
  mean: 0.0
  sigma: 32.0
  10% uniform random distribution in range (-500.0, 500.0)

libmvec-coshf-inputs:
  90% Normal random distribution
  range: (-89.0f, 89.0f)
  mean: 0.0f
  sigma: 16.0f
  10% uniform random distribution in range (-50.0f, 50.0f)

libmvec-expm1-inputs:
  90% Normal random distribution
  range: (-708.0, 709.0)
  mean: 0.0
  sigma: 16.0
  10% uniform random distribution in range (-500.0, 500.0)

libmvec-expm1f-inputs:
  90% Normal random distribution
  range: (-87.0f, 88.0f)
  mean: 0.0f
  sigma: 8.0f
  10% uniform random distribution in range (-50.0f, 50.0f)

libmvec-sinh-inputs:
  90% Normal random distribution
  range: (-710.0, 710.0)
  mean: 0.0
  sigma: 32.0
  10% uniform random distribution in range (-500.0, 500.0)

libmvec-sinhf-inputs:
  90% Normal random distribution
  range: (-89.0f, 89.0f)
  mean: 0.0f
  sigma: 16.0f
  10% uniform random distribution in range (-50.0f, 50.0f)

libmvec-cbrt-inputs:
  90% Normal random distribution
  range: (-DBL_MAX, DBL_MAX)
  mean: 0.0
  sigma: 10.0
  10% uniform random distribution in range (-1000.0, 1000.0)

libmvec-cbrtf-inputs:
  90% Normal random distribution
  range: (-FLT_MAX, FLT_MAX)
  mean: 0.0f
  sigma: 10.0f
  10% uniform random distribution in range (-1000.0f, 1000.0f)

libmvec-atan2-inputs:
  arg1:
    90% Normal random distribution
    range: (-DBL_MAX, DBL_MAX)
    mean: 0.0
    sigma: 4.0
    10% uniform random distribution in range (-1.0e6, 1.0e6)
  arg2:
    90% Normal random distribution
    range: (-DBL_MAX, DBL_MAX)
    mean: 0.0
    sigma: 4.0
    10% uniform random distribution in range (-1.0e6, 1.0e6)

libmvec-atan2f-inputs:
  arg1:
    90% Normal random distribution
    range: (-FLT_MAX, FLT_MAX)
    mean: 0.0f
    sigma: 4.0f
    10% uniform random distribution in range (-1.0e6f, 1.0e6f)
  arg2:
    90% Normal random distribution
    range: (-FLT_MAX, FLT_MAX)
    mean: 0.0f
    sigma: 4.0f
    10% uniform random distribution in range (-1.0e6f, 1.0e6f)

libmvec-log10-inputs:
  70% Normal random distribution
  range: (0.0, DBL_MAX)
  mean: 1.0
  sigma: 50.0
  30% uniform random distribution in range (0.0, 1.0e6)

libmvec-log10f-inputs:
  70% Normal random distribution
  range: (0.0f, FLT_MAX)
  mean: 1.0f
  sigma: 50.0f
  30% uniform random distribution in range (0.0f, 1.0e6f)

libmvec-log2-inputs:
  70% Normal random distribution
  range: (0.0, DBL_MAX)
  mean: 1.0
  sigma: 50.0
  30% uniform random distribution in range (0.0, 1.0e6)

libmvec-log2f-inputs:
  70% Normal random distribution
  range: (0.0f, FLT_MAX)
  mean: 1.0f
  sigma: 50.0f
  30% uniform random distribution in range (0.0f, 1.0e6f)

libmvec-log1p-inputs:
  70% Normal random distribution
  range: (-1.0, DBL_MAX)
  mean: 0.0
  sigma: 50.0
  30% uniform random distribution in range (-1.0, 1.0e6)

libmvec-log1pf-inputs:
  70% Normal random distribution
  range: (-1.0f, FLT_MAX)
  mean: 0.0f
  sigma: 50.0f
  30% uniform random distribution in range (-1.0f, 1.0e6f)

libmvec-atanh-inputs:
  90% Normal random distribution
  range: (-1.0, 1.0)
  mean: 0.0
  sigma: 1.0
  10% uniform random distribution in range (-1.0, 1.0)

libmvec-atanhf-inputs:
  90% Normal random distribution
  range: (-1.0f, 1.0f)
  mean: 0.0f
  sigma: 1.0f
  10% uniform random distribution in range (-1.0f, 1.0f)

libmvec-acosh-inputs:
  90% Normal random distribution
  range: (1.0, DBL_MAX)
  mean: 1.0
  sigma: 8.0
  10% uniform random distribution in range (1.0, 1.0e6)

libmvec-acoshf-inputs:
  90% Normal random distribution
  range: (1.0f, FLT_MAX)
  mean: 1.0f
  sigma: 4.0f
  10% uniform random distribution in range (1.0f, 1.0e6f)

libmvec-erf-inputs:
  90% Normal random distribution
  range: (-6.0, 6.0)
  mean: 0.0
  sigma: 1.0
  10% uniform random distribution in range (-5.9, 5.9)

libmvec-erff-inputs:
  90% Normal random distribution
  range: (-4.0f, 4.0f)
  mean: 0.0f
  sigma: 1.0f
  10% uniform random distribution in range (-3.9f, 3.9f)

libmvec-tanh-inputs:
  90% Normal random distribution
  range: (-19.0, 19.0)
  mean: 0.0
  sigma: 2.0
  10% uniform random distribution in range (-16.0, 16.0)

libmvec-tanhf-inputs:
  90% Normal random distribution
  range: (-10.0f, 10.0f)
  mean: 0.0f
  sigma: 2.0f
  10% uniform random distribution in range (-8.0f, 8.0f)

libmvec-asinh-inputs:
  90% Normal random distribution
  range: (-DBL_MAX, DBL_MAX)
  mean: 0.0
  sigma: 2.0
  10% uniform random distribution in range (-1.0e6, 1.0e6)

libmvec-asinhf-inputs:
  90% Normal random distribution
  range: (-FLT_MAX, FLT_MAX)
  mean: 0.0f
  sigma: 2.0f
  10% uniform random distribution in range (-1.0e6f, 1.0e6f)

libmvec-erfc-inputs:
  90% Normal random distribution
  range: (-6.0, 6.0)
  mean: 0.0
  sigma: 1.0
  10% uniform random distribution in range (-5.9, 5.9)

libmvec-erfcf-inputs:
  90% Normal random distribution
  range: (-4.0f, 4.0f)
  mean: 0.0f
  sigma: 1.0f
  10% uniform random distribution in range (-3.9f, 3.9f)

libmvec-tan-inputs:
  90% Normal random distribution
  range: (-DBL_MAX, DBL_MAX)
  mean: 0.0
  sigma: 5.0
  10% uniform random distribution in range (-1000.0, 1000.0)

libmvec-tanf-inputs:
  90% Normal random distribution
  range: (-FLT_MAX, FLT_MAX)
  mean: 0.0f
  sigma: 5.0f
  10% uniform random distribution in range (-1000.0f, 1000.0f)

Sunil K Pandey (20):
  x86-64: Add vector atan/atanf to libmvec microbenchmark
  x86-64: Add vector asin/asinf to libmvec microbenchmark
  x86-64: Add vector hypot/hypotf to libmvec microbenchmark
  x86-64: Add vector exp2/exp2f to libmvec microbenchmark
  x86-64: Add vector exp10/exp10f to libmvec microbenchmark
  x86-64: Add vector cosh/coshf to libmvec microbenchmark
  x86-64: Add vector expm1/expm1f to libmvec microbenchmark
  x86-64: Add vector sinh/sinhf to libmvec microbenchmark
  x86-64: Add vector cbrt/cbrtf to libmvec microbenchmark
  x86-64: Add vector atan2/atan2f to libmvec microbenchmark
  x86-64: Add vector log10/log10f to libmvec microbenchmark
  x86-64: Add vector log2/log2f to libmvec microbenchmark
  x86-64: Add vector log1p/log1pf to libmvec microbenchmark
  x86-64: Add vector atanh/atanhf to libmvec microbenchmark
  x86-64: Add vector acosh/acoshf to libmvec microbenchmark
  x86-64: Add vector erf/erff to libmvec microbenchmark
  x86-64: Add vector tanh/tanhf to libmvec microbenchmark
  x86-64: Add vector asinh/asinhf to libmvec microbenchmark
  x86-64: Add vector erfc/erfcf to libmvec microbenchmark
  x86-64: Add vector tan/tanf to libmvec microbenchmark

 sysdeps/x86_64/fpu/Makeconfig            |   20 +
 sysdeps/x86_64/fpu/libmvec-acosh-inputs  | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-acoshf-inputs | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-asin-inputs   | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-asinf-inputs  | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-asinh-inputs  | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-asinhf-inputs | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-atan-inputs   | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-atan2-inputs  | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-atan2f-inputs | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-atanf-inputs  | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-atanh-inputs  | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-atanhf-inputs | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-cbrt-inputs   | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-cbrtf-inputs  | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-cosh-inputs   | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-coshf-inputs  | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-erf-inputs    | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-erfc-inputs   | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-erfcf-inputs  | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-erff-inputs   | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-exp10-inputs  | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-exp10f-inputs | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-exp2-inputs   | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-exp2f-inputs  | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-expm1-inputs  | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-expm1f-inputs | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-hypot-inputs  | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-hypotf-inputs | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-log10-inputs  | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-log10f-inputs | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-log1p-inputs  | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-log1pf-inputs | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-log2-inputs   | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-log2f-inputs  | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-sinh-inputs   | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-sinhf-inputs  | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-tan-inputs    | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-tanf-inputs   | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-tanh-inputs   | 4100 ++++++++++++++++++++++
 sysdeps/x86_64/fpu/libmvec-tanhf-inputs  | 4100 ++++++++++++++++++++++
 41 files changed, 164020 insertions(+)
 create mode 100644 sysdeps/x86_64/fpu/libmvec-acosh-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-acoshf-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-asin-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-asinf-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-asinh-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-asinhf-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-atan-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-atan2-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-atan2f-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-atanf-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-atanh-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-atanhf-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-cbrt-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-cbrtf-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-cosh-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-coshf-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-erf-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-erfc-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-erfcf-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-erff-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-exp10-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-exp10f-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-exp2-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-exp2f-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-expm1-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-expm1f-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-hypot-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-hypotf-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-log10-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-log10f-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-log1p-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-log1pf-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-log2-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-log2f-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-sinh-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-sinhf-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-tan-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-tanf-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-tanh-inputs
 create mode 100644 sysdeps/x86_64/fpu/libmvec-tanhf-inputs