<story><title>AMD and Valve Working on New Linux CPU Performance Scaling Design</title><url>https://www.phoronix.com/scan.php?page=news_item&amp;px=AMD-Valve-New-CPU-Freq</url></story><parent_chain><item><author>hyperman1</author><text>I wonder if it is worth it to select a few core libraries like glibc, and get the distro to install multiple variants, each optimized for a different CPU.</text></item><item><author>zamalek</author><text>One of the great successes of Intel has definitely been establishing their processors as the default optimization status quo. Beyond the scheduler, compilers also optimize (by default) for Intel instruction latencies and pipelines.&lt;p&gt;One way to remedy this would be to ship more distros with march=native as the default. You only need to specify the architecture when you are building binaries for distribution (which mostly happens on CI servers these days). This would result in better perf on not only AMD chips, but also newer Intel chips.</text></item></parent_chain><comment><author>10000truths</author><text>For x64, you don&amp;#x27;t need to distribute multiple binaries. You can have one binary with variants of a function each optimized for a particular microarch, and resolve which variant to use at runtime using the CPUID instruction. gcc already does this for you with function multiversioning, and glibc makes use of it for its string routines.</text></comment>
<story><title>AMD and Valve Working on New Linux CPU Performance Scaling Design</title><url>https://www.phoronix.com/scan.php?page=news_item&amp;px=AMD-Valve-New-CPU-Freq</url></story><parent_chain><item><author>hyperman1</author><text>I wonder if it is worth it to select a few core libraries like glibc, and get the distro to install multiple variants, each optimized for a different CPU.</text></item><item><author>zamalek</author><text>One of the great successes of Intel has definitely been establishing their processors as the default optimization status quo. Beyond the scheduler, compilers also optimize (by default) for Intel instruction latencies and pipelines.&lt;p&gt;One way to remedy this would be to ship more distros with march=native as the default. You only need to specify the architecture when you are building binaries for distribution (which mostly happens on CI servers these days). This would result in better perf on not only AMD chips, but also newer Intel chips.</text></item></parent_chain><comment><author>fsaintjacques</author><text>glibc already does dynamic dispatch for the memcpy family of functions.</text></comment>