CMake missing -march=native corrected
There was a missing application of `-march=native` in this CMake script that impacts the benchmark.
This potentially impacts the analysis of Prof. Lemire's recent blog [post](https://lemire.me/blog/2025/08/09/why-do-we-even-need-simd-instructions/).
The `-march=native` flag was not being applied! Now it is.
* CMake 3.14+ is actually required for C++20 and CPM.cmake
* Avoid building unwanted tests, optional single command to build and run via CMakePresets.json
## Test results
The computer is a 9th-generation Intel laptop CPU 6-core on Windows 11 and MSYS2 GCC 15.1
After this PR:
```
1: | Input Size (bytes) | std::find (GB/s) | simdutf::find (GB/s) | naive_find (GB/s) |
1: |--------------------|------------------|-----------------------|-------------------|
1: | 1024 | 37.26 | 30.62 | 49.10 |
1: | 8192 | 37.38 | 64.27 | 44.59 |
1: | 65536 | 34.30 | 59.54 | 41.12 |
1: | 524288 | 31.45 | 53.90 | 38.20 |
1: | 2097152 | 31.73 | 51.31 | 35.53 |
```
Before this PR:
The `-march=native` flag was omitted, so the runtimes are quite different.
```
1: | Input Size (bytes) | std::find (GB/s) | simdutf::find (GB/s) | naive_find (GB/s) |
1: |--------------------|------------------|-----------------------|-------------------|
1: | 1024 | 36.05 | 65.72 | 3.48 |
1: | 8192 | 38.65 | 72.92 | 3.62 |
1: | 65536 | 36.20 | 63.89 | 3.10 |
1: | 524288 | 30.91 | 49.62 | 3.38 |
1: | 2097152 | 29.31 | 50.54 | 2.96 |
```
合并状态:未合并 5 条评论