caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "Gurr, David (MED, self)" <David.Gurr@med.ge.com>
To: Pal-Kristian Engstad <engstad@naughtydog.com>, caml-list@inria.fr
Subject: RE: [Caml-list] Pointers needed for optimization problem.
Date: Wed, 21 Aug 2002 23:01:21 -0500	[thread overview]
Message-ID: <D4DBD8568F05D511A1C20002A55C008C09C29544@uswaumsx03medge.med.ge.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 2574 bytes --]

>From the FFTW web page <<http://www.fftw.org/download.html>>:

fftwgel
fftwgel <<http://www.complang.tuwien.ac.at/skral/fftwgel.html>> is an
experimental version of fftw with support for the SIMD instructions of
the AMD K6-2 and K7 processors as well as the Intel Pentium IV, written
by our colleague Stefan Kral at the Vienna University of Technology. We
hope to incorporate a generalization of this work into a future version
of FFTW. 

fftwgel has ocaml code for generating SIMD code for x86 machines.  Other
key words
are SWAR and Atlas.  Plus the intel and amd web pages have lots of info.
-D

> -----Original Message-----
> From: Pal-Kristian Engstad [mailto:engstad@naughtydog.com]
> Sent: Wednesday, August 21, 2002 7:33 PM
> To: caml-list@inria.fr
> Subject: [Caml-list] Pointers needed for optimization problem.
> 
> 
> Hi,
> 
> I'm interested in solving a problem I have with automatically 
> generating 
> optimal (vector) floating point code. In other words, I want 
> to code a caml 
> program that transforms the input description into assembly 
> instructions. For 
> regular floating point operations, a good compiler should be 
> able to optimize 
> the code:
> 	
> 	r := A * x * x + B * x + C
> 
> into (if multiplication is more expensive than adds):
> 
> 	t := A * x
> 	t := t + B
> 	t := t * x
> 	t := t + B
> since
> 	r := (A * x + B) * x + C
> 
> Now, this is fairly trivial to do, but if you have an 
> architecture with SIMD 
> vector floating point registers and opcodes, a whole range of 
> new interesting 
> optimizations can be done. With vector registers, I mean 
> registers that have 
> up to 4 floating point values. For instance, a 4-vector times 
> a 4-by-4 matrix 
> operation can be coded as:
> 
> 	acc.xyzw := mtxrow[0].xyzw * vec.x
> 	acc.xyzw += mtxrow[1].xyzw * vec.y
> 	acc.xyzw += mtxrow[2].xyzw * vec.z
> 	res.xyzw = acc.xyzw + mtxrow[3].xyzw * vec.w
> 
> Here, each line represent one assembly instruction.
> 
> So, what I am looking for is basically pointers to literature 
> that deal with 
> issues like these, and since OCaml is a great language for language 
> transformations I thought someone on this list would be able 
> to point me in 
> the right direction. I _have_ been searching on the net, but 
> I guess I don't 
> know the right keywords to search on.
> 
> PKE.
> -------------------
> To unsubscribe, mail caml-list-request@inria.fr Archives: 
http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ:
http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


[-- Attachment #2: Type: text/plain, Size: 152 bytes --]

[Filename: fftwgel.url, Content-Type: application/octet-stream]
This e-Mail had an attachment that was removed in order to meet GE Security guidelines.

             reply	other threads:[~2002-08-22  4:02 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-08-22  4:01 Gurr, David (MED, self) [this message]
  -- strict thread matches above, loose matches on Subject: below --
2002-08-22  2:33 Pal-Kristian Engstad
2002-08-23 11:46 ` Xavier Leroy
2002-08-23 12:18   ` Markus Mottl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=D4DBD8568F05D511A1C20002A55C008C09C29544@uswaumsx03medge.med.ge.com \
    --to=david.gurr@med.ge.com \
    --cc=caml-list@inria.fr \
    --cc=engstad@naughtydog.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).