Commit Graph

25 Commits

Author SHA1 Message Date
Robert Schulze
05606a8835
Clean up GCC warning pragmas 2023-04-11 18:21:08 +00:00
Zhiguo Zhou
8b20e9f505
Vectorize AssociativeGenericApplierImpl::apply (#43669)
* Vectorize AssociativeGenericApplierImpl::apply

This commit achieved the auto-vectorization by redefining numerical
values of ternary representations and corresponding implementations
of And/Or operators, caching the intermediate ternary values in a
continuous range of memory for the SIMD instructions to consume,
and removing the short-circuit for the ternary logic evaluation.

* Optimize TernaryValueBuilder for ColumnNullable

The numerical representation of a ColumnNullable is calculated from
the data column of any data type and the null map column of UInt8
with a bitwise operation expression, which is efficient for auto-
vectorization. However, when this expression is applied to a data
column of a type other than UInt8, the SIMD register is not fully
utilized due to the mismatch of data types, and the data throughput
regresses.

To optimize the SIMD register usage, the has_value flag is firstly
evaluated from the data column and stored in a UInt8 array. Then it
is loaded from memory before the calculation of bitwise operation
expression, so that the types of the operands are both UInt8.
2022-12-15 18:27:19 +01:00
Azat Khuzhin
4e76629aaf Fixes for -Wshorten-64-to-32
- lots of static_cast
- add safe_cast
- types adjustments
  - config
  - IStorage::read/watch
  - ...
- some TODO's (to convert types in future)

P.S. That was quite a journey...

v2: fixes after rebase
v3: fix conflicts after #42308 merged
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-10-21 13:25:19 +02:00
Maksim Kita
91eec8962f Rename test 2022-03-30 18:39:28 +02:00
Jakub Kuklis
169c49c583
Correcting style and resolving warnings 2021-12-13 17:57:28 +01:00
Jakub Kuklis
7dbb217a9a
Correcting { placement 2021-12-13 17:57:27 +01:00
Jakub Kuklis
439082aa98
Adding a null map negative test, the new hasAll implementation needs correction for that case 2021-12-13 17:57:26 +01:00
Jakub Kuklis
abecb8114f
Refactoring the hasAll gtest so that it works with the original hasAll 2021-12-13 17:57:25 +01:00
Youenn Lebras
3548e974e1
Implement HasAll specialization for SSE and AVX2 2021-12-13 17:57:21 +01:00
Nikita Mikhaylov
5bf64c62c2 Delete test 2021-10-12 10:19:21 +00:00
Pavel Kruglov
e792fa588f Mark all Functions as sutable or not for executing as short circuit arguments 2021-08-09 17:50:09 +03:00
Nikita Mikhaylov
9f55424250 move to examples everywhere 2021-04-27 01:51:42 +03:00
Alexey Milovidov
85b5805c3c Fix tests 2021-02-04 19:36:31 +03:00
Alexey Milovidov
f7c77b4a25 Fix unit tests 2020-11-04 13:14:23 +03:00
Ivan Lezhankin
7ea393ada8 Fix build without libraries 2020-10-10 23:41:27 +03:00
Artem Zuikov
d304d522cc
Refactoring: rename types to allow change bigint library (#14219) 2020-09-01 12:54:50 +03:00
Artem Zuikov
becc186c91
Add support for extended precision integers and decimals (#13097) 2020-08-19 14:52:17 +03:00
Nikita Mikhaylov
5a6a40437a remove includes from all Function sources 2020-07-29 21:14:48 +03:00
Nikita Mikhaylov
1d6c2ba689 rewrite other test + remove useless includes 2020-07-29 20:37:57 +03:00
nikitamikhaylov
2909d965db delete file 2020-07-29 17:47:42 +03:00
nikitamikhaylov
86c1cc71ea try 2020-07-29 17:45:16 +03:00
nikitamikhaylov
9df54946cf fix clang-tidy build 2020-07-29 17:06:33 +03:00
philip.han
3554e6c36a Replace vector with PODArray and add testcases 2020-07-17 21:06:29 +09:00
philip.han
6c814c9f9f Add bayesAB function for bayesian_ab_testing 2020-07-09 22:11:40 +09:00
Ivan Lezhankin
06446b4f08 dbms/ → src/ 2020-04-03 18:14:31 +03:00