[AMD Public Use]

> That's deliberate, so that we can use the same x86-* names for 32-bit library 
> selection (once we define matching micro-architecture levels there).

Understood.

> If numbers are out, what should we use instead?
> x86-sse4, x86-avx2, x86-avx512?  Would that work?

Yes please, I think we have to choose somewhere, above would be more descriptive

> Let's merge Level B into level C then?

I would vote for this.

>> Also we would also like to have dynamic loader support for "zen" / 
>> "zen2" as a version of "Level D" and takes preference over Level D, 
>> which may have super-optimized libraries from AMD or other vendors.

> *That* shouldn't be too hard to implement if we can nail down the selection 
> criteria.  Let's call this Zen-specific Level C x86-zen-avx2 for the sake of 
> exposition.

Some way of specifying a superset of "level C" , that "C" will capture fully.

Zen/zen2 takes precedence over Level C, but not Level D, but falls back to 
"Level C" or "x86-avx2" but not "x86-avx".

I think it is better to run a x86-zen on a x86-avx2 or x86-avx compared to 
running on a base x86_64 config.

> With the levels I proposed, these aspects are covered.  But if we start to 
> create vendor-specific forks in the feature progression, things get 
> complicated.
I am not strictly proposing OS vendors should create/maintain this (it would be 
nice if they did), but a support to cached load via system-wide-config. This 
directory may/will contain a subset of system libs.

> Do you think we need to figure this out in this iteration?  If yes, then I 
> really need a semi-formal description of the selection criteria for this 
> x86-zen-avx2 directory, so that I can passed it along with my psABI proposal.

Preference level (decreasing order) (I can only speak for AMD, others please 
pitch in)
- system wide config to override (in this case x86-zen)
- x86-avx2
- x86-sse4 (or avx, based on how we name and merge Level B)
- default x86_64

Reply via email to