This is the mail archive of the
libffi-discuss@sourceware.org
mailing list for the libffi project.
Re: Xeon Phi
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Andrew Haley <aph at redhat dot com>
- Cc: pinskia at gmail dot com, "libffi-discuss at sourceware dot org" <libffi-discuss at sourceware dot org>
- Date: Tue, 14 Oct 2014 12:08:08 +0200
- Subject: Re: Xeon Phi
- Authentication-results: sourceware.org; auth=none
- References: <543CE95A dot 9080409 at redhat dot com> <6442AADB-652F-443C-8875-258C0C1634D2 at gmail dot com> <543CEA22 dot 9020302 at redhat dot com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Tue, Oct 14, 2014 at 10:17:22AM +0100, Andrew Haley wrote:
> On 14/10/14 10:16, pinskia@gmail.com wrote:
>
> >
> >> On Oct 14, 2014, at 2:14 AM, Andrew Haley <aph@redhat.com> wrote:
> >>
> >> What's the status of Xeon Phi support? There seem to be some packages on the
> >> Interweb, but I don't see anything in libffi git.
> >
> > Xeon phi is just x86_64 linux.
>
> No it's not. There is a completely different FPU and a different ABI.
I guess it really depends on which Xeon Phi you are talking about.
There is Knights Ferry, which has been a prototype only, then
Knights Corner, which is the one currently shipping, which AFAIK is
a stripped down i586-ish (but 64-bit) ISA (so, no MMX/SSE and later,
no CMOV and various other post-i586 ISA additions) with i387 FPU
and a 512-bit vector unit. This isn't really supported by vanilla GCC,
patches exist AFAIK for the non-vector unit part, but the vector unit isn't
really supported in GCC. Not sure what exact ABI is this one using,
supposedly some x86-64-ish ABI, just with what is passed normally in SSE/SSE2
registers is passed in the zmm? registers of the vector unit?
Then there is going to be Knights Landing, see
http://en.wikipedia.org/wiki/Xeon_Phi
which is likely going to be pretty standard x86-64-ish ABI and ISA
(contemporary Airmont), with AVX512F etc. extensions, fully supported by GCC.
So, for the last one, I don't think any extra support is really needed
(unless libffi has supports for AVX/AVX2 vectors already, then AVX512
support would be needed too).
Jakub