Chip Kerchner
84cf3ff18d
Add pload_partial, pstore_partial (and unaligned versions), pgather_partial, pscatter_partial, loadPacketPartial and storePacketPartial.
2022-06-27 19:18:00 +00:00
Chip Kerchner
c603275dc9
Better performance for Power10 using more load and store vector pairs for GEMV
2022-06-27 18:11:55 +00:00
Chip Kerchner
4d1c16eab8
Fix tanh and erf to use vectorized version for EIGEN_FAST_MATH in VSX.
2022-06-15 16:06:43 +00:00
Chip Kerchner
aa8b7e2c37
Add subMappers to Power GEMM packing - simplifies the address calculations (10% faster)
2022-05-23 15:18:29 +00:00
Eisuke Kawashima
ac5c83a3f5
unset executable flag
2022-05-22 22:47:43 +09:00
Chip Kerchner
c2f15edc43
Add load vector_pairs for RHS of GEMM MMA. Improved predux GEMV.
2022-04-25 16:23:01 +00:00
Chip Kerchner
44ba7a0da3
Fix compiler bugs for GCC 10 & 11 for Power GEMM
2022-04-20 15:59:00 +00:00
Chip Kerchner
b02c384ef4
Add fused multiply functions for PowerPC - pmsub, pnmadd and pnmsub
2022-04-18 16:16:32 +00:00
Chip Kerchner
53eec53d2a
Fix Power GEMV order of operations in predux for MMA.
2022-04-11 21:29:05 +00:00
Chip Kerchner
403fa33409
Performance improvements in GEMM for Power
2022-04-05 12:18:53 +00:00
Chip Kerchner
0699fa06fe
Split general_matrix_vector_product interface for Power into two macros - one ColMajor and RowMajor.
2022-03-23 18:09:33 +00:00
Chip Kerchner
7b10795e39
Change EIGEN_ALTIVEC_ENABLE_MMA_DYNAMIC_DISPATCH and EIGEN_ALTIVEC_DISABLE_MMA flags to be like TensorFlow's...
2022-03-17 22:35:27 +00:00
Antonio Sanchez
e34db1239d
Fix missing pound
2022-03-16 12:26:12 -07:00
Antonio Sánchez
591906477b
Fix up PowerPC MMA flags so it builds by default.
2022-03-16 19:16:28 +00:00
Erik Schultheis
421cbf0866
Replace Eigen type metaprogramming with corresponding std types and make use of alias templates
2022-03-16 16:43:40 +00:00
Rasmus Munk Larsen
9ad5661482
Revert "Fix up PowerPC MMA flags so it builds by default."
2022-03-15 20:51:03 +00:00
Antonio Sánchez
65eeedf964
Fix up PowerPC MMA flags so it builds by default.
2022-03-15 20:22:23 +00:00
Sean McBride
f1b9692d63
Removed EIGEN_UNUSED decorations from many functions that are in fact used
2022-03-03 20:19:33 +00:00
Chip Kerchner
cb5ca1c901
Cleanup compiler warnings, etc from recent changes in GEMM & GEMV for PowerPC
2022-02-09 18:47:08 +00:00
Chip Kerchner
66464bd2a8
Fix number of block columns to NOT overflow the cache (PowerPC) abnormally in GEMV
2022-01-27 20:35:53 +00:00
Chip Kerchner
708fd6d136
Add MMA and performance improvements for VSX in GEMV for PowerPC.
2022-01-13 13:23:18 +00:00
Kolja Brix
8d81a2339c
Reduce usage of reserved names
2022-01-10 20:53:29 +00:00
Chip Kerchner
9cf34ee0ae
Invert rows and depth in non-vectorized portion of packing (PowerPC).
2021-10-28 21:59:41 +00:00
Rasmus Munk Larsen
d7d0bf832d
Issue an error in case of direct inclusion of internal headers.
2021-09-10 19:12:26 +00:00
Antonio Sanchez
2cc6ee0d2e
Add missing PPC packet comparisons.
...
This is to fix the packetmath tests on the ppc pipeline.
2021-08-17 07:42:04 -07:00
Chip-Kerchner
8dcf3e38ba
Fix unaligned loads in ploadLhs & ploadRhs for P8.
2021-08-16 20:28:22 -05:00
Chip-Kerchner
e07227c411
Reverse compare logic in F32ToBf16 since vec_cmpne is not available in Power8 - now compiles for clang10 default (P8).
2021-08-13 11:21:28 -05:00
Chip Kerchner
66499f0f17
Get rid of used uninitialized warnings for EIGEN_UNUSED_VARIABLE in gcc11+
2021-08-12 21:38:54 +00:00
ChipKerchner
413bc491f1
Fix errors on older compilers (gcc 7.5 - lack of vec_neg, clang10 - can not use const pointers with vec_xl).
2021-08-10 15:03:18 -05:00
Rasmus Munk Larsen
9312a5bf5c
Implement a generic vectorized version of Smith's algorithms for complex division.
2021-07-01 23:31:12 +00:00
Chip Kerchner
91e99ec1e0
Create the ability to disable the specialized gemm_pack_rhs in Eigen (only PPC) for TensorFlow
2021-06-30 23:05:04 +00:00
Rasmus Munk Larsen
bffd267d17
Small cleanup: Get rid of the macros EIGEN_HAS_SINGLE_INSTRUCTION_CJMADD and CJMADD, which were effectively unused, apart from on x86, where the change results in identically performing code.
2021-06-24 18:52:17 -07:00
Rasmus Munk Larsen
52a5f98212
Get rid of code duplication for conj_helper. For packets where LhsType=RhsType a single generic implementation suffices. For scalars, the generic implementation of pconj automatically forwards to numext::conj, so much of the existing specialization can be avoided. For mixed types we still need specializations.
2021-06-24 15:47:48 -07:00
Chip-Kerchner
ef1fd341a8
EIGEN_STRONG_INLINE was NOT inlining in some critical needed areas (6.6X slowdown) when used with Tensorflow. Changing to EIGEN_ALWAYS_INLINE where appropiate.
2021-06-16 16:30:31 +00:00
Antonio Sanchez
9e94c59570
Add missing ppc pcmp_lt_or_nan<Packet8bf>
2021-06-15 13:42:17 -07:00
Rasmus Munk Larsen
fc87e2cbaa
Use bit_cast to create -0.0 for floating point types to avoid compiler optimization changing sign with --ffast-math enabled.
2021-06-11 02:35:53 +00:00
Chip-Kerchner
06c2760bd1
Fix taking address of rvalue compiler issue with TensorFlow (plus other warnings).
2021-04-21 00:47:13 +00:00
Chip Kerchner
c24bee6120
Fix address of temporary object errors in clang11.
...
This fixes the problem with taking the address of temporary objects which clang11 treats as errors.
2021-04-02 16:27:08 +00:00
Chip Kerchner
d59ef212e1
Fixed performance issues for complex VSX and P10 MMA in gebp_kernel (level 3).
2021-03-25 11:08:19 +00:00
Chip Kerchner
c9d4367fa4
Fix pround and add print
2021-03-15 19:07:43 +00:00
Antonio Sanchez
c65c2b31d4
Make half/bfloat16 constructor take inputs by value, fix powerpc test.
...
Since `numeric_limits<half>::max_exponent` is a static inline constant,
it cannot be directly passed by reference. This triggers a linker error
in recent versions of `g++-powerpc64le`.
Changing `half` to take inputs by value fixes this. Wrapping
`max_exponent` with `int(...)` to make an addressable integer also fixes this
and may help with other custom `Scalar` types down-the-road.
Also eliminated some compile warnings for powerpc.
2021-02-27 21:32:06 +00:00
Chip-Kerchner
6eebe97bab
Fix clang compile when no MMA flags are set. Simplify MMA compiler detection.
2021-02-24 20:43:23 -06:00
Chip-Kerchner
c31ead8a15
Having forward template function declarations in a P10 file causes bad code in certain situations.
2021-02-24 23:43:30 +00:00
Chip-Kerchner
8523d447a1
Fixes to support old and new versions of the compilers for built-ins. Cast to non-const when using vector_pair with certain built-ins.
2021-02-24 20:49:15 +00:00
Chip-Kerchner
10c77b0ff4
Fix compilation errors with later versions of GCC and use of MMA.
2021-02-22 15:01:47 -06:00
Chip Kerchner
9b51dc7972
Fixed performance issues for VSX and P10 MMA in general_matrix_matrix_product
2021-02-17 17:49:23 +00:00
Antonio Sanchez
7ff0b7a980
Updated pfrexp implementation.
...
The original implementation fails for 0, denormals, inf, and NaN.
See #2150
2021-02-17 02:23:24 +00:00
Antonio Sanchez
4cb563a01e
Fix ldexp implementations.
...
The previous implementations produced garbage values if the exponent did
not fit within the exponent bits. See #2131 for a complete discussion,
and !375 for other possible implementations.
Here we implement the 4-factor version. See `pldexp_impl` in
`GenericPacketMathFunctions.h` for a full description.
The SSE `pcmp*` methods were moved down since `pcmp_le<Packet4i>`
requires `por`.
Left as a "TODO" is to delegate to a faster version if we know the
exponent does fit within the exponent bits.
Fixes #2131 .
2021-02-10 22:45:41 +00:00
Antonio Sanchez
56c8b14d87
Eliminate implicit conversions from float to double.
2021-02-01 15:31:01 -08:00
Antonio Sanchez
1615a27993
Fix altivec packetmath.
...
Allows the altivec packetmath tests to pass. There were a few issues:
- `pstoreu` was missing MSQ on `_BIG_ENDIAN` systems
- `cmp_*` didn't properly handle conversion of bool flags (0x7FC instead
of 0xFFFF)
- `pfrexp` needed to set the `exponent` argument.
Related to !370 , #2128
cc: @ChipKerchner @pdrocaldeira
Tested on `_BIG_ENDIAN` running on QEMU with VSX. Couldn't figure out build
flags to get it to work for little endian.
2021-01-28 18:37:09 +00:00