News: 0001474751

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Qualcomm Begins Optimizing Glibc For Their Oryon CPU Core

([GNU] 72 Minutes Ago oryon-1)


Qualcomm has begun landing performance optimizations into the GNU C Library "glibc" for benefiting their new Oryon-1 CPU cores as found in the Snapdragon X Elite/Plus SoCs.

Now that the first of the [1]Snapdragon X Elite ARM64 laptops are shipping and [2]basics of the Linux support surfacing, Qualcomm engineers have begun more work on performance tuning and other improvements across the open-source landscape.

Being merged to the GNU C Library this weekend were the first bits of Oryon-1 CPU tuning. There's now [3]a new memcpy implementation for memory copies with this all important library. That commit noted:

"Qualcomm's new core (oryon-1) has a different performance characteristic than other cores. For memcpy, it is faster to use the GPRs to do the copy for large sizes (2x faster). For even larger sizes, it is better to use the nontemporal load/store instructions so we don't pollute the L1/L2 caches.

For smaller sizes, the characteristic are very similar to other cores. I used the thunderx memcpy as a starting point and expanded from there."

And also [4]a new memset implementation was merged to Glibc as well for the Oryon-1 CPU cores:

"Qualcom's new core, oryon-1, has a different characteristics for memset than the current versions of memset. For non-zero, larger sizes, using GPRs rather than the SIMD stores is ~30% faster. For even larger sizes, using the nontemporal stores is needed not to polute the L1/L2 caches.

For zero values, using `dc zva` should be used. Since we know the size will always be 64 bytes, we don't need to figure out the size there.

I started with the emag memset and added back the `dc zva` code."

These changes will be found in Glibc 2.40 that should be out next month.



[1] https://www.phoronix.com/search/Snapdragon+X+Elite

[2] https://www.phoronix.com/news/ASUS-Vivbook-S-15-Elite-X-Linux

[3] https://sourceware.org/git?p=glibc.git;a=commit;h=4dc83cac78a92a99cdd1ae808890083461597b82

[4] https://sourceware.org/git/?p=glibc.git;a=commit;h=2f1f7a5f8aa7285e9a55b209dd01fdcb0d4e7281



phoronix

Unix Beer: Comes in several different brands, in cans ranging from 8 oz.
to 64 oz. Drinkers of Unix Beer display fierce brand loyalty, even
though they claim that all the different brands taste almost identical.
Sometimes the pop-tops break off when you try to open them, so you have
to have your own can opener around for those occasions, in which case you
either need a complete set of instructions, or a friend who has been
drinking Unix Beer for several years.
BSD stout: Deep, hearty, and an acquired taste. The official
brewer has released the recipe, and a lot of home-brewers now use it.
Hurd beer: Long advertised by the popular and politically active
GNU brewery, so far it has more head than body. The GNU brewery is
mostly known for printing complete brewing instructions on every can,
which contains hops, malt, barley, and yeast ... not yet fermented.
Linux brand: A recipe originally created by a drunken Finn in his
basement, it has since become the home-brew of choice for impecunious
brewers and Unix beer-lovers worldwide, many of whom change the recipe.
POSIX ales: Sweeter than lager, with the kick of a stout; the
newer batches of a lot of beers seem to blend ale and stout or lager.
Solaris brand: A lager, intended to replace Sun brand stout.
Unlike most lagers, this one has to be drunk more slowly than stout.
Sun brand: Long the most popular stout on the Unix market, it was
discontinued in favor of a lager.
SysV lager: Clear and thirst-quenching, but lacking the body of
stout or the sweetness of ale.