Commit Graph

13245 Commits

Author SHA1 Message Date
Kovid Goyal
071c8200a6 ... 2024-02-25 09:57:29 +05:30
Kovid Goyal
ad7175a24d ... 2024-02-25 09:57:29 +05:30
Kovid Goyal
24232ba277 Ensure goroutine has started before sending data 2024-02-25 09:57:28 +05:30
Kovid Goyal
0f6e5fe57e Fix benchmark rate calculation 2024-02-25 09:57:28 +05:30
Kovid Goyal
ef8e8313ab For some reason, memcpy is faster than assignment 2024-02-25 09:57:28 +05:30
Kovid Goyal
17cb65e981 Adjust amount of data in the benchmarks for more consistent timing 2024-02-25 09:57:28 +05:30
Kovid Goyal
f2153f060d add unicode benchmark 2024-02-25 09:57:28 +05:30
Kovid Goyal
48c0b30671 Install simde on CI 2024-02-25 09:57:28 +05:30
Kovid Goyal
e8f67281cf Warmup font rendering before running benchmark 2024-02-25 09:57:28 +05:30
Kovid Goyal
49a54b086f Use simde so SIMD speedups work on ARM as well 2024-02-25 09:57:28 +05:30
Kovid Goyal
4790959938 Use -fno-plt
We dont need the PLT and it frees up some registers
2024-02-25 09:57:28 +05:30
Kovid Goyal
33249c872f Use a better default march for binary builds
x86-64-v2 implies SSE4.2 which should be available everywhere by now. We
will see if we get errors with it.

https://developers.redhat.com/blog/2021/01/05/building-red-hat-enterprise-linux-9-for-the-x86-64-v2-microarchitecture-level#architectural_considerations_for_rhel_9
2024-02-25 09:57:28 +05:30
Kovid Goyal
71bf099041 Speed up drawing of printable ascii chars 2024-02-25 09:57:28 +05:30
Kovid Goyal
307acb3f64 Add API to Screen to draw a set of printable ascii chars fast 2024-02-25 09:57:28 +05:30
Kovid Goyal
e5675e9537 Simplify API 2024-02-25 09:57:28 +05:30
Kovid Goyal
9cf425006f ... 2024-02-25 09:57:28 +05:30
Kovid Goyal
c052831291 Dont double parse CSI digits 2024-02-25 09:57:28 +05:30
Kovid Goyal
fe2cd543ba Switch to same algorithm for 128bit SIMD as used for 256 bit SIMD
Avoids needing to write to the haystack and also less chance of a bug in
the never tested simd since all CPUs I have access to have AVX2
2024-02-25 09:57:28 +05:30
Kovid Goyal
1925d5ea65 Prepare for plain sse4 fallback 2024-02-25 09:57:27 +05:30
Kovid Goyal
aacdffd539 DRYer 2024-02-25 09:57:27 +05:30
Kovid Goyal
a0e1eb4985 AVX2 implementation for find either of two 2024-02-25 09:57:27 +05:30
Kovid Goyal
e4c48a5f17 Add AVX2 implementation of find byte not in range
Also fix alignment bug and ensure the simd finders dont return a pointer
beyond the end
2024-02-25 09:57:27 +05:30
Kovid Goyal
021dd168e5 ... 2024-02-25 09:57:27 +05:30
Kovid Goyal
b032313c45 Only use SIMD if CPU supports it at runtime 2024-02-25 09:57:27 +05:30
Kovid Goyal
19a41b4d9a Use sse4.2 instruction for normal mode printable ascii detection 2024-02-25 09:57:27 +05:30
Kovid Goyal
25e7a2882d Work on using SIMD for normal mode dispatch 2024-02-25 09:57:27 +05:30
Kovid Goyal
a75fb6509e ... 2024-02-25 09:57:27 +05:30
Kovid Goyal
23c42cb555 ... 2024-02-25 09:57:27 +05:30
Kovid Goyal
1f8feea454 Parse new data that is writtne while parsing is in progress in the parse loop
Avoids unnecessary memmove()
2024-02-25 09:57:27 +05:30
Kovid Goyal
f0afdc51af ... 2024-02-25 09:57:27 +05:30
Kovid Goyal
ac6afcb0a8 Release the parser IO lock while parsing 2024-02-25 09:57:27 +05:30
Kovid Goyal
ad7f671a7b Add a long escape code benchmark 2024-02-25 09:57:27 +05:30
Kovid Goyal
4f67b8b433 Need -msse4.2 on non-native builds 2024-02-25 09:57:27 +05:30
Kovid Goyal
e3d6aa2c60 Use simd in a few loops 2024-02-25 09:57:27 +05:30
Kovid Goyal
89d416806b ... 2024-02-25 09:57:26 +05:30
Kovid Goyal
859b0cc585 Include -march=native for debug builds 2024-02-25 09:57:26 +05:30
Kovid Goyal
8b4209cb97 Also use fast find for pending mode 2024-02-25 09:57:26 +05:30
Kovid Goyal
8dca5a6b9a ... 2024-02-25 09:57:26 +05:30
Kovid Goyal
200e5bf6e3 Examine 8 bytes at once for terminator char 2024-02-25 09:57:26 +05:30
Kovid Goyal
f4819175b0 Start work on vectorizing searches 2024-02-25 09:57:26 +05:30
Kovid Goyal
5921ca1139 Add images benchmark 2024-02-25 09:57:26 +05:30
Kovid Goyal
dbc4b98742 Ignore input_delay when the input buffer is close to full 2024-02-25 09:57:26 +05:30
Kovid Goyal
822c9cb1d6 ... 2024-02-25 09:57:26 +05:30
Kovid Goyal
529de9c91d Allow specifying benchmarks to run on the command line 2024-02-25 09:57:26 +05:30
Kovid Goyal
7914523a16 Add a CSI + ascii test 2024-02-25 09:57:26 +05:30
Kovid Goyal
d39c71f927 Round the time to two digit precision 2024-02-25 09:57:26 +05:30
Kovid Goyal
934f2ede0b Start work on simple benchmark tool 2024-02-25 09:57:26 +05:30
Kovid Goyal
8dbea2a046 ... 2024-02-25 09:57:26 +05:30
Kovid Goyal
38c8100a76 ... 2024-02-25 09:57:26 +05:30
Kovid Goyal
a560d86d0f Use aligned loads for the byte loader 2024-02-25 09:57:26 +05:30