delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1997/03/19/15:20:52

From: shankar AT chromatic DOT com (Shankar Unni)
Subject: Re: Tiled memory
19 Mar 1997 15:20:52 -0800 :
Approved: cygnus DOT gnu-win32 AT cygnus DOT com
Distribution: cygnus
Message-ID: <33302968.3D15.cygnus.gnu-win32@chromatic.com>
References: <199703180902 DOT KAA04866 AT truk DOT brandinnovators DOT com>
Mime-Version: 1.0
X-Mailer: Mozilla 3.0Gold (X11; I; SunOS 5.5.1 sun4u)
Original-To: Hans Zuidam <hans AT brandinnovators DOT com>
Original-CC: gnu-win32 AT cygnus DOT com
Original-Sender: owner-gnu-win32 AT cygnus DOT com

Hans Zuidam wrote:

> Isn't there some work going on among the super-computer people to add
> these kinds of extensions to the C language?  I vaguely remember
> reading about addition vector operations to C in an issue of Dr. Dobbs
> a long time ago.

There are two different initiatives going on.

One is a set of "Numerical Extensions" to C (a subcommittee of ANSI
X3J9). No idea what the state of this proposal is today (there was some
progress as recently as a year or two ago).

Another proposal is a set of extensions called "HPC" (analogous to the
HPF extensions to Fortran - "HP" stands for High Performance). I know
that the Univ of Illinois (Urbana) was involved in this, as was Cray and
some other participants. 

Both have their good and bad points. I'm not a big fan of the pragma
approach to extending the language, which is what HPC is doing - the
goal there is to write C code in a vanilla fashion, but splatter it with
pragmas like "#pragma doacross blah blah", which tells a smart code
generator and optimizer to tile the loops in a particular fashion, but
lets the code compile on "plain" C compilers by just stripping out or
ignoring the pragmas.

The Numerical Extensions group is actually proposing syntax extensions
like array slices, arrays as first class objects, etc., which actually
sound more elegant, but which will require a fair amount of work to
existing compilers to accommodate.

What Chin (<cheekai AT gen DOT co DOT jp>) is proposing is sort of a middle ground:
extensions to the language in the form of new predefined types or
qualifiers (only), and some tweaks to the language operators to
recognize these types and generate MM instructions for them. The
attractive thing about this is that it's possible to implement with very
little effort in something like, say, GCC or LCC, and is still useful
enough for programming tight, well-controlled multimedia loops with only
a small expenditure of effort on the part of the programmer.

After all, you *do* have to think of the nature of your data anyway -
it's foolish to let the compiler do all of your thinking for you and
expect it to figure out automatically which variables are streaming
multimedia data, which are an ordinary vectors, and which are simply
arrays of quantities..

-- 
Shankar Unni                                  shankar AT chromatic DOT com
Chromatic Research                            (408) 752-9488
-
For help on using this list, send a message to
"gnu-win32-request AT cygnus DOT com" with one line of text: "help".

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019