]> git.ipfire.org Git - thirdparty/vectorscan.git/log
thirdparty/vectorscan.git
3 years agoatm, do not built benchmark tool for fat runtime, as the function names are modified...
Konstantinos Margaritis [Fri, 8 Oct 2021 21:25:29 +0000 (00:25 +0300)] 
atm, do not built benchmark tool for fat runtime, as the function names are modified, need to rethink this

3 years agoImprove benchmarks
Konstantinos Margaritis [Sun, 3 Oct 2021 10:51:31 +0000 (10:51 +0000)] 
Improve benchmarks

3 years agooptimize and simplify Shufti and Truffle to work with a single block method instead
Konstantinos Margaritis [Sun, 3 Oct 2021 10:51:03 +0000 (10:51 +0000)] 
optimize and simplify Shufti and Truffle to work with a single block method instead

3 years agono need to convert to size_t
Konstantinos Margaritis [Sun, 3 Oct 2021 10:49:38 +0000 (10:49 +0000)] 
no need to convert to size_t

3 years agoremove asserts, as they are not needed
Konstantinos Margaritis [Sun, 3 Oct 2021 10:49:09 +0000 (10:49 +0000)] 
remove asserts, as they are not needed

3 years agofirstMatch/lastMatch are now arch-dependent, emulating movemask on non-Intel is very...
Konstantinos Margaritis [Sun, 3 Oct 2021 10:47:53 +0000 (10:47 +0000)] 
firstMatch/lastMatch are now arch-dependent, emulating movemask on non-Intel is very costly, the alternative is almost twice as fast on Arm

3 years agofix for new pshufb
Konstantinos Margaritis [Sun, 3 Oct 2021 10:46:47 +0000 (10:46 +0000)] 
fix for new pshufb

3 years agoChanges/Additions to SuperVector class * added ==,!=,>=,>,<=,< operators * reworked...
Konstantinos Margaritis [Sun, 3 Oct 2021 10:43:13 +0000 (10:43 +0000)] 
Changes/Additions to SuperVector class * added ==,!=,>=,>,<=,< operators * reworked shift operators to be more uniform and orthogonal, like Arm ISA * Added Unroller class to allow handling of multiple cases but avoid code duplication * pshufb method can now emulate Intel or not (avoids one instruction).

3 years agoinitial SSE/AVX2 implementation
Konstantinos Margaritis [Mon, 20 Sep 2021 20:52:31 +0000 (23:52 +0300)] 
initial SSE/AVX2 implementation

3 years agoremove adding CMAKE_CXX_IMPLICIT_LINK_LIBRARIES to PRIVATE_LIBS
Duncan Bellamy [Mon, 27 Sep 2021 08:37:00 +0000 (09:37 +0100)] 
remove adding CMAKE_CXX_IMPLICIT_LINK_LIBRARIES to PRIVATE_LIBS
as on alpine linux this add gcc_s which is a shared library

on alpine:
Libs.private: -lstdc++ -lm -lssp_nonshared -lgcc_s -lgcc -lc -lgcc_s -lgcc

3 years agoUnify benchmarks, more accurate measurements
apostolos [Wed, 22 Sep 2021 09:05:28 +0000 (12:05 +0300)] 
Unify benchmarks, more accurate measurements

3 years agoUnify benchmarks, more accurate measurements
Konstantinos Margaritis [Wed, 22 Sep 2021 08:21:37 +0000 (11:21 +0300)] 
Unify benchmarks, more accurate measurements

(cherry picked from commit f50d7656bc78c54ec25916b6c8e655c188d79a13)

3 years agobenchmarks functions replaced with lambdas
apostolos [Thu, 16 Sep 2021 14:23:10 +0000 (17:23 +0300)] 
benchmarks functions replaced with lambdas

3 years agoraw pointers replaced with smart pointers
apostolos [Wed, 15 Sep 2021 10:03:25 +0000 (13:03 +0300)] 
raw pointers replaced with smart pointers

3 years agonit
apostolos [Tue, 14 Sep 2021 13:35:33 +0000 (16:35 +0300)] 
nit

3 years agonit
apostolos [Tue, 14 Sep 2021 13:01:32 +0000 (16:01 +0300)] 
nit

3 years agofix benchmarks outputs
apostolos [Tue, 14 Sep 2021 12:32:26 +0000 (15:32 +0300)] 
fix benchmarks outputs

3 years agobandwidth output fixes
apostolos [Mon, 13 Sep 2021 17:25:46 +0000 (20:25 +0300)] 
bandwidth output fixes

3 years agosize outup for case with match fixed
apostolos [Mon, 13 Sep 2021 07:09:13 +0000 (10:09 +0300)] 
size outup for case with match fixed

3 years agonits
apostolos [Thu, 9 Sep 2021 09:06:02 +0000 (12:06 +0300)] 
nits

3 years agosize output fixed
apostolos [Thu, 9 Sep 2021 09:02:33 +0000 (12:02 +0300)] 
size output fixed

3 years agonits
apostolos [Tue, 7 Sep 2021 08:41:19 +0000 (11:41 +0300)] 
nits

3 years agobenchmarks output fixes
apostolos [Tue, 7 Sep 2021 08:01:10 +0000 (11:01 +0300)] 
benchmarks output fixes

3 years agoadd missing header
Konstantinos Margaritis [Thu, 2 Sep 2021 12:35:23 +0000 (15:35 +0300)] 
add missing header

3 years agoremove confusing OPTIMISE flag
Konstantinos Margaritis [Thu, 2 Sep 2021 12:34:55 +0000 (15:34 +0300)] 
remove confusing OPTIMISE flag

3 years agonits
apostolos [Wed, 25 Aug 2021 08:43:33 +0000 (11:43 +0300)] 
nits

3 years agocode size reduction by using function arrays and add bandwidth to output
apostolos [Wed, 25 Aug 2021 08:09:45 +0000 (11:09 +0300)] 
code size reduction by using function arrays and add bandwidth to output

3 years agomicro-benchmarks for shufti, trufle and noodle added
apostolos [Tue, 24 Aug 2021 11:05:12 +0000 (14:05 +0300)] 
micro-benchmarks for shufti, trufle and noodle added

3 years agoremove Windows/ICC support
Konstantinos Margaritis [Fri, 30 Jul 2021 09:49:38 +0000 (12:49 +0300)] 
remove Windows/ICC support

3 years agofix lshift128 test
Konstantinos Margaritis [Fri, 30 Jul 2021 09:37:41 +0000 (12:37 +0300)] 
fix lshift128 test

3 years agoalignr methods for avx2 and avx512 added
apostolos [Wed, 28 Jul 2021 09:55:32 +0000 (12:55 +0300)] 
alignr methods for avx2 and avx512 added

3 years agolimex_shuffle added and it's unit tests
apostolos [Tue, 27 Jul 2021 08:44:35 +0000 (11:44 +0300)] 
limex_shuffle added and it's unit tests

3 years agoremove duplicate functions from previous merge
Konstantinos Margaritis [Mon, 26 Jul 2021 18:11:30 +0000 (21:11 +0300)] 
remove duplicate functions from previous merge

3 years agoadd missing compile flags
Konstantinos Margaritis [Mon, 26 Jul 2021 18:09:12 +0000 (21:09 +0300)] 
add missing compile flags

3 years agoadd accidentally removed lines
Konstantinos Margaritis [Mon, 26 Jul 2021 16:50:34 +0000 (19:50 +0300)] 
add accidentally removed lines

3 years ago* add -fno-new-ttp-matching to fix build-failures on newer gcc compilers with C++17
Konstantinos Margaritis [Mon, 26 Jul 2021 16:13:33 +0000 (19:13 +0300)] 
* add -fno-new-ttp-matching to fix build-failures on newer gcc compilers with C++17
* add explicit -mssse3, -mavx2 in compiler flags in respective build profiles

3 years agoMove SVE functions into their own files.
George Wort [Tue, 20 Jul 2021 17:13:02 +0000 (18:13 +0100)] 
Move SVE functions into their own files.

Change-Id: I995ba4b7d2b558ee403693ee45d747d414d3b177

3 years agoImplement new DoubleVermicelli16 acceleration functions using SVE2
George Wort [Mon, 28 Jun 2021 15:29:43 +0000 (16:29 +0100)] 
Implement new DoubleVermicelli16 acceleration functions using SVE2

Change-Id: Id4a8ffca840caab930a6e78cc0dfd0fe7d320b4e

3 years agoUse SVE shufti for counting miracles.
George Wort [Fri, 2 Jul 2021 14:54:42 +0000 (15:54 +0100)] 
Use SVE shufti for counting miracles.

Change-Id: Idd4aaf5bbc05fc90e9138c6fed385bc6ffa7b0b8

3 years agoUse SVE for double shufti.
George Wort [Tue, 13 Jul 2021 19:39:53 +0000 (20:39 +0100)] 
Use SVE for double shufti.

Change-Id: I09e0d57bb8a2f05b613f6225dea79ae823136268

3 years agoUse SVE for single shufti.
George Wort [Tue, 13 Jul 2021 14:09:38 +0000 (15:09 +0100)] 
Use SVE for single shufti.

Change-Id: Ic76940c5bb9b81a1c45d39e9ca396a158c50a7dc

3 years agoUse SVE2 for counting miracles.
George Wort [Fri, 2 Jul 2021 14:53:43 +0000 (15:53 +0100)] 
Use SVE2 for counting miracles.

Change-Id: I048dc182e5f4e726b847b3285ffafef4f538e550

3 years agoReplace USE_ARM_SVE with HAVE_SVE.
George Wort [Fri, 16 Jul 2021 12:21:14 +0000 (13:21 +0100)] 
Replace USE_ARM_SVE with HAVE_SVE.

Change-Id: I469efaac197cba93201f2ca6eca78ca61be3054d

3 years agoAdd Licence to state_compress and bitutils.
George Wort [Fri, 16 Jul 2021 10:56:48 +0000 (11:56 +0100)] 
Add Licence to state_compress and bitutils.

Change-Id: I958daf82e5aef5bd306424dcfa7812382b266d65

3 years agoImplement new Vermicelli16 acceleration functions using SVE2.
George Wort [Mon, 28 Jun 2021 15:29:43 +0000 (16:29 +0100)] 
Implement new Vermicelli16 acceleration functions using SVE2.

The scheme utilises the MATCH and NMATCH instructions to
scan for 16 characters at the same rate as vermicelli
scans for one.

Change-Id: Ie2cef904c56651e6108593c668e9b65bc001a886

3 years agoAdd SVE2 support for dvermicelli
George Wort [Wed, 23 Jun 2021 13:14:28 +0000 (14:14 +0100)] 
Add SVE2 support for dvermicelli

Change-Id: I056ef15e162ab6fb1f78964321ce893f4096367e

3 years agoadd arm rshift128/rshift128
Konstantinos Margaritis [Tue, 20 Jul 2021 11:33:03 +0000 (14:33 +0300)] 
add arm rshift128/rshift128

3 years agofix failing corner case, add pshufb_maskz()
Konstantinos Margaritis [Fri, 23 Jul 2021 15:55:56 +0000 (18:55 +0300)] 
fix failing corner case, add pshufb_maskz()

3 years agouse STL make_unique, remove wrapper header, breaks C++17 compilation
Konstantinos Margaritis [Fri, 23 Jul 2021 08:54:53 +0000 (11:54 +0300)] 
use STL make_unique, remove wrapper header, breaks C++17 compilation

3 years agochange C/C++ standard used to C17/C++17
Konstantinos Margaritis [Fri, 23 Jul 2021 08:47:45 +0000 (11:47 +0300)] 
change C/C++ standard used to C17/C++17

3 years agoremove low4bits from the arguments, fix cases that mostly affect loading large (64...
Konstantinos Margaritis [Fri, 23 Jul 2021 08:45:58 +0000 (11:45 +0300)] 
remove low4bits from the arguments, fix cases that mostly affect loading large (64) vectors and falling out of bounds

3 years agofix loadu_maskz, add {l,r}shift128_var(), tab fixes
Konstantinos Margaritis [Fri, 23 Jul 2021 08:44:46 +0000 (11:44 +0300)] 
fix loadu_maskz, add {l,r}shift128_var(), tab fixes

3 years agoconvert to for loops
Konstantinos Margaritis [Fri, 23 Jul 2021 08:43:51 +0000 (11:43 +0300)] 
convert to for loops

3 years agominor fixes, add 2 constructors from half size vectors
Konstantinos Margaritis [Fri, 23 Jul 2021 08:43:10 +0000 (11:43 +0300)] 
minor fixes, add 2 constructors from half size vectors

3 years agofix lastMatch<64>
Konstantinos Margaritis [Fri, 23 Jul 2021 08:42:13 +0000 (11:42 +0300)] 
fix lastMatch<64>

3 years agoprovide an {l,r}shift128_var() to fix immediate value build failure in loadu_maskz
Konstantinos Margaritis [Wed, 21 Jul 2021 10:20:40 +0000 (10:20 +0000)] 
provide an {l,r}shift128_var() to fix immediate value build failure in loadu_maskz

3 years agofix arm loadu_maskz()
Konstantinos Margaritis [Tue, 20 Jul 2021 11:38:19 +0000 (11:38 +0000)] 
fix arm loadu_maskz()

3 years agoadd arm rshift128/rshift128
Konstantinos Margaritis [Tue, 20 Jul 2021 11:33:03 +0000 (14:33 +0300)] 
add arm rshift128/rshift128

3 years agouse rshift128() instead of vector-wide right shift
Konstantinos Margaritis [Tue, 20 Jul 2021 11:33:03 +0000 (14:33 +0300)] 
use rshift128() instead of vector-wide right shift

3 years agoadd {l,r}shift128()+tests, rename printv_u64() to print64()
Konstantinos Margaritis [Tue, 20 Jul 2021 11:32:40 +0000 (14:32 +0300)] 
add {l,r}shift128()+tests, rename printv_u64() to print64()

3 years agoUse SVE2 Bitperm's bdep instruction in bitutils and state_compress
George Wort [Fri, 2 Jul 2021 09:43:48 +0000 (10:43 +0100)] 
Use SVE2 Bitperm's bdep instruction in bitutils and state_compress

Specifically for pdep64, expand32, and expand64 in bitutils,
as well as all of the loadcompressed functions used in
state_compress.

Change-Id: I92851bd12481dbee6a7e344df0890c4901b56d01

3 years agoFix CROSS_COMPILE_AARCH64 for SVE issues.
George Wort [Mon, 12 Jul 2021 16:08:11 +0000 (17:08 +0100)] 
Fix CROSS_COMPILE_AARCH64 for SVE issues.

Change-Id: I7b9ba3ccb754d96eee22ca01714c783dae1e4956

3 years agoAdd SVE2 support for vermicelli
George Wort [Mon, 7 Jun 2021 12:55:09 +0000 (13:55 +0100)] 
Add SVE2 support for vermicelli

Change-Id: Ia025de53521fbaefe5fb1e4425aaf75c7d80a14e

3 years agoRemove possibly undefined behaviour from Noodle.
George Wort [Thu, 1 Jul 2021 13:19:20 +0000 (14:19 +0100)] 
Remove possibly undefined behaviour from Noodle.

Change-Id: I9a7997cea6a48927cb02b00c5dba5009bbf83850

3 years agoRemove first check from scanDouble Noodle.
George Wort [Wed, 30 Jun 2021 13:13:27 +0000 (14:13 +0100)] 
Remove first check from scanDouble Noodle.

Change-Id: I00eabb3cb06ef6a2060df52c26fa8591907a2711

3 years agoEqual mask test fixed with random numbers
apostolos [Mon, 19 Jul 2021 10:12:58 +0000 (13:12 +0300)] 
Equal mask test fixed with random numbers

3 years agoSupervector test fixes
apostolos [Mon, 19 Jul 2021 07:23:11 +0000 (10:23 +0300)] 
Supervector test fixes

3 years agoSuperVector AVX512 implementations
apostolos [Fri, 16 Jul 2021 08:17:28 +0000 (11:17 +0300)] 
SuperVector AVX512 implementations

3 years agoSuperVector unit tests for AVX2 and AVX512 added
apostolos [Tue, 13 Jul 2021 13:38:25 +0000 (16:38 +0300)] 
SuperVector unit tests for AVX2 and AVX512  added

3 years agoreally fix lshift for avx2
Konstantinos Margaritis [Tue, 13 Jul 2021 10:19:48 +0000 (13:19 +0300)] 
really fix lshift for avx2

3 years agodisable OPTIMISE by default
Konstantinos Margaritis [Mon, 12 Jul 2021 18:12:21 +0000 (21:12 +0300)] 
disable OPTIMISE by default

3 years agofix truffle SIMD for S>16 as well
Konstantinos Margaritis [Mon, 12 Jul 2021 18:12:05 +0000 (21:12 +0300)] 
fix truffle SIMD for S>16 as well

3 years agoadd AVX2 specializations
Konstantinos Margaritis [Mon, 12 Jul 2021 18:09:10 +0000 (21:09 +0300)] 
add AVX2 specializations

3 years agolots of fixes to AVX2 implementation
Konstantinos Margaritis [Mon, 12 Jul 2021 18:08:51 +0000 (21:08 +0300)] 
lots of fixes to AVX2 implementation

3 years agoconvert print helper functions to class methods
Konstantinos Margaritis [Mon, 12 Jul 2021 17:59:09 +0000 (20:59 +0300)] 
convert print helper functions to class methods

3 years agotiny change in vector initialization
Konstantinos Margaritis [Mon, 12 Jul 2021 17:57:44 +0000 (20:57 +0300)] 
tiny change in vector initialization

3 years agofix last failing Shufti/Truffle tests
Konstantinos Margaritis [Tue, 6 Jul 2021 06:22:31 +0000 (09:22 +0300)] 
fix last failing Shufti/Truffle tests

3 years agofix arm SuperVector implementation
Konstantinos Margaritis [Tue, 6 Jul 2021 06:22:00 +0000 (09:22 +0300)] 
fix arm SuperVector implementation

3 years agofix rtruffle, was failing Lbr and a few ReverseTruffle tests
Konstantinos Margaritis [Mon, 5 Jul 2021 10:06:12 +0000 (13:06 +0300)] 
fix rtruffle, was failing Lbr and a few ReverseTruffle tests

3 years agofix x86 debug alignr
Konstantinos Margaritis [Mon, 5 Jul 2021 06:07:02 +0000 (09:07 +0300)] 
fix x86 debug alignr

3 years agomove firstMatch, lastMatch to own header in util
Konstantinos Margaritis [Sun, 4 Jul 2021 16:12:23 +0000 (19:12 +0300)] 
move firstMatch, lastMatch to own header in util

3 years agominor fixes
Konstantinos Margaritis [Sun, 4 Jul 2021 16:11:55 +0000 (19:11 +0300)] 
minor fixes

3 years agocompilation fixes for debug mode
Konstantinos Margaritis [Sun, 4 Jul 2021 11:46:50 +0000 (14:46 +0300)] 
compilation fixes for debug mode

3 years agofix arm implementation of alignr()
Konstantinos Margaritis [Fri, 2 Jul 2021 17:16:23 +0000 (20:16 +0300)] 
fix arm implementation of alignr()

3 years agoharmonise syntax of x86 SuperVector impl.cpp like arm, fix alignr, define printv_...
Konstantinos Margaritis [Fri, 2 Jul 2021 16:53:37 +0000 (19:53 +0300)] 
harmonise syntax of x86 SuperVector impl.cpp like arm, fix alignr, define printv_* functions when on debug mode only

3 years agostyle fixes
Konstantinos Margaritis [Fri, 2 Jul 2021 16:28:37 +0000 (19:28 +0300)] 
style fixes

3 years agoremoved obsolete file
Konstantinos Margaritis [Fri, 2 Jul 2021 16:16:18 +0000 (19:16 +0300)] 
removed obsolete file

3 years agorename supervector class header, use dup_*() functions names instead of set1_*()...
Konstantinos Margaritis [Fri, 2 Jul 2021 16:11:44 +0000 (19:11 +0300)] 
rename supervector class header, use dup_*() functions names instead of set1_*(), minor fixes

3 years agohandle GNUCC_ARCH on non-x86 properly
Konstantinos Margaritis [Fri, 2 Jul 2021 16:10:21 +0000 (19:10 +0300)] 
handle GNUCC_ARCH on non-x86 properly

3 years agoTruffle simd vectorized
apostolos [Fri, 2 Jul 2021 14:12:47 +0000 (17:12 +0300)] 
Truffle simd vectorized

3 years agoFix error in initial noodle double final call.
George Wort [Tue, 22 Jun 2021 11:34:35 +0000 (12:34 +0100)] 
Fix error in initial noodle double final call.

Change-Id: Ie044988f183b47e0b2f1eed3b4bd23de75c3117d

3 years agosyntax fixes
Konstantinos Margaritis [Wed, 23 Jun 2021 19:20:01 +0000 (22:20 +0300)] 
syntax fixes

3 years agonits
Konstantinos Margaritis [Wed, 23 Jun 2021 19:19:16 +0000 (22:19 +0300)] 
nits

3 years agofix typo
Konstantinos Margaritis [Wed, 23 Jun 2021 19:16:56 +0000 (22:16 +0300)] 
fix typo

3 years agofix unit tests, and resp. ARM SuperVector methods based on those unit tests, add...
Konstantinos Margaritis [Wed, 23 Jun 2021 19:16:24 +0000 (22:16 +0300)] 
fix unit tests, and resp. ARM SuperVector methods based on those unit tests, add print functions for SuperVector

3 years agoSupervector Unit Tests
apostolos [Tue, 22 Jun 2021 10:08:00 +0000 (13:08 +0300)] 
Supervector Unit Tests

3 years agoAdd SVE2 support for noodle
George Wort [Tue, 25 May 2021 10:10:25 +0000 (11:10 +0100)] 
Add SVE2 support for noodle

Change-Id: Iacb7d1f164bdd0ba50e2e13d26fe548cf9b45a6a

3 years agoadd missing ARM SuperVector methods, some tests still fail, WIP
Konstantinos Margaritis [Fri, 11 Jun 2021 10:33:01 +0000 (13:33 +0300)] 
add missing ARM SuperVector methods, some tests still fail, WIP

3 years agodisable SuperVector unit tests for now, until ARM support is included
Konstantinos Margaritis [Fri, 11 Jun 2021 10:27:19 +0000 (13:27 +0300)] 
disable SuperVector unit tests for now, until ARM support is included

3 years agorename arm impl.hpp to impl.cpp, add operator|() to SuperVector class
Konstantinos Margaritis [Thu, 10 Jun 2021 10:35:51 +0000 (13:35 +0300)] 
rename arm impl.hpp to impl.cpp, add operator|() to SuperVector class