[RFC] PPC64: Vector Function ABI for Power Architecture

classic Classic list List threaded Threaded
14 messages Options
GT
Reply | Threaded
Open this post in threaded view
|

[RFC] PPC64: Vector Function ABI for Power Architecture

GT
1.  The document is hosted at URL: https://github.com/power8-abi-doc
2.  Bill Schmidt, cc'ed here, is the IBMer ultimately responsible for the document.

The pdf does not render quite right - so for feedback regarding visual presentation of the document, first download the html and open it in a browser. Please use the ABI's rendering in a browser as the basis for any recommendations on its formatting.

Thanks.
Bert.
Reply | Threaded
Open this post in threaded view
|

Re: [RFC] PPC64: Vector Function ABI for Power Architecture

Tulio Magno Quites Machado Filho-3
GT <[hidden email]> writes:

> 1.  The document is hosted at URL: https://github.com/power8-abi-doc
> 2.  Bill Schmidt, cc'ed here, is the IBMer ultimately responsible for the document.
>
> The pdf does not render quite right - so for feedback regarding visual presentation of the document, first download the html and open it in a browser. Please use the ABI's rendering in a browser as the basis for any recommendations on its formatting.

In section "Vector Function Name Mangling", I'm afraid we can't leave the <isa>
with an entry as generic as VSX.

There are VSX instructions included in ISA 3.0 that will not execute in ISA
2.07.  So, I think we need 2 <isa> entries there:

1. ISA 2.07, which is the minimum ISA required in this document.
2. ISA 3.0

--
Tulio Magno
Reply | Threaded
Open this post in threaded view
|

Re: [RFC] PPC64: Vector Function ABI for Power Architecture

Bill Schmidt-2
On 11/22/19 2:27 PM, Tulio Magno Quites Machado Filho wrote:

> GT <[hidden email]> writes:
>
>> 1.  The document is hosted at URL: https://github.com/power8-abi-doc
>> 2.  Bill Schmidt, cc'ed here, is the IBMer ultimately responsible for the document.
>>
>> The pdf does not render quite right - so for feedback regarding visual presentation of the document, first download the html and open it in a browser. Please use the ABI's rendering in a browser as the basis for any recommendations on its formatting.
> In section "Vector Function Name Mangling", I'm afraid we can't leave the <isa>
> with an entry as generic as VSX.
>
> There are VSX instructions included in ISA 3.0 that will not execute in ISA
> 2.07.  So, I think we need 2 <isa> entries there:
>
> 1. ISA 2.07, which is the minimum ISA required in this document.
> 2. ISA 3.0
>
I agree.  Thanks, Tulio!

Bill

GT
Reply | Threaded
Open this post in threaded view
|

Re: [RFC] PPC64: Vector Function ABI for Power Architecture

GT
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Friday, November 22, 2019 3:34 PM, Bill Schmidt <[hidden email]> wrote:

> On 11/22/19 2:27 PM, Tulio Magno Quites Machado Filho wrote:
>
> > GT [hidden email] writes:
> >
> > > 1.  The document is hosted at URL: https://github.com/power8-abi-doc
> > > 2.  Bill Schmidt, cc'ed here, is the IBMer ultimately responsible for the document.
> > >
> > > The pdf does not render quite right - so for feedback regarding visual presentation of the document, first download the html and open it in a browser. Please use the ABI's rendering in a browser as the basis for any recommendations on its formatting.
> > > In section "Vector Function Name Mangling", I'm afraid we can't leave the <isa>
> > > with an entry as generic as VSX.
> >
> > There are VSX instructions included in ISA 3.0 that will not execute in ISA
> > 2.07. So, I think we need 2 <isa> entries there:
> >
> > 1.  ISA 2.07, which is the minimum ISA required in this document.
> > 2.  ISA 3.0
>

We have not used any instructions introduced in ISA 3.0. Can I simply have a single
entry indicating ISA 2.07? Or should it be ISA 2.07+ (i.e. ISA at or above v2.07)?
Or do we still really need 2 separate entries?

Thanks.
Bert.
Reply | Threaded
Open this post in threaded view
|

Re: [RFC] PPC64: Vector Function ABI for Power Architecture

Bill Schmidt-2
On 11/22/19 2:58 PM, GT wrote:

> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> On Friday, November 22, 2019 3:34 PM, Bill Schmidt <[hidden email]> wrote:
>
>> On 11/22/19 2:27 PM, Tulio Magno Quites Machado Filho wrote:
>>
>>> GT [hidden email] writes:
>>>
>>>> 1.  The document is hosted at URL: https://github.com/power8-abi-doc
>>>> 2.  Bill Schmidt, cc'ed here, is the IBMer ultimately responsible for the document.
>>>>
>>>> The pdf does not render quite right - so for feedback regarding visual presentation of the document, first download the html and open it in a browser. Please use the ABI's rendering in a browser as the basis for any recommendations on its formatting.
>>>> In section "Vector Function Name Mangling", I'm afraid we can't leave the <isa>
>>>> with an entry as generic as VSX.
>>> There are VSX instructions included in ISA 3.0 that will not execute in ISA
>>> 2.07. So, I think we need 2 <isa> entries there:
>>>
>>> 1.  ISA 2.07, which is the minimum ISA required in this document.
>>> 2.  ISA 3.0
> We have not used any instructions introduced in ISA 3.0. Can I simply have a single
> entry indicating ISA 2.07? Or should it be ISA 2.07+ (i.e. ISA at or above v2.07)?
> Or do we still really need 2 separate entries?
>
> Thanks.
> Bert.

ABI decisions shouldn't be based only on the current implementation. 
It's possible that we would later want to make use of ISA 3.0
instructions in a future implementation of these same interfaces. 
Furthermore, it becomes even more likely as we move ahead into later
versions of the ISA.  So I think it's best to be flexible and assign
2.07 and 3.0 today, with the understanding that we will continue to add
to this as ISA levels are released.

For today's implementations, the VSX/2.07 mangling would be the only one
in use, so we're not asking for any changes in the implementation.

Thanks!
Bill

GT
Reply | Threaded
Open this post in threaded view
|

Re: [RFC] PPC64: Vector Function ABI for Power Architecture

GT
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Friday, November 22, 2019 4:45 PM, Bill Schmidt <[hidden email]> wrote:

> On 11/22/19 2:58 PM, GT wrote:
>
> > ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> > On Friday, November 22, 2019 3:34 PM, Bill Schmidt [hidden email] wrote:
> >
> > > On 11/22/19 2:27 PM, Tulio Magno Quites Machado Filho wrote:
> > >
> > > > GT [hidden email] writes:
> > > >
> > > > > 1.  The document is hosted at URL: https://github.com/power8-abi-doc
> > > > > 2.  Bill Schmidt, cc'ed here, is the IBMer ultimately responsible for the document.
> > > > >
> > > > > The pdf does not render quite right - so for feedback regarding visual presentation of the document, first download the html and open it in a browser. Please use the ABI's rendering in a browser as the basis for any recommendations on its formatting.
> > > > > In section "Vector Function Name Mangling", I'm afraid we can't leave the <isa>
> > > > > with an entry as generic as VSX.
> > > > > There are VSX instructions included in ISA 3.0 that will not execute in ISA
> > > > > 2.07. So, I think we need 2 <isa> entries there:
> > > >
> > > > 1.  ISA 2.07, which is the minimum ISA required in this document.
> > > > 2.  ISA 3.0
> > > >     We have not used any instructions introduced in ISA 3.0. Can I simply have a single
> > > >     entry indicating ISA 2.07? Or should it be ISA 2.07+ (i.e. ISA at or above v2.07)?
> > > >     Or do we still really need 2 separate entries?
> > > >
> >
> > Thanks.
> > Bert.
>
> ABI decisions shouldn't be based only on the current implementation. 
> It's possible that we would later want to make use of ISA 3.0
> instructions in a future implementation of these same interfaces. 
> Furthermore, it becomes even more likely as we move ahead into later
> versions of the ISA.  So I think it's best to be flexible and assign
> 2.07 and 3.0 today, with the understanding that we will continue to add
> to this as ISA levels are released.
>
> For today's implementations, the VSX/2.07 mangling would be the only one
> in use, so we're not asking for any changes in the implementation.
>
> Thanks!
> Bill

Alright. I will have the assignments as:
'b' VSX as defined in Power ISA v2.07
'c' VSX as defined in Power ISA v3.0

Good enough?

Thanks.
Bert.
Reply | Threaded
Open this post in threaded view
|

Re: [RFC] PPC64: Vector Function ABI for Power Architecture

Bill Schmidt-2
On 11/22/19 3:53 PM, GT wrote:

> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> On Friday, November 22, 2019 4:45 PM, Bill Schmidt <[hidden email]> wrote:
>
>> On 11/22/19 2:58 PM, GT wrote:
>>
>>> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
>>> On Friday, November 22, 2019 3:34 PM, Bill Schmidt [hidden email] wrote:
>>>
>>>> On 11/22/19 2:27 PM, Tulio Magno Quites Machado Filho wrote:
>>>>
>>>>> GT [hidden email] writes:
>>>>>
>>>>>> 1.  The document is hosted at URL: https://github.com/power8-abi-doc
>>>>>> 2.  Bill Schmidt, cc'ed here, is the IBMer ultimately responsible for the document.
>>>>>>
>>>>>> The pdf does not render quite right - so for feedback regarding visual presentation of the document, first download the html and open it in a browser. Please use the ABI's rendering in a browser as the basis for any recommendations on its formatting.
>>>>>> In section "Vector Function Name Mangling", I'm afraid we can't leave the <isa>
>>>>>> with an entry as generic as VSX.
>>>>>> There are VSX instructions included in ISA 3.0 that will not execute in ISA
>>>>>> 2.07. So, I think we need 2 <isa> entries there:
>>>>> 1.  ISA 2.07, which is the minimum ISA required in this document.
>>>>> 2.  ISA 3.0
>>>>>      We have not used any instructions introduced in ISA 3.0. Can I simply have a single
>>>>>      entry indicating ISA 2.07? Or should it be ISA 2.07+ (i.e. ISA at or above v2.07)?
>>>>>      Or do we still really need 2 separate entries?
>>>>>
>>> Thanks.
>>> Bert.
>> ABI decisions shouldn't be based only on the current implementation.
>> It's possible that we would later want to make use of ISA 3.0
>> instructions in a future implementation of these same interfaces.
>> Furthermore, it becomes even more likely as we move ahead into later
>> versions of the ISA.  So I think it's best to be flexible and assign
>> 2.07 and 3.0 today, with the understanding that we will continue to add
>> to this as ISA levels are released.
>>
>> For today's implementations, the VSX/2.07 mangling would be the only one
>> in use, so we're not asking for any changes in the implementation.
>>
>> Thanks!
>> Bill
> Alright. I will have the assignments as:
> 'b' VSX as defined in Power ISA v2.07
> 'c' VSX as defined in Power ISA v3.0
>
> Good enough?
Works for me!  Thanks!
Bill
>
> Thanks.
> Bert.
Reply | Threaded
Open this post in threaded view
|

Re: [RFC] PPC64: Vector Function ABI for Power Architecture

Tulio Magno Quites Machado Filho-3
In reply to this post by GT
GT <[hidden email]> writes:

> Alright. I will have the assignments as:
> 'b' VSX as defined in Power ISA v2.07
> 'c' VSX as defined in Power ISA v3.0

Looks good to me too.

Thanks!

--
Tulio Magno
GT
Reply | Threaded
Open this post in threaded view
|

Re: [RFC] PPC64: Vector Function ABI for Power Architecture

GT
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Monday, November 25, 2019 8:00 AM, Tulio Magno Quites Machado Filho <[hidden email]> wrote:

> GT [hidden email] writes:
>
> > Alright. I will have the assignments as:
> > 'b' VSX as defined in Power ISA v2.07
> > 'c' VSX as defined in Power ISA v3.0
>
> Looks good to me too.
>

1. The document has been changed to provide separate assignments for VSX in ISA versions
v2.07 and v3.0. Again, the URL is github.com/power8-abi-doc/vector-function-abi.git. Clone
it and open the html file in a browser. The pdf file continues to suffer formatting issues as
it is created using html file -> html2ps -> ps2pdf -> pdf file.


2. With the understanding that GCC does not vectorize sincos - not for x86_64 nor Aarch64 -
can we now offer up PPC64 libmvec patches for inclusion in the main glibc development
repository? They currently live in branch tuliom/libmvec and we would like to have them
reviewed for acceptance into the master branch.

Thanks.
Bert.
GT
Reply | Threaded
Open this post in threaded view
|

Re: [RFC] PPC64: Vector Function ABI for Power Architecture

GT
What is the process so that information regarding PPC64 libmvec is added to
https://sourceware.org/glibc/wiki/libmvec?

I think it would be enough if in the introduction, a note is made that a PPC64 implementation
exists and provide a link to the Power Vector Function ABI document. This should mean the
latest version of the ABI document be uploaded to sourceware.org/glibc as was done for
x86_64 Vector ABI at URL:

https://sourceware.org/glibc/wiki/libmvecaction=AttachFile&do=view&target=VectorABI.txt

Thanks.
Bert.

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Wednesday, January 15, 2020 3:04 PM, GT <[hidden email]> wrote:

> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> On Monday, November 25, 2019 8:00 AM, Tulio Magno Quites Machado Filho [hidden email] wrote:
>
> > GT [hidden email] writes:
> >
> > > Alright. I will have the assignments as:
> > > 'b' VSX as defined in Power ISA v2.07
> > > 'c' VSX as defined in Power ISA v3.0
> >
> > Looks good to me too.
>
> 1.  The document has been changed to provide separate assignments for VSX in ISA versions
>     v2.07 and v3.0. Again, the URL is github.com/power8-abi-doc/vector-function-abi.git. Clone
>     it and open the html file in a browser. The pdf file continues to suffer formatting issues as
>     it is created using html file -> html2ps -> ps2pdf -> pdf file.
>
>
> 2. With the understanding that GCC does not vectorize sincos - not for x86_64 nor Aarch64 -
> can we now offer up PPC64 libmvec patches for inclusion in the main glibc development
> repository? They currently live in branch tuliom/libmvec and we would like to have them
> reviewed for acceptance into the master branch.
>
> Thanks.
> Bert.


Reply | Threaded
Open this post in threaded view
|

Re: [RFC] PPC64: Vector Function ABI for Power Architecture

Tulio Magno Quites Machado Filho-3
GT <[hidden email]> writes:

> What is the process so that information regarding PPC64 libmvec is added to
> https://sourceware.org/glibc/wiki/libmvec?

You need to create an account for you in the wiki and then you need to
be added to the editor group:
https://sourceware.org/glibc/wiki/EditorGroup

I suggest to send an email to libc-alpha asking for review mentioning the
changes you made.

> can we now offer up PPC64 libmvec patches for inclusion in the main glibc
> development repository? They currently live in branch tuliom/libmvec and we
> would like to have them reviewed for acceptance into the master branch.

The first step is to update the branch.  It's still based on pre-2.30 code.
I can update it.

Then, we can resubmit the patches for broader review and, based on the
information added to the libmvec wiki page, people will be able to test the
patches with the correct GCC version, e.g. GCC version and required compiler
flags.

Notice that glibc source code is frozen now for the release of v2.31.
Sending the libmvec patches early in 2.32 will give us enough time to review,
merge and test.

--
Tulio Magno
GT
Reply | Threaded
Open this post in threaded view
|

Re: [RFC] PPC64: Vector Function ABI for Power Architecture

GT
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Monday, January 27, 2020 3:42 PM, Tulio Magno Quites Machado Filho <[hidden email]> wrote:

> > can we now offer up PPC64 libmvec patches for inclusion in the main glibc
> > development repository? They currently live in branch tuliom/libmvec and we
> > would like to have them reviewed for acceptance into the master branch.
>
> The first step is to update the branch. It's still based on pre-2.30 code.
> I can update it.
>
> Then, we can resubmit the patches for broader review and, based on the
> information added to the libmvec wiki page, people will be able to test the
> patches with the correct GCC version, e.g. GCC version and required compiler
> flags.
>
> Notice that glibc source code is frozen now for the release of v2.31.
> Sending the libmvec patches early in 2.32 will give us enough time to review,
> merge and test.

Can you update the branch and let me know when that's completed? There are a few
changes that need to be made to math-vector.h and vec_finite_alias.c. Once you
have the branch based on the current master, I will submit a patch for these
changes.

Thanks.
Bert.
GT
Reply | Threaded
Open this post in threaded view
|

Re: [RFC] PPC64: Vector Function ABI for Power Architecture

GT
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Saturday, February 8, 2020 3:34 PM, GT <[hidden email]> wrote:

> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> On Monday, January 27, 2020 3:42 PM, Tulio Magno Quites Machado Filho [hidden email] wrote:
>
> > > can we now offer up PPC64 libmvec patches for inclusion in the main glibc
> > > development repository? They currently live in branch tuliom/libmvec and we
> > > would like to have them reviewed for acceptance into the master branch.
> >
> > The first step is to update the branch. It's still based on pre-2.30 code.
> > I can update it.
> > Then, we can resubmit the patches for broader review and, based on the
> > information added to the libmvec wiki page, people will be able to test the
> > patches with the correct GCC version, e.g. GCC version and required compiler
> > flags.
> > Notice that glibc source code is frozen now for the release of v2.31.
> > Sending the libmvec patches early in 2.32 will give us enough time to review,
> > merge and test.
>
> Can you update the branch and let me know when that's completed? There are a few
> changes that need to be made to math-vector.h and vec_finite_alias.c. Once you
> have the branch based on the current master, I will submit a patch for these
> changes.
>

Just making sure to clarify: Tulio, the request is directed at you.

Thanks.
Bert.
Reply | Threaded
Open this post in threaded view
|

Re: [RFC] PPC64: Vector Function ABI for Power Architecture

Tulio Magno Quites Machado Filho-3
In reply to this post by GT
GT <[hidden email]> writes:

> Can you update the branch and let me know when that's completed? There are a few
> changes that need to be made to math-vector.h and vec_finite_alias.c. Once you
> have the branch based on the current master, I will submit a patch for these
> changes.

The branch has been updated:
https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/tuliom/libmvec

I updated the commit messages in order to remove the ChangeLog entries that
are unnecessary now.

--
Tulio Magno