View previous topic :: View next topic |
Author |
Message |
lazydog n00b
Joined: 26 Feb 2007 Posts: 64
|
Posted: Thu Aug 03, 2023 10:09 am Post subject: |
|
|
Ja, die Patches sollten im Kernel sein:
Code: | -*- Firmware loading facility
(amd-ucode/microcode_amd_fam19h.bin) Build named firmware blobs i
(/lib/firmware) Firmware blobs root directory
[ ] Enable the firmware sysfs fallback mechanism
[ ] Enable compressed firmware support
[*] Enable firmware caching during suspend
[ ] Enable users to initiate firmware updates using sysfs |
mitigations sind derzeit on .. kommt als nächstes auf die Liste (obwohl die sollten nicht soviel Performance kosten? )
Ja, der BIOS-Update hat wohl einen kleinen Schub gebracht |
|
Back to top |
|
|
firefly Watchman
Joined: 31 Oct 2002 Posts: 5241
|
Posted: Thu Aug 03, 2023 10:22 am Post subject: |
|
|
lazydog wrote: | Ja, die Patches sollten im Kernel sein:
Code: | -*- Firmware loading facility
(amd-ucode/microcode_amd_fam19h.bin) Build named firmware blobs i
(/lib/firmware) Firmware blobs root directory
[ ] Enable the firmware sysfs fallback mechanism
[ ] Enable compressed firmware support
[*] Enable firmware caching during suspend
[ ] Enable users to initiate firmware updates using sysfs |
mitigations sind derzeit on .. kommt als nächstes auf die Liste (obwohl die sollten nicht soviel Performance kosten? ) |
Und eher generell performance kosten. Aber aktuell betrifft es nur llvm/clang aber nicht gcc daher sind die mitigations eher hier nicht der gravierende faktor. _________________ Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn. |
|
Back to top |
|
|
kolibri n00b
Joined: 27 Jul 2023 Posts: 27 Location: Boizenburg, Germany
|
Posted: Thu Aug 03, 2023 10:37 am Post subject: |
|
|
naja, die Mitigations greifen bei bestimmten Befehlen und Speicheraktionen härter zu als bei anderen, von daher würde ich es hier nicht ganz ausschließen, dass clang dort anders arbeitet als gcc und vielleicht deshalb öfter die Mitigations triggert.
Und solange man nur vertrauenswürdige und kompetente Nutzer auf dem System hat, kann man sich die Mitigations eigentlich sparen. Wichtig sind sie, wenn man virtualisiert und/oder "Kunden" hostet, die da mehr oder weniger alles an Binaries hochladen und ausführen können.
PS: natürlich stark vereinfacht ausgedrückt, in der Realität ist es ein bisschen komplizierter. |
|
Back to top |
|
|
lazydog n00b
Joined: 26 Feb 2007 Posts: 64
|
Posted: Thu Aug 03, 2023 10:41 am Post subject: |
|
|
Das gibts doch gar nicht ... clang, llvm und rust mit march=native (und firefox ebenfalls):
Code: | Thu Aug 3 12:39:33 2023 >>> www-client/firefox-102.13.0
merge time: 14 minutes and 43 seconds. |
Warum ist da ein riesen Unterschied zwischen znver3 und native? |
|
Back to top |
|
|
firefly Watchman
Joined: 31 Oct 2002 Posts: 5241
|
Posted: Thu Aug 03, 2023 10:58 am Post subject: |
|
|
lazydog wrote: | Das gibts doch gar nicht ... clang, llvm und rust mit march=native (und firefox ebenfalls):
Code: | Thu Aug 3 12:39:33 2023 >>> www-client/firefox-102.13.0
merge time: 14 minutes and 43 seconds. |
Warum ist da ein riesen Unterschied zwischen znver3 und native? |
Das bedeutet, dass die optimierungen, welche durch die explizite angabe von znver3, aktiviert werden scheinbar ungünstig für deine CPU sind.
-march=native aktiviert auch znver3 aber zusätzlich optionen die spezifisch für die aktuelle cpu sind.
Kannst du mal die ausgaben von
Code: | gcc -march=native -Q --help=target -v |
und
Code: | gcc -march=znver3 -Q --help=target -v |
hier posten? _________________ Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn. |
|
Back to top |
|
|
kolibri n00b
Joined: 27 Jul 2023 Posts: 27 Location: Boizenburg, Germany
|
Posted: Thu Aug 03, 2023 11:09 am Post subject: |
|
|
Also bei meinem Ryzen 5950X ist der einzige Unterschied zwischen native und znver3 der, dass bei native auch noch -mshstk eingeschaltet ist.
Hab dazu beide Commands von firefly in Dateien umgeleitet und dann nen diff gemacht.
Bin mal gespannt, was bei @lazydog rauskommt. |
|
Back to top |
|
|
firefly Watchman
Joined: 31 Oct 2002 Posts: 5241
|
Posted: Thu Aug 03, 2023 11:17 am Post subject: |
|
|
kolibri wrote: | Also bei meinem Ryzen 5950X ist der einzige Unterschied zwischen native und znver3 der, dass bei native auch noch -mshstk eingeschaltet ist.
Hab dazu beide Commands von firefly in Dateien umgeleitet und dann nen diff gemacht.
Bin mal gespannt, was bei @lazydog rauskommt. |
Da du auch eine zen3 cpu hast, kannst du mal einen test machen wenn du für llvm/clang march=znver3 setzt und dann versuchst firefox zu bauen?
Dauert es bei dir dann deutlich länger? oder ist die zeit dann quasi identisch _________________ Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn. |
|
Back to top |
|
|
kolibri n00b
Joined: 27 Jul 2023 Posts: 27 Location: Boizenburg, Germany
|
Posted: Thu Aug 03, 2023 11:28 am Post subject: |
|
|
firefly wrote: |
Da du auch eine zen3 cpu hast, kannst du mal einen test machen wenn du für llvm/clang march=znver3 setzt und dann versuchst firefox zu bauen?
Dauert es bei dir dann deutlich länger? oder ist die zeit dann quasi identisch |
Bei mir ist alles mit znver3 gebaut, native hatte ich auf dem Gerät hier nicht. Also auch alle meine hier geposteten Zeiten sind mit znver3. Native sollte aber auch keinen Unterschied machen, wenn shstk der einzige Unterschied ist. |
|
Back to top |
|
|
lazydog n00b
Joined: 26 Feb 2007 Posts: 64
|
Posted: Thu Aug 03, 2023 11:44 am Post subject: |
|
|
Code: | gcc -march=native -Q --help=target -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/12/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /var/tmp/portage/sys-devel/gcc-12.3.1_p20230526/work/gcc-12-20230526/configure --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/12 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/12/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/12 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/12/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/12/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12 --with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/12/python --enable-languages=c,c++ --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --disable-libunwind-exceptions --enable-checking=release --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 12.3.1_p20230526 p2' --with-gcc-major-version-only --enable-libstdcxx-time --enable-lto --disable-libstdcxx-pch --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-multilib --with-multilib-list=m32,m64 --disable-fixed-point --enable-targets=all --enable-libgomp --disable-libssp --disable-libada --disable-cet --disable-systemtap --disable-valgrind-annotations --disable-vtable-verify --disable-libvtv --without-zstd --without-isl --enable-default-pie --enable-default-ssp
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.3.1 20230526 (Gentoo 12.3.1_p20230526 p2)
COLLECT_GCC_OPTIONS='-march=native' '-Q' '--help=target' '-v' '-dumpdir' 'a-'
/usr/libexec/gcc/x86_64-pc-linux-gnu/12/cc1 -v help-dummy -march=znver3 -mmmx -mpopcnt -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -msse4a -mno-fma4 -mno-xop -mfma -mno-avx512f -mbmi -mbmi2 -maes -mpclmul -mno-avx512vl -mno-avx512bw -mno-avx512dq -mno-avx512cd -mno-avx512er -mno-avx512pf -mno-avx512vbmi -mno-avx512ifma -mno-avx5124vnniw -mno-avx5124fmaps -mno-avx512vpopcntdq -mno-avx512vbmi2 -mno-gfni -mvpclmulqdq -mno-avx512vnni -mno-avx512bitalg -mno-avx512bf16 -mno-avx512vp2intersect -mno-3dnow -madx -mabm -mno-cldemote -mclflushopt -mclwb -mclzero -mcx16 -mno-enqcmd -mf16c -mfsgsbase -mfxsr -mno-hle -msahf -mno-lwp -mlzcnt -mmovbe -mno-movdir64b -mno-movdiri -mmwaitx -mno-pconfig -mpku -mno-prefetchwt1 -mprfchw -mno-ptwrite -mrdpid -mrdrnd -mrdseed -mno-rtm -mno-serialize -mno-sgx -msha -mshstk -mno-tbm -mno-tsxldtrk -mvaes -mno-waitpkg -mwbnoinvd -mxsave -mxsavec -mxsaveopt -mxsaves -mno-amx-tile -mno-amx-int8 -mno-amx-bf16 -mno-uintr -mno-hreset -mno-kl -mno-widekl -mno-avxvnni -mno-avx512fp16 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=512 -mtune=znver3 -dumpdir a- -dumpbase help-dummy -version --help=target -o /tmp/ccNR7LwK.s
The following options are target specific:
-m128bit-long-double [enabled]
-m16 [disabled]
-m32 [disabled]
-m3dnow [disabled]
-m3dnowa [disabled]
-m64 [enabled]
-m80387 [enabled]
-m8bit-idiv [disabled]
-m96bit-long-double [disabled]
-mabi= sysv
-mabm [enabled]
-maccumulate-outgoing-args [disabled]
-maddress-mode= long
-madx [enabled]
-maes [enabled]
-malign-data= compat
-malign-double [disabled]
-malign-functions= 0
-malign-jumps= 0
-malign-loops= 0
-malign-stringops [enabled]
-mamx-bf16 [disabled]
-mamx-int8 [disabled]
-mamx-tile [disabled]
-mandroid [disabled]
-march= znver3
-masm= att
-mavx [enabled]
-mavx2 [enabled]
-mavx256-split-unaligned-load [disabled]
-mavx256-split-unaligned-store [disabled]
-mavx5124fmaps [disabled]
-mavx5124vnniw [disabled]
-mavx512bf16 [disabled]
-mavx512bitalg [disabled]
-mavx512bw [disabled]
-mavx512cd [disabled]
-mavx512dq [disabled]
-mavx512er [disabled]
-mavx512f [disabled]
-mavx512fp16 [disabled]
-mavx512ifma [disabled]
-mavx512pf [disabled]
-mavx512vbmi [disabled]
-mavx512vbmi2 [disabled]
-mavx512vl [disabled]
-mavx512vnni [disabled]
-mavx512vp2intersect [disabled]
-mavx512vpopcntdq [disabled]
-mavxvnni [disabled]
-mbionic [disabled]
-mbmi [enabled]
-mbmi2 [enabled]
-mbranch-cost=<0,5> 3
-mcall-ms2sysv-xlogues [disabled]
-mcet-switch [disabled]
-mcld [disabled]
-mcldemote [disabled]
-mclflushopt [enabled]
-mclwb [enabled]
-mclzero [enabled]
-mcmodel= [default]
-mcpu=
-mcrc32 [enabled]
-mcx16 [enabled]
-mdaz-ftz [disabled]
-mdirect-extern-access [enabled]
-mdispatch-scheduler [disabled]
-mdump-tune-features [disabled]
-menqcmd [disabled]
-mf16c [enabled]
-mfancy-math-387 [enabled]
-mfentry [disabled]
-mfentry-name=
-mfentry-section=
-mfma [enabled]
-mfma4 [disabled]
-mforce-drap [disabled]
-mforce-indirect-call [disabled]
-mfp-ret-in-387 [enabled]
-mfpmath= sse
-mfsgsbase [enabled]
-mfunction-return= keep
-mfused-madd -ffp-contract=fast
-mfxsr [enabled]
-mgeneral-regs-only [disabled]
-mgfni [disabled]
-mglibc [enabled]
-mhard-float [enabled]
-mharden-sls= none
-mhle [disabled]
-mhreset [disabled]
-miamcu [disabled]
-mieee-fp [enabled]
-mincoming-stack-boundary= 0
-mindirect-branch-cs-prefix [disabled]
-mindirect-branch-register [disabled]
-mindirect-branch= keep
-minline-all-stringops [disabled]
-minline-stringops-dynamically [disabled]
-minstrument-return= none
-mintel-syntax -masm=intel
-mkl [disabled]
-mlarge-data-threshold=<number> 65536
-mlong-double-128 [disabled]
-mlong-double-64 [disabled]
-mlong-double-80 [enabled]
-mlwp [disabled]
-mlzcnt [enabled]
-mmanual-endbr [disabled]
-mmemcpy-strategy=
-mmemset-strategy=
-mmitigate-rop [disabled]
-mmmx [enabled]
-mmovbe [enabled]
-mmovdir64b [disabled]
-mmovdiri [disabled]
-mmove-max= 128
-mmpx [disabled]
-mms-bitfields [disabled]
-mmusl [disabled]
-mmwait [enabled]
-mmwaitx [enabled]
-mneeded [disabled]
-mno-align-stringops [disabled]
-mno-default [disabled]
-mno-fancy-math-387 [disabled]
-mno-push-args [disabled]
-mno-red-zone [disabled]
-mno-sse4 [disabled]
-mnop-mcount [disabled]
-momit-leaf-frame-pointer [disabled]
-mpc32 [disabled]
-mpc64 [disabled]
-mpc80 [disabled]
-mpclmul [enabled]
-mpcommit [disabled]
-mpconfig [disabled]
-mpku [enabled]
-mpopcnt [enabled]
-mprefer-avx128 -mprefer-vector-width=128
-mprefer-vector-width= none
-mpreferred-stack-boundary= 0
-mprefetchwt1 [disabled]
-mprfchw [enabled]
-mptwrite [disabled]
-mpush-args [enabled]
-mrdpid [enabled]
-mrdrnd [enabled]
-mrdseed [enabled]
-mrecip [disabled]
-mrecip=
-mrecord-mcount [disabled]
-mrecord-return [disabled]
-mred-zone [enabled]
-mregparm= 6
-mrelax-cmpxchg-loop [disabled]
-mrtd [disabled]
-mrtm [disabled]
-msahf [enabled]
-mserialize [disabled]
-msgx [disabled]
-msha [enabled]
-mshstk [enabled]
-mskip-rax-setup [disabled]
-msoft-float [disabled]
-msse [enabled]
-msse2 [enabled]
-msse2avx [disabled]
-msse3 [enabled]
-msse4 [enabled]
-msse4.1 [enabled]
-msse4.2 [enabled]
-msse4a [enabled]
-msse5 -mavx
-msseregparm [disabled]
-mssse3 [enabled]
-mstack-arg-probe [disabled]
-mstack-protector-guard-offset=
-mstack-protector-guard-reg=
-mstack-protector-guard-symbol=
-mstack-protector-guard= tls
-mstackrealign [disabled]
-mstore-max= 128
-mstringop-strategy= [default]
-mstv [enabled]
-mtbm [disabled]
-mtls-dialect= gnu
-mtls-direct-seg-refs [enabled]
-mtsxldtrk [disabled]
-mtune-ctrl=
-mtune= znver3
-muclibc [disabled]
-muintr [disabled]
-mvaes [enabled]
-mveclibabi= [default]
-mvect8-ret-in-mem [disabled]
-mvpclmulqdq [enabled]
-mvzeroupper [enabled]
-mwaitpkg [disabled]
-mwbnoinvd [enabled]
-mwidekl [disabled]
-mx32 [disabled]
-mxop [disabled]
-mxsave [enabled]
-mxsavec [enabled]
-mxsaveopt [enabled]
-mxsaves [enabled]
Known assembler dialects (for use with the -masm= option):
att intel
Known ABIs (for use with the -mabi= option):
ms sysv
Known code models (for use with the -mcmodel= option):
32 kernel large medium small
Valid arguments to -mfpmath=:
387 387+sse 387,sse both sse sse+387 sse,387
Known choices for mitigation against straight line speculation with -mharden-sls=:
all indirect-jmp none return
Known indirect branch choices (for use with the -mindirect-branch=/-mfunction-return= options):
keep thunk thunk-extern thunk-inline
Known choices for return instrumentation with -minstrument-return=:
call none nop5
Known data alignment choices (for use with the -malign-data= option):
abi cacheline compat
Known vectorization library ABIs (for use with the -mveclibabi= option):
acml svml
Known address mode (for use with the -maddress-mode= option):
long short
Known preferred register vector length (to use with the -mprefer-vector-width= option):
128 256 512 none
Known stack protector guard (for use with the -mstack-protector-guard= option):
global tls
Valid arguments to -mstringop-strategy=:
byte_loop libcall loop rep_4byte rep_8byte rep_byte unrolled_loop
vector_loop
Known TLS dialects (for use with the -mtls-dialect= option):
gnu gnu2
Known valid arguments for -march= option:
i386 i486 i586 pentium lakemont pentium-mmx winchip-c6 winchip2 c3 samuel-2 c3-2 nehemiah c7 esther i686 pentiumpro pentium2 pentium3 pentium3m pentium-m pentium4 pentium4m prescott nocona core2 nehalem corei7 westmere sandybridge corei7-avx ivybridge core-avx-i haswell core-avx2 broadwell skylake skylake-avx512 cannonlake icelake-client rocketlake icelake-server cascadelake tigerlake cooperlake sapphirerapids alderlake bonnell atom silvermont slm goldmont goldmont-plus tremont knl knm intel geode k6 k6-2 k6-3 athlon athlon-tbird athlon-4 athlon-xp athlon-mp x86-64 x86-64-v2 x86-64-v3 x86-64-v4 eden-x2 nano nano-1000 nano-2000 nano-3000 nano-x2 eden-x4 nano-x4 k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 athlon-fx amdfam10 barcelona bdver1 bdver2 bdver3 bdver4 znver1 znver2 znver3 znver4 btver1 btver2 generic native
Known valid arguments for -mtune= option:
generic i386 i486 pentium lakemont pentiumpro pentium4 nocona core2 nehalem sandybridge haswell bonnell silvermont goldmont goldmont-plus tremont knl knm skylake skylake-avx512 cannonlake icelake-client icelake-server cascadelake tigerlake cooperlake sapphirerapids alderlake rocketlake intel geode k6 athlon k8 amdfam10 bdver1 bdver2 bdver3 bdver4 btver1 btver2 znver1 znver2 znver3 znver4
GNU C17 (Gentoo 12.3.1_p20230526 p2) version 12.3.1 20230526 (x86_64-pc-linux-gnu)
compiled by GNU C version 12.3.1 20230526, GMP version 6.2.1, MPFR version 4.2.0-p9, MPC version 1.3.1, isl version none
warning: MPFR header version 4.2.0-p9 differs from library version 4.2.0-p12.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
COLLECT_GCC_OPTIONS='-march=native' '-Q' '--help=target' '-v' '-dumpdir' 'a-'
/usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/as -v --64 -o /tmp/cctCMdI1.o /tmp/ccNR7LwK.s
GNU assembler version 2.40.0 (x86_64-pc-linux-gnu) using BFD version (Gentoo 2.40 p5) 2.40.0 |
Code: | gcc -march=znver3 -Q --help=target -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/12/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /var/tmp/portage/sys-devel/gcc-12.3.1_p20230526/work/gcc-12-20230526/configure --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/12 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/12/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/12 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/12/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/12/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12 --with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/12/python --enable-languages=c,c++ --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --disable-libunwind-exceptions --enable-checking=release --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 12.3.1_p20230526 p2' --with-gcc-major-version-only --enable-libstdcxx-time --enable-lto --disable-libstdcxx-pch --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-multilib --with-multilib-list=m32,m64 --disable-fixed-point --enable-targets=all --enable-libgomp --disable-libssp --disable-libada --disable-cet --disable-systemtap --disable-valgrind-annotations --disable-vtable-verify --disable-libvtv --without-zstd --without-isl --enable-default-pie --enable-default-ssp
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.3.1 20230526 (Gentoo 12.3.1_p20230526 p2)
COLLECT_GCC_OPTIONS='-march=znver3' '-Q' '--help=target' '-v' '-dumpdir' 'a-'
/usr/libexec/gcc/x86_64-pc-linux-gnu/12/cc1 -v help-dummy -dumpdir a- -dumpbase help-dummy -march=znver3 -version --help=target -o /tmp/ccWI0zQs.s
The following options are target specific:
-m128bit-long-double [enabled]
-m16 [disabled]
-m32 [disabled]
-m3dnow [disabled]
-m3dnowa [disabled]
-m64 [enabled]
-m80387 [enabled]
-m8bit-idiv [disabled]
-m96bit-long-double [disabled]
-mabi= sysv
-mabm [enabled]
-maccumulate-outgoing-args [disabled]
-maddress-mode= long
-madx [enabled]
-maes [enabled]
-malign-data= compat
-malign-double [disabled]
-malign-functions= 0
-malign-jumps= 0
-malign-loops= 0
-malign-stringops [enabled]
-mamx-bf16 [disabled]
-mamx-int8 [disabled]
-mamx-tile [disabled]
-mandroid [disabled]
-march= znver3
-masm= att
-mavx [enabled]
-mavx2 [enabled]
-mavx256-split-unaligned-load [disabled]
-mavx256-split-unaligned-store [disabled]
-mavx5124fmaps [disabled]
-mavx5124vnniw [disabled]
-mavx512bf16 [disabled]
-mavx512bitalg [disabled]
-mavx512bw [disabled]
-mavx512cd [disabled]
-mavx512dq [disabled]
-mavx512er [disabled]
-mavx512f [disabled]
-mavx512fp16 [disabled]
-mavx512ifma [disabled]
-mavx512pf [disabled]
-mavx512vbmi [disabled]
-mavx512vbmi2 [disabled]
-mavx512vl [disabled]
-mavx512vnni [disabled]
-mavx512vp2intersect [disabled]
-mavx512vpopcntdq [disabled]
-mavxvnni [disabled]
-mbionic [disabled]
-mbmi [enabled]
-mbmi2 [enabled]
-mbranch-cost=<0,5> 3
-mcall-ms2sysv-xlogues [disabled]
-mcet-switch [disabled]
-mcld [disabled]
-mcldemote [disabled]
-mclflushopt [enabled]
-mclwb [enabled]
-mclzero [enabled]
-mcmodel= [default]
-mcpu=
-mcrc32 [enabled]
-mcx16 [enabled]
-mdaz-ftz [disabled]
-mdirect-extern-access [enabled]
-mdispatch-scheduler [disabled]
-mdump-tune-features [disabled]
-menqcmd [disabled]
-mf16c [enabled]
-mfancy-math-387 [enabled]
-mfentry [disabled]
-mfentry-name=
-mfentry-section=
-mfma [enabled]
-mfma4 [disabled]
-mforce-drap [disabled]
-mforce-indirect-call [disabled]
-mfp-ret-in-387 [enabled]
-mfpmath= sse
-mfsgsbase [enabled]
-mfunction-return= keep
-mfused-madd -ffp-contract=fast
-mfxsr [enabled]
-mgeneral-regs-only [disabled]
-mgfni [disabled]
-mglibc [enabled]
-mhard-float [enabled]
-mharden-sls= none
-mhle [disabled]
-mhreset [disabled]
-miamcu [disabled]
-mieee-fp [enabled]
-mincoming-stack-boundary= 0
-mindirect-branch-cs-prefix [disabled]
-mindirect-branch-register [disabled]
-mindirect-branch= keep
-minline-all-stringops [disabled]
-minline-stringops-dynamically [disabled]
-minstrument-return= none
-mintel-syntax -masm=intel
-mkl [disabled]
-mlarge-data-threshold=<number> 65536
-mlong-double-128 [disabled]
-mlong-double-64 [disabled]
-mlong-double-80 [enabled]
-mlwp [disabled]
-mlzcnt [enabled]
-mmanual-endbr [disabled]
-mmemcpy-strategy=
-mmemset-strategy=
-mmitigate-rop [disabled]
-mmmx [enabled]
-mmovbe [enabled]
-mmovdir64b [disabled]
-mmovdiri [disabled]
-mmove-max= 128
-mmpx [disabled]
-mms-bitfields [disabled]
-mmusl [disabled]
-mmwait [enabled]
-mmwaitx [enabled]
-mneeded [disabled]
-mno-align-stringops [disabled]
-mno-default [disabled]
-mno-fancy-math-387 [disabled]
-mno-push-args [disabled]
-mno-red-zone [disabled]
-mno-sse4 [disabled]
-mnop-mcount [disabled]
-momit-leaf-frame-pointer [disabled]
-mpc32 [disabled]
-mpc64 [disabled]
-mpc80 [disabled]
-mpclmul [enabled]
-mpcommit [disabled]
-mpconfig [disabled]
-mpku [enabled]
-mpopcnt [enabled]
-mprefer-avx128 -mprefer-vector-width=128
-mprefer-vector-width= none
-mpreferred-stack-boundary= 0
-mprefetchwt1 [disabled]
-mprfchw [enabled]
-mptwrite [disabled]
-mpush-args [enabled]
-mrdpid [enabled]
-mrdrnd [enabled]
-mrdseed [enabled]
-mrecip [disabled]
-mrecip=
-mrecord-mcount [disabled]
-mrecord-return [disabled]
-mred-zone [enabled]
-mregparm= 6
-mrelax-cmpxchg-loop [disabled]
-mrtd [disabled]
-mrtm [disabled]
-msahf [enabled]
-mserialize [disabled]
-msgx [disabled]
-msha [enabled]
-mshstk [disabled]
-mskip-rax-setup [disabled]
-msoft-float [disabled]
-msse [enabled]
-msse2 [enabled]
-msse2avx [disabled]
-msse3 [enabled]
-msse4 [enabled]
-msse4.1 [enabled]
-msse4.2 [enabled]
-msse4a [enabled]
-msse5 -mavx
-msseregparm [disabled]
-mssse3 [enabled]
-mstack-arg-probe [disabled]
-mstack-protector-guard-offset=
-mstack-protector-guard-reg=
-mstack-protector-guard-symbol=
-mstack-protector-guard= tls
-mstackrealign [disabled]
-mstore-max= 128
-mstringop-strategy= [default]
-mstv [enabled]
-mtbm [disabled]
-mtls-dialect= gnu
-mtls-direct-seg-refs [enabled]
-mtsxldtrk [disabled]
-mtune-ctrl=
-mtune= znver3
-muclibc [disabled]
-muintr [disabled]
-mvaes [enabled]
-mveclibabi= [default]
-mvect8-ret-in-mem [disabled]
-mvpclmulqdq [enabled]
-mvzeroupper [enabled]
-mwaitpkg [disabled]
-mwbnoinvd [enabled]
-mwidekl [disabled]
-mx32 [disabled]
-mxop [disabled]
-mxsave [enabled]
-mxsavec [enabled]
-mxsaveopt [enabled]
-mxsaves [enabled]
Known assembler dialects (for use with the -masm= option):
att intel
Known ABIs (for use with the -mabi= option):
ms sysv
Known code models (for use with the -mcmodel= option):
32 kernel large medium small
Valid arguments to -mfpmath=:
387 387+sse 387,sse both sse sse+387 sse,387
Known choices for mitigation against straight line speculation with -mharden-sls=:
all indirect-jmp none return
Known indirect branch choices (for use with the -mindirect-branch=/-mfunction-return= options):
keep thunk thunk-extern thunk-inline
Known choices for return instrumentation with -minstrument-return=:
call none nop5
Known data alignment choices (for use with the -malign-data= option):
abi cacheline compat
Known vectorization library ABIs (for use with the -mveclibabi= option):
acml svml
Known address mode (for use with the -maddress-mode= option):
long short
Known preferred register vector length (to use with the -mprefer-vector-width= option):
128 256 512 none
Known stack protector guard (for use with the -mstack-protector-guard= option):
global tls
Valid arguments to -mstringop-strategy=:
byte_loop libcall loop rep_4byte rep_8byte rep_byte unrolled_loop
vector_loop
Known TLS dialects (for use with the -mtls-dialect= option):
gnu gnu2
Known valid arguments for -march= option:
i386 i486 i586 pentium lakemont pentium-mmx winchip-c6 winchip2 c3 samuel-2 c3-2 nehemiah c7 esther i686 pentiumpro pentium2 pentium3 pentium3m pentium-m pentium4 pentium4m prescott nocona core2 nehalem corei7 westmere sandybridge corei7-avx ivybridge core-avx-i haswell core-avx2 broadwell skylake skylake-avx512 cannonlake icelake-client rocketlake icelake-server cascadelake tigerlake cooperlake sapphirerapids alderlake bonnell atom silvermont slm goldmont goldmont-plus tremont knl knm intel geode k6 k6-2 k6-3 athlon athlon-tbird athlon-4 athlon-xp athlon-mp x86-64 x86-64-v2 x86-64-v3 x86-64-v4 eden-x2 nano nano-1000 nano-2000 nano-3000 nano-x2 eden-x4 nano-x4 k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 athlon-fx amdfam10 barcelona bdver1 bdver2 bdver3 bdver4 znver1 znver2 znver3 znver4 btver1 btver2 generic native
Known valid arguments for -mtune= option:
generic i386 i486 pentium lakemont pentiumpro pentium4 nocona core2 nehalem sandybridge haswell bonnell silvermont goldmont goldmont-plus tremont knl knm skylake skylake-avx512 cannonlake icelake-client icelake-server cascadelake tigerlake cooperlake sapphirerapids alderlake rocketlake intel geode k6 athlon k8 amdfam10 bdver1 bdver2 bdver3 bdver4 btver1 btver2 znver1 znver2 znver3 znver4
GNU C17 (Gentoo 12.3.1_p20230526 p2) version 12.3.1 20230526 (x86_64-pc-linux-gnu)
compiled by GNU C version 12.3.1 20230526, GMP version 6.2.1, MPFR version 4.2.0-p9, MPC version 1.3.1, isl version none
warning: MPFR header version 4.2.0-p9 differs from library version 4.2.0-p12.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
COLLECT_GCC_OPTIONS='-march=znver3' '-Q' '--help=target' '-v' '-dumpdir' 'a-'
/usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/as -v --64 -o /tmp/ccizCubn.o /tmp/ccWI0zQs.s
GNU assembler version 2.40.0 (x86_64-pc-linux-gnu) using BFD version (Gentoo 2.40 p5) 2.40.0
|
Soweit ich sehe ist hier auch der einzige Unterschied "-mshstk [disabled]" bei znver3 |
|
Back to top |
|
|
kolibri n00b
Joined: 27 Jul 2023 Posts: 27 Location: Boizenburg, Germany
|
Posted: Thu Aug 03, 2023 11:51 am Post subject: |
|
|
lazydog wrote: | Soweit ich sehe ist hier auch der einzige Unterschied "-mshstk [disabled]" bei znver3 |
Jap, auch nur shstk wie bei mir. Dann war wohl das Problem, dass dein clang einfach absolut gar nicht optimiert war. Wobei das schon ein sehr krasser Unterschied ist, den ich so nicht erwartet hätte. |
|
Back to top |
|
|
lazydog n00b
Joined: 26 Feb 2007 Posts: 64
|
Posted: Thu Aug 03, 2023 12:11 pm Post subject: |
|
|
clang (und der Rest) war ja mit znver3 gebaut. Erst mit march=native war die Zeit für firefox dann bei rund 15 Minuten.
D.h. es gibt wohl doch einen Unterschied zwischen 5800X3D und den anderen Zen3-Varianten? Dachte immer der einzige Unterschied sei der größere L3-Cache (und etwas geringerer Takt im Vgl. zum 5800X).
Ich finde via google nur so idiotische Seiten wie "versus.com" und "cpumonkey" - keine richtigen specs. Oder macht AMD da ein Geheimnis draus? Oder ein Bug im gcc? Fragen über Fragen..
Also emerge --sync und emerge --quiet -u --changed-use --deep @world sind erstmal ohne Probleme durch und mit normalen Zeiten, soweit alles gut. Tausend Danke an alle! Eigentlich müsste ich euch jedem ein Bier ausgeben
Trotzdem seltsam mit den Optimierungen... |
|
Back to top |
|
|
firefly Watchman
Joined: 31 Oct 2002 Posts: 5241
|
Posted: Thu Aug 03, 2023 12:14 pm Post subject: |
|
|
kolibri wrote: | lazydog wrote: | Soweit ich sehe ist hier auch der einzige Unterschied "-mshstk [disabled]" bei znver3 |
Jap, auch nur shstk wie bei mir. Dann war wohl das Problem, dass dein clang einfach absolut gar nicht optimiert war. Wobei das schon ein sehr krasser Unterschied ist, den ich so nicht erwartet hätte. |
Stimmt nicht ganz den laut dem hier:
lazydog wrote: | Habe jetzt clang-15.0.7 mit korrekten CXXFLAGS neu gebaut und hinterher firefox. build time 56 Minuten und 49 Sekunden. Kommen wir der Sache näher?
Jetzt probier ich noch march=native... |
hat auch mit march=znver3 keine so massive verbesserung ergeben wie mit march=native.
Das wirkt so jetzt auf mich als ob für seine CPU durch explizite angabe von znver3 suboptimalen code erzeugt wird.
Oder hast du @lazydog zu diesem zeitpunkt nur clang mit korrekten CXXFLAGS neu übersetzt?
Wenn ja dann ist es auch kein wunder das es kaum Verbesserung gab. Denn clang ist nur ein frontend für llvm und wenn llvm nicht optimiert übersetzt wurde, dann hilft ein optimierter build von clang so gut wie gar nichts.
Für den gegen test baue bitte llvm 15 und clang 15 mit march=znver3 und lass dann firefox mit clang bauen _________________ Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn. |
|
Back to top |
|
|
lazydog n00b
Joined: 26 Feb 2007 Posts: 64
|
Posted: Fri Aug 04, 2023 10:09 am Post subject: |
|
|
Jetzt aber.
llvm-15.0.7-r3 und clang-15.0.7-r3 beide mit znver3 gebaut.
Code: | www-client/firefox-102.14.0
merge time: 14 minutes and 37 seconds. |
Da war mir davor scheinbar durch die Lappen gegangen, daß zwar llvm-16.0.6 (und clang) mit den richtigen Flags gebaut war, 15.0.7 aber *nicht*.
Was ne Geburt...
Sollte ich jetzt auch gcc und rust mit znver3 neu bauen oder es einfach so lassen? Oder lieber alles wieder auf native? |
|
Back to top |
|
|
kolibri n00b
Joined: 27 Jul 2023 Posts: 27 Location: Boizenburg, Germany
|
Posted: Fri Aug 04, 2023 10:12 am Post subject: |
|
|
gcc und rust werden in den nächsten Wochen durch neue Versionen sowieso neu gebaut, und aktuell waren die ja nicht unperformant, also ist da kein akuter Bedarf zum Neukompilieren. |
|
Back to top |
|
|
firefly Watchman
Joined: 31 Oct 2002 Posts: 5241
|
Posted: Fri Aug 04, 2023 10:30 am Post subject: |
|
|
lazydog wrote: | Sollte ich jetzt auch gcc und rust mit znver3 neu bauen oder es einfach so lassen? Oder lieber alles wieder auf native? |
In deinem falle ist znver3 und native identisch. Die Nutzung von native hätte nur den vorteil, wenn du jemals z.b. auf eine zen4 oder neuer CPU aktualisierst, dass du dann deine Compiler flags nicht anpassen musst, wenn der compiler speziellen support für diese cpu bekommt.
Ansonsten ist es deine Entscheidung ob du bei znver3 bleibst oder auf native wechselst. Wobei hier keinerlei Pakete neu gebaut werden müssen falls du dich entscheidest auf native umzustellen _________________ Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn. |
|
Back to top |
|
|
lazydog n00b
Joined: 26 Feb 2007 Posts: 64
|
Posted: Sat Aug 05, 2023 8:42 am Post subject: |
|
|
Prima, dann lass ich erstmal alles so. Bis Zen4 bei mir ins Büro kommt wird hoffentlich noch viel Zeit vergehen. |
|
Back to top |
|
|
Erdie Advocate
Joined: 20 May 2004 Posts: 2599 Location: Heidelberg - Germany
|
Posted: Fri Aug 11, 2023 12:56 pm Post subject: |
|
|
ManfredB wrote: | Hallo arfe!
Das weiß ich doch.
Aber gibt es irgendwelche Qualitätsunterschiede zwischen firefox unf firefox-bin?
Oder sind beide Pakete auf dem gleichen Level? |
Ich würde es nicht Qualitätsunterschiede nennen. Aber eine binäres Paket kann ja nur mit generischen CPU flags kompiliert werde, es wird kein speziellen Optimierungen enthalten, sonst wäre es nicht zu allen Architekturen kompatibel Ausserdem hast du keine Möglichkeit, etwas über USE Flags zu steuern, die Einfluß auf den Kompilierprozess haben. Du bist weniger flexibel bei der Nutzung eines Binärpaketes. Meistens funktionieren die aber schon sehr gut.
Man kann zusammenfassen, dass Du mit Binärpaketen auf die speziellen Vorteile eines Gentoo Systems verzichtest. Der Vorteil ist offensichtlich die bedeutend kürzere Installationszeit bie großen Paketen. _________________ Desktop AMD Ryzen 9 5900X 32GB RAM, Asus GF GTX 1060.
Notebook Tuxedo Pulse 15 Gen1 AMD Ryzen 7 4800H mit Radeon Vega 7
Raspberry Pi 1 + 2 + 3B+ + Zero W |
|
Back to top |
|
|
Erdie Advocate
Joined: 20 May 2004 Posts: 2599 Location: Heidelberg - Germany
|
Posted: Sat Aug 12, 2023 11:51 am Post subject: |
|
|
BTW:
Ich habe es mal gemessen und ich brauche für firefox auf Ryzen 9 5900X mit 32Gig RAM:
real 10m44,105s
user 183m2,227s
sys 5m12,915s
Aufgrund dieses Threads habe ich mir mal die Ryzen Doku angeguckt und entdeckt, dass man mit dem experimental USE flag in den gentoo-sources weitere Architekturen angeboten bekommt u. a. auch Zen3. Das habe ich jetzt mal ausprobiert. Gibt es dazu Erfahrungen? Insbesondere negative Erfahrungen wären interessant, denn ich möchte mir damit keine Instabilitäten einhandeln. Bringt das irgendwas im signifikanten Ausmaß? _________________ Desktop AMD Ryzen 9 5900X 32GB RAM, Asus GF GTX 1060.
Notebook Tuxedo Pulse 15 Gen1 AMD Ryzen 7 4800H mit Radeon Vega 7
Raspberry Pi 1 + 2 + 3B+ + Zero W |
|
Back to top |
|
|
lazydog n00b
Joined: 26 Feb 2007 Posts: 64
|
Posted: Sun Aug 13, 2023 8:34 am Post subject: |
|
|
Ich kenne das USE-Flag habe es aber nicht gesetzt, da ich seit jeher überall wo "experimental" drauf steht die Finger weg lasse ^^
Soweit ich das verstehe betreffen die Optimierungen nur den Kernel-Code selbst, ob das große Auswirkungen hat kann ich nicht sagen.
Teste es dochmal selbst, z.B. Geekbench mit und ohne optimiertem Kernel ob sich da signifikante Unterschiede ergeben (ich wette, dass nicht ) |
|
Back to top |
|
|
Erdie Advocate
Joined: 20 May 2004 Posts: 2599 Location: Heidelberg - Germany
|
Posted: Sun Aug 13, 2023 12:26 pm Post subject: |
|
|
Firefox Kompilierzeiten:
6.1.38 ohne Zen3:
real 10m42,535s
user 182m36,604s
sys 5m9,470s
6.1.41 mit Zen3
real 10m40,736s
user 182m55,383s
sys 5m9,765s
In beiden Fällen mit "-j20". Das ist jetzt fast identisch
Jetzt versuch ich es mal mit Geekbench:
6.1.41 mit Zen3:
Single core: 2221 Multi core: 11310
6.1.38 ohne Zen3:
Single core: 2226 Multi core: 11411
6.1.41 zurückgebaut ohne Zen3:
Single core: 2189 Multi core: 11294
Abgesehen von der Unsicherheit, dass die Kernel Versionen nicht gleich sind, ist die Version ohne Zen3 Option schneller als die mit Zen3 _________________ Desktop AMD Ryzen 9 5900X 32GB RAM, Asus GF GTX 1060.
Notebook Tuxedo Pulse 15 Gen1 AMD Ryzen 7 4800H mit Radeon Vega 7
Raspberry Pi 1 + 2 + 3B+ + Zero W |
|
Back to top |
|
|
firefly Watchman
Joined: 31 Oct 2002 Posts: 5241
|
Posted: Sun Aug 13, 2023 2:16 pm Post subject: |
|
|
Erdie wrote: |
Jetzt versuch ich es mal mit Geekbench:
6.1.41 mit Zen3:
Single core: 2221 Multi core: 11310
6.1.38 ohne Zen3:
Single core: 2226 Multi core: 11411
6.1.41 zurückgebaut ohne Zen3:
Single core: 2189 Multi core: 11294
Abgesehen von der Unsicherheit, dass die Kernel Versionen nicht gleich sind, ist die Version ohne Zen3 Option schneller als die mit Zen3 |
Naja eher fallen die unterschiede in die Kategorie messungenauigkeit.
Um aussagekräftigere Werte zu bekommen müsstest die Tests mehrmals durchlaufen lassen (z.b. 10 Mal) und aus den ergebnissen einen mittelwert bilden.
Wobei AFAIK man dabei zusätzlich den "besten" und den "schlechtesten" Wert entfernen sollte, da solche Werte eher sporadische Aussreiser sind und dadurch keine aussagekraft haben.
Aber dass die CPU spezifischen Optimierungen im Kernel überhaupt einen großen Einfluss auf einen Anwendungsfall haben können, müsste dieser Anwendungsfall in seinem "hot path" (der sehr oft pro sekunde durchlaufen wird) viel "zeit" in kernel code verbringen (z.b. sehr viele syscalls aufrufen) _________________ Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn. |
|
Back to top |
|
|
Erdie Advocate
Joined: 20 May 2004 Posts: 2599 Location: Heidelberg - Germany
|
Posted: Sun Aug 13, 2023 7:00 pm Post subject: |
|
|
Sieht aber trotzdem eher marginal aus. Ich lass das jetzt erstmal mit "experimental" bevor ich mir damit noch irgendwelchen Stress einhandle. _________________ Desktop AMD Ryzen 9 5900X 32GB RAM, Asus GF GTX 1060.
Notebook Tuxedo Pulse 15 Gen1 AMD Ryzen 7 4800H mit Radeon Vega 7
Raspberry Pi 1 + 2 + 3B+ + Zero W |
|
Back to top |
|
|
kolibri n00b
Joined: 27 Jul 2023 Posts: 27 Location: Boizenburg, Germany
|
Posted: Tue Aug 15, 2023 9:02 am Post subject: |
|
|
Bei speziellen Zen3 Optimierungen im Kernel kann ich mir eher vorstellen, dass vielleicht Dateisystemtreiber oder so minimal optimierter laufen könnten. Die Crypto-Funktionen im Kernel sind ja meist eh schon mit Inline-Assembler gebaut.
Also wenn es einen messbaren Unterschied gibt, dann nur in sehr cpu-intensiven Bereichen des Kernels, die nicht eh schon optimiert sind. Und da fallen mir spontan keine ein. |
|
Back to top |
|
|
|