Mysticial / y-cruncher

Bug-Tracking and open-sourced parts of y-cruncher.
203 stars 15 forks source link

16-KNL missing #20

Closed twirrim closed 1 year ago

twirrim commented 4 years ago

I'm attempting to run y-cruncher in a KVM guest on a Skylake system, but it's auto-selecting 16-KNL to be executed. That isn't being shipped as part of either the dynamic or static v0.7.8.9503 files.

$ ls Binaries/
05-A64 ~ Kasumi  11-BD1 ~ Miyu  13-HSW ~ Airi    17-SKX ~ Kotori  18-CNL ~ Shinoa  libcilkrts.so.5  libtbb.so.2
08-NHM ~ Ushio   11-SNB ~ Hina  14-BDW ~ Kurumi  17-ZN1 ~ Yukina  Digits           Libraries.txt    Tuning.txt
Mysticial commented 4 years ago

16-KNL has been removed as of v0.7.8 because the Xeon Phi line is officially dead. What should happen is that the KVM should be exposing all of Skylake's feature set so that it correctly picks 17-SKX.

In any case, is the launcher actually trying to run 16-KNL? Is should be running 14-BDW instead (given that the KVM isn't allowing the program to run 17-SKX). If it is, then that's a bug in the launcher.

twirrim commented 4 years ago

Yup it's automatically deciding to call 16-KNL. I gave it a shot on a Windows instance on the same hypervisor earlier and it opted for 14-BDW.

Mysticial commented 4 years ago

That's weird. Could you give me the full feature detection dump that it prints?

Namely this one:

y-cruncher v0.7.8 Build 9503

Detecting Environment...

CPU Vendor:
    AMD         = No
    Intel       = Yes

OS Features:
  * 64-bit      = Yes
  * OS AVX      = Yes
  * OS AVX512   = Yes

Hardware Features:
    MMX         = Yes
  * x64         = Yes
  * ABM         = Yes
    RDRAND      = Yes
    RDSEED      = Yes
    BMI1        = Yes
  * BMI2        = Yes
  * ADX         = Yes
    MPX         = Yes
    PREFETCHW   = Yes
    PREFETCHWT1 = No
    RDPID       = No
    GFNI        = No
    VAES        = No

SIMD: 128-bit
  * SSE         = Yes
  * SSE2        = Yes
  * SSE3        = Yes
  * SSSE3       = Yes
    SSE4a       = No
  * SSE4.1      = Yes
  * SSE4.2      = Yes
    AES-NI      = Yes
    SHA         = No

SIMD: 256-bit
  * AVX         = Yes
    XOP         = No
  * FMA3        = Yes
  * FMA4        = No
  * AVX2        = Yes

SIMD: 512-bit
  * AVX512-F         = Yes
    AVX512-CD        = Yes
    AVX512-PF        = No
    AVX512-ER        = No
  * AVX512-VL        = Yes
  * AVX512-BW        = Yes
  * AVX512-DQ        = Yes
  * AVX512-IFMA      = No
  * AVX512-VBMI      = No

Alright Intel, how many drinks have you had tonight?
    AVX512-VPOPCNTDQ = No
    AVX512-4FMAPS    = No
    AVX512-4VNNIW    = No
    AVX512-VBMI2     = No
    AVX512-VPCLMUL   = No
    AVX512-VNNI      = No
    AVX512-BITALG    = No
    AVX512-BF16      = No

Auto-Selecting: 17-SKX ~ Kotori
twirrim commented 4 years ago
$ ./y-cruncher
y-cruncher v0.7.8 Build 9503

Detecting Environment...

CPU Vendor:
    AMD         = No
    Intel       = Yes

OS Features:
  * 64-bit      = Yes
  * OS AVX      = Yes
  * OS AVX512   = Yes

Hardware Features:
    MMX         = Yes
  * x64         = Yes
  * ABM         = Yes
    RDRAND      = Yes
    RDSEED      = Yes
    BMI1        = Yes
  * BMI2        = Yes
  * ADX         = Yes
    MPX         = Yes
    PREFETCHW   = Yes
    PREFETCHWT1 = No
    RDPID       = No
    GFNI        = No
    VAES        = No

SIMD: 128-bit
  * SSE         = Yes
  * SSE2        = Yes
  * SSE3        = Yes
  * SSSE3       = Yes
    SSE4a       = No
  * SSE4.1      = Yes
  * SSE4.2      = Yes
    AES-NI      = Yes
    SHA         = No

SIMD: 256-bit
  * AVX         = Yes
    XOP         = No
  * FMA3        = Yes
  * FMA4        = No
  * AVX2        = Yes

SIMD: 512-bit
  * AVX512-F         = Yes
    AVX512-CD        = Yes
    AVX512-PF        = No
    AVX512-ER        = No
  * AVX512-VL        = No
  * AVX512-BW        = No
  * AVX512-DQ        = No
  * AVX512-IFMA      = No
  * AVX512-VBMI      = No

Alright Intel, how many drinks have you had tonight?
    AVX512-VPOPCNTDQ = No
    AVX512-4FMAPS    = No
    AVX512-4VNNIW    = No
    AVX512-VBMI2     = No
    AVX512-VPCLMUL   = No
    AVX512-VNNI      = No
    AVX512-BITALG    = No
    AVX512-BF16      = No

Auto-Selecting: 16-KNL

and from /proc/cpuinfo:

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 85
model name      : Intel(R) Xeon(R) Platinum 8167M CPU @ 2.00GHz
stepping        : 4
microcode       : 0x1
cpu MHz         : 1995.312
cache size      : 16384 KB
physical id     : 0
siblings        : 48
core id         : 0
cpu cores       : 24
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f rdseed adx smap avx512cd xsaveopt xsavec xgetbv1 xsaves arat md_clear
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa itlb_multihit
bogomips        : 3990.62
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:
twirrim commented 4 years ago

Hmm.. okay, if I run against the physical host (which works and picks 17-SKX ~ Kotori) and diff the same output, I discover the missing flags:

53,55c53,55
<   * AVX512-VL        = Yes
<   * AVX512-BW        = Yes
<   * AVX512-DQ        = Yes
---
>   * AVX512-VL        = No
>   * AVX512-BW        = No
>   * AVX512-DQ        = No

Well that's fun :)

Mysticial commented 4 years ago

I found the bug that was making it pick 16-KNL instead of 14-BDW. This will be fixed in the next patch.

Thanks for reporting!