Commit Graph

39 Commits

Author SHA1 Message Date
Maksim Kita
129b97c727 JIT infrastructure refactoring 2023-06-20 11:42:22 +03:00
Robert Schulze
05606a8835
Clean up GCC warning pragmas 2023-04-11 18:21:08 +00:00
avogar
a7129332af Don't execute and/or/if/multiIf on LowCardinality dictionary 2022-12-20 22:07:59 +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
905a95e166 Review fixes
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-10-21 22:40:13 +02: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
Alexey Milovidov
84f42e0874 Fix 3/4 of trash 2022-09-19 08:50:53 +02:00
Maksim Kita
538f8cbaad Fix clang-tidy warnings in Disks, Formats, Functions folders 2022-03-14 18:17:35 +00:00
Maksim Kita
51477adf1b Updated additional cases 2021-12-20 15:55:07 +03:00
Alexey Milovidov
fe6b7c77c7 Rename "common" to "base" 2021-10-02 10:13:14 +03:00
Pavel Kruglov
70b51133c1 Try to simplify code 2021-08-09 18:01:08 +03:00
Pavel Kruglov
9fd4d14521 Fix style, build, add test 2021-08-09 17:57:50 +03:00
Pavel Kruglov
3ec2ab6156 Avoid using expand, fix bugs, add tests and comments 2021-08-09 17:54:49 +03:00
Pavel Kruglov
0662df8b76 Fix performance with JIT, add arguments to function isSuitableForShortCircuitArgumentsExecution 2021-08-09 17:54:14 +03: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
Pavel Kruglov
b6061e132a Small fixes 2021-08-09 17:44:39 +03:00
Pavel Kruglov
400cad4d8b Refactor, fix bugs, improve performance 2021-08-09 17:44:04 +03:00
Pavel Kruglov
775d190fb3 Fix tests 2021-08-09 17:43:10 +03:00
Pavel Kruglov
50d4192126 Implement short circuit function evaluation, first attempt 2021-08-09 17:43:10 +03:00
Nikolai Kochetov
dbaa6ffc62 Rename ContextConstPtr to ContextPtr. 2021-06-01 15:20:52 +03:00
Alexander Kuzmenkov
3f57fc085b remove mutable context references from functions interface
Also remove it from some visitors.
2021-05-28 19:45:37 +03:00
Maksim Kita
7af4d5b86d Fixed tests 2021-05-24 14:25:02 +03:00
Maksim Kita
af233007f6 Fixed code review issues 2021-05-24 12:30:28 +03:00
Maksim Kita
1a725d916b Upated LogicalFunctions 2021-05-24 10:16:12 +03:00
Maksim Kita
d923d9e6ef Function move file 2021-05-17 10:30:42 +03:00
Maksim Kita
947f28d430 IFunction refactoring 2021-05-15 20:33:15 +03:00
Maksim Kita
24798ef07c Updated interfaces 2021-05-08 17:39:34 +03:00
Maksim Kita
6b70cbd53c Added jit example 2021-05-08 17:39:34 +03:00
Ivan
495c6e03aa
Replace all Context references with std::weak_ptr (#22297)
* Replace all Context references with std::weak_ptr

* Fix shared context captured by value

* Fix build

* Fix Context with named sessions

* Fix copy context

* Fix gcc build

* Merge with master and fix build

* Fix gcc-9 build
2021-04-11 02:33:54 +03:00
Ivan Lezhankin
f897f7c93f Refactor IFunction to execute with const arguments 2020-11-17 16:24:45 +03:00
Nikolai Kochetov
740fad66f3 Part 6. 2020-10-18 22:00:13 +03:00
Nikolai Kochetov
959424f28a Rename block to columns. 2020-10-14 17:04:50 +03:00
Nikolai Kochetov
966b1d6cf5 Rename Block to ColumnsWithTypeAndName. 2020-10-14 16:09:11 +03:00
Artem Zuikov
51ba12c2c3
Try speedup build (#14809) 2020-09-15 12:55:57 +03:00
Alexey Milovidov
5dbdd8ea3d More range checks when compile_expressions = 1 2020-08-26 19:49:19 +03:00
Nikolai Kochetov
e4689ce302 Make IFunction::executeImpl const. 2020-07-21 16:58:07 +03:00
Alexey Milovidov
5ef4e90dfb Fix minor issues after #12196 2020-07-07 23:56:40 +03:00
Alexander Kazakov
2906ae37f5 Simple (and fast) inplace fix for UInt8 -> bool 2020-07-07 13:26:11 +03:00
Ivan Lezhankin
06446b4f08 dbms/ → src/ 2020-04-03 18:14:31 +03:00