guix-devel
[Top][All Lists]
Advanced

[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---



reply via email to

[Prev in Thread] Current Thread [Next in Thread]