Information is collected and formed in the following byte array and sent to the server in a base-64 encoded string.
Byte array format
condition | length in byte | description |
---|---|---|
1 |
bit 7-5: version number of this structure = 0 or 1. bit 4-3: unused = 0. bit 2: OS supports AVX512. bit 1: OS supports AVX2. bit 0: unused = 0. |
|
1 |
bit 7: compression 2 used bit 6: compression 1 used bit 5-0: brand string length N |
|
N |
ascii brand string taken from cpuid leaves 0x80000002 to 0x80000004 if the leaves are not available, N = 0 is set to omit this field. compression 1: string "Intel" "AMD" "(R)" "(TM)" "CPU" "Processor" or "GHz" is replaced by a byte of value 1 to 7. compression 2: 2-digit string "00" to "99" is replaced by a byte of value 128 to 227. |
|
4 |
cpuid leaf 0x01 ecx bit 0: SSE3 bit 1: PCLMULQDQ bit 9: SSSE3 bit 12: FMA bit 19: SSE41 bit 20: SSE42 bit 25: AESNI bit 28: AVX etc. |
|
4 |
cpuid leaf 0x01 edx bit 23: MMX bit 25: SSE bit 26: SSE2 etc. |
|
4 |
cpuid leaf 0x07 subleaf 0 ebx if the subleaf is not available, 0 is set. bit 5: AVX2 bit 16: AVX512F bit 29: SHA if bit 16 is set the following bits are also used: bit 17: AVX512DQ bit 26: AVX512PF bit 27: AVX512ER bit 28: AVX512CD bit 30: AVX512BW bit 31: AVX512VL etc. |
|
if version >= 1 | 4 |
cpuid leaf 0x07 subleaf 0 ecx if the subleaf is not available, 0 is set. Bit 1: AVX512_VBMI Bit 6: AVX512_VBMI2 Bit 7: CET_SS Bit 8: GFNI Bit 9: VAES Bit 10: VPCLMULQDQ Bit 11: AVX512_VNNI Bit 12: AVX512_BITALG etc. |
if version >= 1 | 4 |
cpuid leaf 0x07 subleaf 0 edx if the subleaf is not available, 0 is set. Bit 8: AVX512_VP2INTERSECT Bit 22: AMX-BF16 Bit 23: AVX512_FP16 Bit 24: AMX-TILE Bit 25: AMX-INT8 etc. |
if version >= 1 | 4 |
cpuid leaf 0x07 subleaf 1 eax if the subleaf is not available, 0 is set. Bit 4: AVX-VNNI Bit 5: AVX512_BF16 etc. |
4 | CRC32 of the bytes above. |
All mutibyte values are in little endian.