Re: What CPU extensions can we assume are available by arch?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



There really two questions here. Will/can  Fedora automatically take
advantage of new instruction set architecture (ISA). And can my
project take advantage to new ISA.

The short answer is yes/maybe.

The longer answer is the mechanisms exist (built into the compilers
and runtime), but not all projects and packages take advantage of
these mechanisms (For example dynamic libraries can use platform based
library search or STTGNUIFUNC symbol type extension), and. The Kernel
and GLIBC usually do. This requires the platform maintainers to do
extra work. I don't think either is commonly used for general library
packages.

The distro/kernel/runtime/community will decide on a "base platform
ISA level" For PowerPC64le that is POWER8 (PowerISA-2.07B). This
includes VMX/VSX but not the POWER9 extensions like Float128 hardware
FP.
See: https://fedoraproject.org/wiki/Architectures/PowerPC

Of course the the distro (will/should) install on newer processors
(like POWER9) which has a larger ISA (more instructions).

The Linux kernel notified each process of the Platform and Hardware
Capabilities it the AUX Vector (Defined in the Application Binary
Interface Document for each platform). The compilers provide a easy to
use interface to interrogate this:
https://gcc.gnu.org/onlinedocs/gcc-9.3.0/gcc/Basic-PowerPC-Built-in-Functions-Available-on-all-Configurations.html#Basic-PowerPC-Built-in-Functions-Available-on-all-Configurations.
Similarly for x86.

This is the mechanism that the dynamic linker / runtime use to select
the best implementation (of for example memcpy or cosf128) based on
the platform (POWER8 vs POWER9).

This CAN be used by any project/package. I am working on documenting
this (implementing dynamic IFUNC selection for platform specific
optimizations) as part of the PVECLIB project. If interested send me a
note.
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux