Related articles |
---|
[3 earlier articles] |
Re: Effectiveness of compilers today jpab+@andrew.cmu.edu (Josh N. Pritikin) (1993-02-17) |
Re: Effectiveness of compilers today burley@apple-gunkies.gnu.ai.mit.edu (1993-02-17) |
Re: Effectiveness of compilers today jbuck@forney.berkeley.edu (1993-02-17) |
Re: Effectiveness of compilers today napi@cs.indiana.edu (mohd hanafiah abdullah) (1993-02-17) |
Re: Effectiveness of compilers today moss@cs.cmu.edu (1993-02-18) |
Re: Effectiveness of compilers today preston@dawn.cs.rice.edu (1993-02-18) |
Re: Effectiveness of compilers today roth@helena.cs.rice.edu (1993-02-18) |
Re: Effectiveness of compilers today pardo@cs.washington.edu (1993-02-19) |
Re: Effectiveness of compilers today kjb@cgl.citri.edu.au (1993-02-19) |
Re: Effectiveness of compilers today kanze@us-es.sel.de (1993-02-20) |
Re: Effectiveness of compilers today tchannon@black.demon.co.uk (1993-02-19) |
Re: Effectiveness of compilers today korz@cs.columbia.edu (1993-02-22) |
Re: Effectiveness of compilers today henry@zoo.toronto.edu (1993-02-24) |
[2 later articles] |
Newsgroups: | comp.compilers |
From: | roth@helena.cs.rice.edu (Jerry Roth) |
Keywords: | optimize, performance |
Organization: | Rice University, Houston |
References: | 93-02-082 93-02-093 |
Date: | Thu, 18 Feb 1993 16:45:40 GMT |
moss@cs.cmu.edu writes:
>At SIGPLAN a couple of years ago (SIGPLAN '91, I think; the one in
>Toronto), Guy Steele gave a talk on optimizing certain kinds of numerical
>programs for the CM-5, called "Fortran at N Gigaflops" (or some such, for
>suitable N). They generally got better speedups than are practical for
>humans because they unrolled loops and did heavy and intricate register
>allocation. A human could do it in theory, but it's so tedious and easy to
>make a mistake that it's much better for a compiler to do it.
Here's the complete reference:
@InProceedings{BHMS:91,
Author = {M. Bromley and S. Heller and T. McNerney and
G. {Steele, Jr.}},
Title = {Fortran at Ten Gigaflops:
The {Connection Machine} Convolution Compiler},
Booktitle = SIGPLAN91,
Address = Toronto,
Month = Jun,
Year = 1991}
People also refer to this Convolution Compiler as the Stencil Compiler. It
only targets a strict subset of computational patterns known as stencils.
A user must separate the stencil from his application and place it in a
subroutine by itself, and then invoke this special compiler on it. The
compiler, after performing some pattern matching, simply generates calls
to some library routines. These routines are all *hand written microcode*.
Thus most of the work, including the intricate register allocation for
these specialized patterns, was all done by hand. The only real work done
at compile time is to determine the amount of loop unrolling and which
microcode routines to use, and this is not too difficult given that they
have limited their scope to only stencils. The impressive speed-ups
reported (from 5.6 gigaflops to 14 gigaflops) were measured against code
produced by the regular CM-2 fortran compiler.
Note, I am not knocking their work. I am really impressed by their ideas,
and hope to be able to accomplish similar things (but in a more general
fashion). I just wanted to point out that this work may have a lesser
impact on the human vs. compiler argument than initially indicated.
Thanks for your time,
Jerry Roth
Rice University
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.