Developer knowledge network ยท moderated exchange

Komunitas Kode Tidak Dapat Diandalkan

Riset Pengembang, Rekayasa Terbalik & Komunitas Pengkodean

Knowledge indexHidup
4Categories
919Threads
2.8KPostingan
Release

AVX-512 & AVX2 Memory Pattern Scanner: Benchmarking 9.2 GB/s Scan Speeds [v2.4 Technical Discussion]

sig_scanner_sam
Pattern Master
MEMBER
Reputasi: 210
Tanggal Bergabung: Dec 2019
Postingan: 11
Terima kasih: 51
1 bulan yang lalu ยท Jul 17, 2026 6:28 AM
#1

Benchmarking SIMD pattern scanners in C++20:

  • Standard naive byte loop: 0.42 GB/s
  • SSE 4.2 (_mm_cmpeq_epi8): 2.80 GB/s
  • AVX2 (_mm256_cmpeq_epi8): 5.40 GB/s
  • AVX-512 (_mm512_cmpeq_epi8_mask): 9.20 GB/s
CPP
uint64_t ScanAVX512(const uint8_t* pBase, size_t size, uint8_t firstByte) {
    __m512i target = _mm512_set1_epi8(firstByte);
    for (size_t i = 0; i < size; i += 64) {
        __m512i chunk = _mm512_loadu_si512((const __m512i*)(pBase + i));
        uint64_t mask = _mm512_cmpeq_epi8_mask(chunk, target);
        if (mask != 0) { /* Process candidates */ }
    }
    return 0;
}
ptr_arithmetic
C++ Wizard
MEMBER
Reputasi: 162
Tanggal Bergabung: May 2018
Postingan: 73
Terima kasih: 42
1 bulan yang lalu ยท Jul 17, 2026 9:30 AM
#2

9.2 GB/s means scanning an entire 350MB game .text section takes literally 38 milliseconds. Incredible performance!

x64_assembler
Assembly Guru
MEMBER
Reputasi: 99
Tanggal Bergabung: Sep 2022
Postingan: 14
Terima kasih: 16
1 bulan yang lalu ยท Jul 18, 2026 3:30 AM
#3

AVX-512 mask registers (k1-k7) make bit-testing super fast.