comp.lang.ada
 help / color / mirror / Atom feed
From: "Vladimir Olensky" <vladimir_olensky@yahoo.com>
Subject: Re: ratioanl number type
Date: 1999/12/12
Date: 1999-12-12T00:00:00+00:00	[thread overview]
Message-ID: <s57e138d53112@corp.supernews.com> (raw)
In-Reply-To: 82upl4$dra$1@nnrp1.deja.com


Robert Dewar wrote in message <82upl4$dra$1@nnrp1.deja.com>...
>In article <s5513sek53119@corp.supernews.com>,
>  "Vladimir Olensky" <vladimir_olensky@yahoo.com> wrote:
>> Maybe only some core  assembler routines  that make use of
>> processor SIMD extensions. That would allow  drastically
>> improve efficiency.
>
>Well we know Vladimir likes the SIMD extensions,

Yes I like them.
This technique was used for more than 20 years in Russian
supercomputers "Elbrus". So no wonder that one of the
leading scientists from "Elbrus" team (Pentkovsky) was invited
to the Intel and he lead the development of SIMD extensions
for Intel chips.

>Vladimir, have you actually done assembly coding using
>these instructions?

Not too much myself but there are a lot of SIMD code around
(MMX and SSE). I have  copies of almost all most interesting
examples of code  on this topic (in different domains)  from Intel.

>And have you looked at their specs in
>detail?


Yes of course. I have all Intel's  manuals at hand.

All that is very interesting.
Operations  on vectors of data are significantly faster using
MMX or SSE.

With MMX you have eight 64 bit integer registers with a set of
operations for them (including saturated arithmetic !!!).
Each MMX register can be represented as  vector of 8X8bit,
or 4x16bit or 2x32bit or 1x64bit of elements (sub-registers).
One can use one instruction to apply the same operation
to all of them.
SSE use eight 128 bits floating point registers with that same
approach.

MMX allows for instance to use directly  64bit integer arithmetic
on IA32+ platform.  Is that useless ?

As far as for data processing there are so many exiting things
with SIMD that they go far beyond the scope of this discussion.

Going back to multi-precision arithmetic I think that it is obvious
that if one is able to use directly longer registers (64bit
registes instead of 32 bit) than one  could obtain better
efficiency.

From another point of view any rational number could be
considered as vector of elements (digits) and in some
circumstances vector operations could be applied to it
to obtain some particular results.

So I think (but not insist)  that SIMD could be useful in doing
multi-precision arithmetic.

In data processing I doubt that anyone would object that
SIMD extensions (MMX and SSE) are useless.
Also I suspect that one of the Ada design goals was
also data processing. If something new has emerged
recently that can significantly improve Ada performance
in this area why not to use it ?

Regards,
Vladimir Olensky







  reply	other threads:[~1999-12-12  0:00 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-12-03  0:00 ratioanl number type Clifford J. Nelson
1999-12-03  0:00 ` Dmitriy Anisimkov
1999-12-11  0:00   ` Clifford J. Nelson
1999-12-11  0:00     ` Robert Dewar
     [not found]     ` <01bf43ea$646d5bc0$022a6282@dieppe>
1999-12-11  0:00       ` Clifford J. Nelson
     [not found]         ` <01bf43f3$3aadb600$022a6282@dieppe>
1999-12-11  0:00           ` Vladimir Olensky
1999-12-12  0:00             ` Robert Dewar
1999-12-12  0:00               ` Vladimir Olensky [this message]
1999-12-12  0:00                 ` MMX (was Re: ratioanl number type) Vladimir Olensky
1999-12-14  0:00                 ` ratioanl number type Robert Dewar
1999-12-17  0:00                 ` Gisle S�lensminde
1999-12-19  0:00                   ` Robert Dewar
1999-12-12  0:00         ` Robert Dewar
1999-12-03  0:00 ` Tucker Taft
1999-12-03  0:00 ` Gautier
1999-12-09  0:00 ` rational " Wes Groleau
  -- strict thread matches above, loose matches on Subject: below --
1999-12-15  0:00 ratioanl " Alexander E. Kopilovitch
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox