comp.lang.ada
 help / color / mirror / Atom feed
From: Guillaume Foliard <guifo@wanadoo.fr>
Subject: Re: Ada and vectorization
Date: Tue, 18 Jun 2002 22:13:11 +0200
Date: 2002-06-18T20:13:12+00:00	[thread overview]
Message-ID: <aeo48o$7kv$1@wanadoo.fr> (raw)
In-Reply-To: aenmlj$6mq$05$1@news.t-online.com

Matthias Kretschmer wrote:

> Having all features architectures provide accessable through a language I
> think should be called assembler and has nothing to do with abstraction of
> the programming of the underlying hardware. Do we really want to implement
> every single feature cpu-designers provide in the language itself? 

SIMD concepts does not seem a cpu-designer's feature to me, but rather a 
different approach to problems solving...

> Then we
> will have some very bloated, complex language which will raise the
> difficult level of programming in this language. And this is not the aim
> of "higher programming languages". They should make it easy, or we all
> could just use assembler. The reason why I personally use Ada is, that it
> is abstract, not that I have to care about the hardware and I think this
> is the way it should be.

I agree with you on this. That's why, I was initially wondering if we could 
find a way to abstract "vectorization processing". After having read the 
Intel document on Pentium4 optimizations I don't think compilers can 
automagically perform a really efficient vectorization as a true 
vectorization implies algorithms different from the ones used in a 
sequential processing, and most importantly a different data layout. Can 
moderm compiler technology deal with data layout, and automatically choose 
the best one (switch between Arrays of Structs and Structs of Array for 
instance, an operation called "Data Swizzling" (1)) ?  Okay, you may have 
some optimized loops but a sequential algorithm by its own nature may not 
be easely transformed to an efficient parallel one by a compiler.
If vectorization processing abstraction reveals to be infeasible, we should 
not be disgusted by introducing some low-level features anyway. After all, 
there is some quite low-level stuff in the B.2 annex of the Ada95 RM (2).  
Bitwise operations can really be helpful sometimes. So can be SIMD 
instructions.


(1) 
http://www.google.fr/search?hl=fr&q=Data+Swizzling&btnG=Recherche+Google&meta=

(2)
 http://www.adahome.com/rm95/rm9x-B-02.html#6



  parent reply	other threads:[~2002-06-18 20:13 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-06-16  9:56 Ada and vectorization Guillaume Foliard
2002-06-16 12:50 ` Dale Stanbrough
2002-06-16 20:07   ` Matthias Kretschmer
2002-06-16 22:38     ` Robert A Duff
2002-06-18  8:24       ` Matthias Kretschmer
2002-06-18 10:02         ` Dale Stanbrough
2002-06-18 16:21           ` Matthias Kretschmer
2002-06-18 19:13             ` Robert A Duff
2002-06-18 20:12               ` Matthias Kretschmer
2002-06-18 20:51                 ` Guillaume Foliard
2002-06-19  4:28                   ` Matthias Kretschmer
2002-06-18 20:13             ` Guillaume Foliard [this message]
2002-06-18 17:46           ` Ted Dennison
2002-06-16 22:45   ` Ted Dennison
2002-06-17 23:47 ` Robert I. Eachus
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox