Jump to content
Read the Funtoo Newsletter: Summer 2023 ×
  • 0

arch selection



I have several systems that are skylake or newer intel processors. There is one system that has haswell dual processors.

I have been thinking about using a binary package host. Should I set up a binary host for arch=skylake and then one (separate directory) for arch=haswell?

Basically, I want to know how much of a performance difference there is between the Generic_64 and processor family arch builds of various packages.

Edited by mpsii
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Hi i might not be a Funtoo Guru, but as i remember the performance difference between 2 intel generations wasn't that big... so even using the same flags as for the oldest chip you won't feel the difference...

The difference between separate architectures is in functions build in core... and it's important... only when u use application that need it... for example:

If u run emerge --ask firefox u will see CPU_FLAGS_X86="avx2" somewhere in output... so Firefox is able to use AVX2 extension to speed up calculations... and as i remember all Intel core processors have AVX2 extension...

As i remember especially media applications use some of the newest CPU extensions, but u won't feel much difference...

You can compare your computers by running on them "less /proc/cpuinfo" and compare "flags" section between them.

Another simply app that it would do it for u is cpuid2cpuflags... (emerge --ask app-portage/cpuid2cpuflags)

gregfuntoo ~ # cpuid2cpuflags
CPU_FLAGS_X86: aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3

so in make.conf you just add:

CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"

and same in USE section:

USE="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"

because not all ebuilds are configured for dealing with CPU_FLAGS_X86

The best way to deal with CFLAGS, and CXXFLAGS is to use "-march=native -O2 -pipe" and compile on machine that will use it... or set -march= for the oldest pc u have to use compiled packages at any of them...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...