Hi Duraid,
That's a pretty open-ended question, for which I don't have an answer, but
this document may help you:
http://developer.intel.com/design/ia-64/downloads/245473.htm
It contains the Itanium instruction latencies (including getf, setf, xma,
pmul, etc.) and dispersal rules to assist you in writing hand-coded
routines.
You might also want to ping the CERN folks, who have been working with
IA-64 for a few years now on the IA-64 Linux port, though maybe most of
their work has focused on FP math (dunno). Go to www.linuxia64.com. At
the bottom of a page is an IA-64 tutorial by a CERN scientist, along with
a reference to his home page.
-dwh-
On Thu, 1 Jun 2000, Duraid Madina wrote:
>
> What's the best way (for Itanium, at least) to multiply large integers?
> For
> example, 128 bit integers, 1024 bit integers or indeed arbitrarily large
> integers?
>
> I had a look through the Pro64 source and note that there is decreed a
> threshold of '14' below which successive shifts+adds are used, and above
> which you outright multiply. But when is it best to use the xma instruction
> (and the associated cost of converting to/from an FP representation)? When
> is it better to use the integer packed multiply instructions? For 'streaming
> multiplication', as it were, what do you think is the best way to proceed?
> Using the integer/MM units? The FP units? Both at once?
>
> I am concerned with 'normal' multiplication of ~kilobit numbers, not
> massive numbers where it's better to use transform-based multiplication.
>
> Any ideas?
>
> Many thanks for your time,
>
> Duraid
>
>
|