[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Investigating a reproducibility failure
From: |
Konrad Hinsen |
Subject: |
Re: Investigating a reproducibility failure |
Date: |
Thu, 03 Feb 2022 10:16:55 +0100 |
Hi Ricardo and Simon,
Thanks for your insight! I didn't even know about lscpu. The output for
my laptop is shown below. I tried building on a virtual machine, and
that works fine.
> CPU detection is a bottomless can of worms.
That sounds very credible. But what can we do about this?
There is obviously a trade-off between reproducibility and performance
here. Can we support both, in a way that users can understand and manage?
The OpenBlas package in Guix is (or at least was, back then) written for
performance. Can I, as a user, ask for a reproducible version? That
could either be a generic version for any x86 architecture (preferably),
or one that always builds for a given sub-architecture and then fails at
runtime if the CPU doesn't match.
Next: can I, as a user of dependent code, ask for reproducible versions
of all my dependencies? In my case, I was packaging Python code that
calls OpenBlas via NumPy. Many people in that situation don't even know
what OpenBlas is. I did know, but wasn't aware of the build-time CPU
detection.
There is of course the issue that we can never be sure if a build will
be reproducible in the future. But we can at least take care of the
cases where the packager is aware of non-reproducibility issues, and
make them transparent and manageable.
Cheers,
Konrad
--8<---------------cut here---------------start------------->8---
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 39 bits physical, 48 bits virtual
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 140
Model name: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz
Stepping: 1
CPU MHz: 1800.000
CPU max MHz: 4800,0000
CPU min MHz: 400,0000
BogoMIPS: 3609.60
Virtualization: VT-x
L1d cache: 192 KiB
L1i cache: 128 KiB
L2 cache: 5 MiB
L3 cache: 12 MiB
NUMA node0 CPU(s): 0-7
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled
via p
rctl and seccomp
Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and
__user poi
nter sanitization
Vulnerability Spectre v2: Mitigation; Enhanced IBRS, IBPB conditional,
RSB fi
lling
Vulnerability Srbds: Not affected
Vulnerability Tsx async abort: Not affected
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep
mtrr pg
e mca cmov pat pse36 clflush dts acpi mmx fxsr
sse
sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm
cons
tant_tsc art arch_perfmon pebs bts rep_good
nopl xt
opology nonstop_tsc cpuid aperfmperf
tsc_known_freq
pni pclmulqdq dtes64 monitor ds_cpl vmx smx
est tm
2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1
sse4_2
x2apic movbe popcnt tsc_deadline_timer aes
xsave av
x f16c rdrand lahf_lm abm 3dnowprefetch
cpuid_fault
epb cat_l2 invpcid_single cdp_l2 ssbd ibrs
ibpb st
ibp ibrs_enhanced tpr_shadow vnmi flexpriority
ept
vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep
bmi2
erms invpcid rdt_a avx512f avx512dq rdseed
adx sma
p avx512ifma clflushopt clwb intel_pt avx512cd
sha_
ni avx512bw avx512vl xsaveopt xsavec xgetbv1
xsaves
split_lock_detect dtherm ida arat pln pts hwp
hwp_
notify hwp_act_window hwp_epp hwp_pkg_req
avx512vbm
i umip pku ospke avx512_vbmi2 gfni vaes
vpclmulqdq
avx512_vnni avx512_bitalg tme avx512_vpopcntdq
rdpi
d movdiri movdir64b fsrm avx512_vp2intersect
md_cle
ar flush_l1d arch_capabilities
--8<---------------cut here---------------end--------------->8---
- Investigating a reproducibility failure, Konrad Hinsen, 2022/02/01
- Re: Investigating a reproducibility failure, zimoun, 2022/02/02
- Re: Investigating a reproducibility failure, zimoun, 2022/02/02
- Re: Investigating a reproducibility failure, zimoun, 2022/02/03
- Re: Investigating a reproducibility failure, Ludovic Courtès, 2022/02/05
- Re: Investigating a reproducibility failure, Bengt Richter, 2022/02/15
- Re: Investigating a reproducibility failure, zimoun, 2022/02/16
- Re: Investigating a reproducibility failure, Konrad Hinsen, 2022/02/16
- Re: Investigating a reproducibility failure, zimoun, 2022/02/17
- Re: Investigating a reproducibility failure, Konrad Hinsen, 2022/02/17