Bojan Rajkovic | 11 Oct 00:58
Favicon

Mono's JIT and SSE instructions

Hi all,

How does Mono deal with SSE-capable processors (or Altivec capable
processors)? That is, does the JIT emit any SSE calls when there's a
chance to use them, or are they totally unused in Mono?

Thanks,
Bojan Rajkovic
Attachment (smime.p7s): application/x-pkcs7-signature, 2263 bytes
_______________________________________________
Mono-devel-list mailing list
Mono-devel-list <at> lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list
Paolo Molaro | 11 Oct 01:45

Re: Mono's JIT and SSE instructions

On 10/10/08 Bojan Rajkovic wrote:
> How does Mono deal with SSE-capable processors (or Altivec capable
> processors)? That is, does the JIT emit any SSE calls when there's a
> chance to use them, or are they totally unused in Mono?

We use some of the SSE instructios if available on x86.
On amd64 they are obviously used to implement the fp support.
We don't use any altivec instruction as that is pretty much pointless.
We don't auto vectorize from IL code, but we're developing an extension
that allows people to take advantage of sse instructions with
intrinsics (people watching the changes list can see it already).

lupus

--

-- 
-----------------------------------------------------------------
lupus <at> debian.org                                     debian/rules
lupus <at> ximian.com                             Monkeys do it better
Dax | 11 Oct 02:01

Re: Mono's JIT and SSE instructions


Paolo Molaro wrote:
> We don't auto vectorize from IL code, but we're developing an extension
> that allows people to take advantage of sse instructions with
> intrinsics (people watching the changes list can see it already).

That said, what versions of SSE will be supported? Original SSE only,
since it's probably available on every mono-compatible machine,
everything up to SSSE3/SSE4..?

Paolo Molaro | 11 Oct 02:06

Re: Mono's JIT and SSE instructions

On 10/11/08 Dax wrote:
> Paolo Molaro wrote:
> > We don't auto vectorize from IL code, but we're developing an extension
> > that allows people to take advantage of sse instructions with
> > intrinsics (people watching the changes list can see it already).
> 
> That said, what versions of SSE will be supported? Original SSE only,
> since it's probably available on every mono-compatible machine,
> everything up to SSSE3/SSE4..?

We'll use what is needed and available on the cpu that's running
the mono process.

lupus

--

-- 
-----------------------------------------------------------------
lupus <at> debian.org                                     debian/rules
lupus <at> ximian.com                             Monkeys do it better
Rodrigo Kumpera | 11 Oct 04:16
Gravatar

Re: Mono's JIT and SSE instructions



On Fri, Oct 10, 2008 at 9:01 PM, Dax <Dax <at> daxxfiles.net> wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Paolo Molaro wrote:
> We don't auto vectorize from IL code, but we're developing an extension
> that allows people to take advantage of sse instructions with
> intrinsics (people watching the changes list can see it already).

That said, what versions of SSE will be supported? Original SSE only,
since it's probably available on every mono-compatible machine,
everything up to SSSE3/SSE4..?

Everything up to SSE4.2 as this is what is available on the current generation of CPUs.

Thing that won't be supported includes MMX and 3DNow.

_______________________________________________
Mono-devel-list mailing list
Mono-devel-list <at> lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list
Geoff Norton | 11 Oct 04:27
Favicon

Re: Mono's JIT and SSE instructions

On Fri, 2008-10-10 at 23:16 -0300, Rodrigo Kumpera wrote:
> 
> 
> On Fri, Oct 10, 2008 at 9:01 PM, Dax <Dax <at> daxxfiles.net> wrote:
>         -----BEGIN PGP SIGNED MESSAGE-----
>         Hash: SHA1
>         
>         Paolo Molaro wrote:
>         > We don't auto vectorize from IL code, but we're developing
>         an extension
>         > that allows people to take advantage of sse instructions
>         with
>         > intrinsics (people watching the changes list can see it
>         already).
>         
>         
>         That said, what versions of SSE will be supported? Original
>         SSE only,
>         since it's probably available on every mono-compatible
>         machine,
>         everything up to SSSE3/SSE4..?
> 
> Everything up to SSE4.2 as this is what is available on the current
> generation of CPUs.
> 
> Thing that won't be supported includes MMX and 3DNow.

Its also worth noting that SSE5 is (yet another) weird naming scheme in
the superset scheme of things.  AMD has announced it, but its not a
superset of (all) of SSE4 but a competitor for (some) of it.

Just to muddy the water a little more.

I imagine when SSE5 is finalized and shipped we'll add support for it to
Mono.Simd as well.

-g

Gmane