pro64-contrib
[Top] [All Lists]

Re: The fastest way to multiply large integers

To: Duraid Madina <duraid@xxxxxxxxx>
Subject: Re: The fastest way to multiply large integers
From: Drew Hess <dhess@xxxxxxxxxx>
Date: Wed, 31 May 2000 19:33:39 -0700 (PDT)
Cc: pro64-contrib@xxxxxxxxxxx
In-reply-to: <AFEEIDHGBPFINNGKLJOBKECCCCAA.duraid@fl.net.au>
Sender: owner-pro64-contrib@xxxxxxxxxxx
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
> 
> 


<Prev in Thread] Current Thread [Next in Thread>