Package: gdc-10 Version: 10.1.0-1 Severity: normal Dear Maintainer,
==== import std.stdio; import core.cpuid; void main() { writefln("CPU: threads_per_cpu=%d; cores_per_cpu=%d; ht=%s; processor=%s", threadsPerCPU(), coresPerCPU(), hyperThreading(), processor()); } ==== # Using gdc-10 (10.1.0-1) and ligphobos1 (10.1.0-1) CPU: threads_per_cpu=1; cores_per_cpu=32; ht=false; processor=AMD Ryzen Threadripper 2950X 16-Core Processor # Using ldc (1:1.20.1-1) and libphobos2-ldc-shared-dev (= 1:1.20.1-1): CPU: threads_per_cpu=32; cores_per_cpu=16; ht=true; processor=AMD Ryzen Threadripper 2950X 16-Core Processor As can be seen gdc-10 (and gdc-9 too) returns wrong values. I tried various optimization options, different -mcpu, static phobos linking, etc. and they don't change it. I am running on a bare hardware (no kvm, Xen or qemu involved) with kernel Linux 5.2.17. For reference: $ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian Address sizes: 43 bits physical, 48 bits virtual CPU(s): 32 On-line CPU(s) list: 0-31 Thread(s) per core: 2 Core(s) per socket: 16 Socket(s): 1 NUMA node(s): 2 Vendor ID: AuthenticAMD CPU family: 23 Model: 8 Model name: AMD Ryzen Threadripper 2950X 16-Core Processor Stepping: 2 Frequency boost: enabled CPU MHz: 2431.075 CPU max MHz: 3500.0000 CPU min MHz: 2200.0000 BogoMIPS: 6999.26 Virtualization: AMD-V L1d cache: 512 KiB L1i cache: 1 MiB L2 cache: 8 MiB L3 cache: 32 MiB NUMA node0 CPU(s): 0-7,16-23 NUMA node1 CPU(s): 8-15,24-31 Vulnerability L1tf: Not affected Vulnerability Mds: Not affected Vulnerability Meltdown: Not affected Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and s eccomp Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanit ization Vulnerability Spectre v2: Mitigation; Full AMD retpoline, IBPB conditional, STIBP disab led, RSB filling Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxs r_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_ts c cpuid extd_apicid amd_dcm aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a mi salignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_c ore perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssb d sev ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx sm ap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero ir perf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vm cb_clean flushbyasid decodeassists pausefilter pfthreshold av ic v_vmsave_vmload vgif overflow_recov succor smca $ $ numactl -s policy: default preferred node: current physcpubind: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 cpubind: 0 1 nodebind: 0 1 membind: 0 1 $ $ numactl --hardware available: 2 nodes (0-1) node 0 cpus: 0 1 2 3 4 5 6 7 16 17 18 19 20 21 22 23 node 0 size: 64371 MB node 0 free: 15527 MB node 1 cpus: 8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31 node 1 size: 64497 MB node 1 free: 678 MB node distances: node 0 1 0: 10 16 1: 16 10 $ $ nproc 32 $ $ getconf -a | grep PROCESSORS _NPROCESSORS_CONF 32 _NPROCESSORS_ONLN 32 $ $ cpuid CPU 0: vendor_id = "AuthenticAMD" version information (1/eax): processor type = primary processor (0) family = 0xf (15) model = 0x8 (8) stepping id = 0x2 (2) extended family = 0x8 (8) extended model = 0x0 (0) (family synth) = 0x17 (23) (model synth) = 0x8 (8) (simple synth) = AMD Ryzen (Pinnacle Ridge PiR-B2) [Zen+], 12nm miscellaneous (1/ebx): process local APIC physical ID = 0x0 (0) cpu count = 0x20 (32) // <----- CLFLUSH line size = 0x8 (8) brand index = 0x0 (0) brand id = 0x00 (0): unknown feature information (1/edx): ... hyper-threading / multi-core supported = true // <----- ... feature information (1/ecx): ... ... $ $ cpuid | grep ^CPU | wc -l 32 $ $ /proc/cpuinfo flags: flags : ..... sse2 ht ..... $ Regards, Witold -- System Information: Debian Release: bullseye/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'unstable'), (1, 'experimental-debug'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.2.0-3-amd64 (SMP w/32 CPU cores) Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages gdc-10 depends on: ii g++-10 10.1.0-1 ii gcc-10-base 10.1.0-1 ii libc6 2.30-7 ii libgmp10 2:6.2.0+dfsg-4 ii libgphobos-10-dev 10.1.0-1 ii libisl22 0.22.1-1 ii libmpc3 1.1.0-1 ii libmpfr6 4.0.2-1 ii libzstd1 1.4.4+dfsg-3 ii zlib1g 1:1.2.11.dfsg-2 gdc-10 recommends no packages. gdc-10 suggests no packages. -- no debconf information