[J3] (SC22WG5.6121) Two things from IFIP WG 2.5 meeting
Bill Long
longb at cray.com
Mon Jul 29 10:10:31 EDT 2019
> On Jul 27, 2019, at 10:20 AM, Van Snyder via J3 <j3 at mailman.j3-fortran.org> wrote:
> The
> Cray-I "approximate inverse" only got 12 correct bits. That's "most of
> the benefit,", right? So why did the Cray-I compiler ALWAYS follow it
> up with two Newton iterations to get 48 correct bits?
>
Not sure how this relates to the original discussion, but for newbies, some history behind the scheme:
The Cray-1 was built with logic chips with a very low level of integration. The reciprocal approximation instruction alone took multiple boards of circuits. The output was accurate to 27 bits. And the Newton iterations (reciprocal iterations) were implemented as single instructions that computed 2 - x*y designed explicitly to help complete the division operation. Typically only one iteration was needed. It was not a long sequence of code. This scheme allowed computation of a common reciprocal approximation for x/d, y/d, and z/d, with separate iteration operations for each quotient. And, for vector operations, the instructions chained. Thie reciprocal approximation “trick” allowed the machine to be built with a consistent, fast (for the day) clock. Later Cray vector machines (X2, for example) used silicon processes with much higher levels of integration and had enough circuit space to implement the IEEE fp divide as a single instruction.
Cheers,
Bill
Bill Long longb at cray.com
Principal Engineer, Fortran Technical Support & voice: 651-605-9024
Bioinformatics Software Development fax: 651-605-9143
Cray Inc./ 2131 Lindau Lane/ Suite 1000/ Bloomington, MN 55425
More information about the J3
mailing list