All times are UTC-06:00




Post new topic  This topic is locked, you cannot edit posts or make further replies.  [ 47 posts ] 

What software would you like to be optimized for AltiVec/Cell?
Poll ended at Tue Mar 04, 2008 6:15 am
PostgreSQL (Database) 0%  0%  [ 0 ]
MySQL (Database) 19%  19%  [ 12 ]
Blender3D (Raytracer/Renderer) 5%  5%  [ 3 ]
Ogre3D (3D game engine) 6%  6%  [ 4 ]
ODE/Open Dynamics Engine (physics engine, used in 3D games) 5%  5%  [ 3 ]
C++ STL (macstl exists, maybe continue development, merge with main C++ STL) 17%  17%  [ 11 ]
libmcrypt, UMAC (in general crypto/hashing stuff) 3%  3%  [ 2 ]
X.org (XRENDER) 33%  33%  [ 21 ]
gmp (multi precision libray) 0%  0%  [ 0 ]
SSL (plus mod_ssl, etc) 13%  13%  [ 8 ]
Total votes: 64
Author Message
PostPosted: Tue Oct 23, 2007 7:07 am 
Offline

Joined: Wed Oct 13, 2004 7:26 am
Posts: 348
Hello everyone,

Ok, a couple of collegues and myself have started our own company here in Nafplion and amongst other activities, one of our main targets will be SIMD optimizations (mainly AltiVec and Cell). We have managed to get funding to work for 8 months on optimizing some software of choice for AltiVec or Cell (or both), but before deciding which software to work on, we would like to do a poll first here on this site. We have a list of software that we could work, and 8 months is not a small period, but this is going to be used as proof of concept, so that we can get more corporate clients, requesting AltiVec/Cell stuff :-)

We will work of course only on FOSS projects, and all our code will be contributed upstream. But we would like to know exactly what do the users want to see? So, if you see your software in this list in the poll click on it, otherwise, reply with your comments and we will consider everything very seriously! Please, include only software that hasn't been already vectorized (eg. mplayer, ffmpeg, etc). Also, please note that the software suggested might not even benefit at all from vectorization (eg. a text editor). The poll will stay on for 30 days, we will decide shortly after that.

Konstantinos
CODEX

PS. our site is not yet ready, we're too busy doing our clients' projects, so no url yet :-)
PS2. All development will be done on and for PowerPC/Linux. So NO MorphOS, or other OSes.
PS3. The Linux kernel is immediately ruled out, it would require much more than 8 months and very experienced kernel developers (like BenH, etc), to even locate the points in the kernel that might require/benefit optimization.
PS4. The libfreevec will be also finished in that period, even if a little late. The project needs some finishing up, as some functions are buggy, and the library just cannot be used as a replacement. However it's going to be priority #2.


Top
   
 
PostPosted: Tue Oct 23, 2007 9:43 am 
Offline

Joined: Tue Jan 31, 2006 1:18 am
Posts: 49
Location: Bialystok, Poland
Quote:
All development will be done on and for PowerPC/Linux. So NO MorphOS, or other OSes.
Thank you for leaving MorphOS for me ;-). I must admit my latest activity turned my attention to AROS as well, so I will look at SSE soon.

_________________
http://krashan.ppa.pl


Top
   
 
PostPosted: Tue Oct 23, 2007 10:17 am 
Offline

Joined: Tue Nov 02, 2004 2:11 am
Posts: 161
Hi Markos,

I think your work is great!
Its good that you found time to work on this!

Would TPC/IP checksum header calculation make sense to use ALTIVEC for?

Cheers
Gunnar


Top
   
 
PostPosted: Tue Oct 23, 2007 10:31 am 
Offline

Joined: Wed Oct 13, 2004 7:26 am
Posts: 348
Quote:
Hi Markos,

I think your work is great!
Its good that you found time to work on this!

Would TPC/IP checksum header calculation make sense to use ALTIVEC for?
Thank you Gunnar for your nice words :-)
Well, I thought about this initially, but I've learned that Freescale already did it in the past (I have the url somewhere if you're interested) and submitted it to the linux kernel guys, but they rejected it for various reasons. This is the problem, getting something in the kernel is much more difficult than some other project, and it needs a much more serious approach than my small company would be ever possible to achieve, we're just a startup after all. Unless some big company really wants to push SIMD (Freescale) and really shove money in such an effort, I can't really expect to have a big impact from AltiVec optimizations. But we can make a difference in small target groups, eg. Blender rendering.

Ideally, I'd have an OS where every major component (libC, STL, Qt, etc) would be optimized to take advantage of the hardware (much like Amiga was once). Of course I can't achieve that, but if I can optimize some key software with my efforts, I'd be happy :-)

Konstantinos


Top
   
 
 Post subject:
PostPosted: Tue Oct 23, 2007 11:20 am 
Offline

Joined: Sun Jan 14, 2007 8:01 am
Posts: 187
coulde mesa for opengl be in the list also? Or is that considered to be part of x.org


Top
   
 
 Post subject:
PostPosted: Tue Oct 23, 2007 3:13 pm 
Offline

Joined: Wed Oct 13, 2004 7:26 am
Posts: 348
Quote:
coulde mesa for opengl be in the list also? Or is that considered to be part of x.org
yeah, good idea, and i forgot also that perhaps it would be nice to check if one of the scripting languages would be worthy optimizing:

php
perl
python

(pick one only please :-)

Though it might be seem too difficult, a serious approach will probably show some good results. With lots of profiling and testing, it's firstly a matter of finding those functions where most of the cpu time is spent. Then it's a matter of optimizing them, so yeah, in theory everything can be potentially optimized :-)

Konstantinos


Top
   
 
 Post subject:
PostPosted: Wed Oct 24, 2007 1:33 am 
Offline

Joined: Tue Nov 02, 2004 2:11 am
Posts: 161
Quote:
[
yeah, good idea, and i forgot also that perhaps it would be nice to check if one of the scripting languages would be worthy optimizing:

php
perl
python

Konstantinos
Markos,

While ALTIVEC optimizing of PHP, Perl, Python etc or MySQL, other database might be possible - I fear that the benefits will be very low compared to the amount of invested work.

There are some computer tasks where Altivec can give you a 10% performance increase and there are tasks where Altivec
might be able to give a 1000% performance increase.

I would recommend to focus on something that
will give the user a WOW - this is fast experience.

Maybe something like Matlab?
http://en.wikipedia.org/wiki/MATLAB

Or GNU Octave
http://en.wikipedia.org/wiki/GNU_Octave

Or A finite Element software?
http://en.wikipedia.org/wiki/Finite_element_analysis

Or very interesting would be optimizing "Monte Carlo"
http://en.wikipedia.org/wiki/Monte_Carlo_method


Finite elements simulation is used by the industry and they buy walls full of computers to run these jobs.
The same is true for Monte Carlo. Banks even use similar algorythms to estimate the development of Wall street courses.
Optimizing these jobs for Altivec might be wise as - Altivec is very good in these tasks and the people needed this software have real budgets to spend - They have the budget to easely buy 100 or 1000 PPC/CELL systems for such a task.

Cheers
Gunnar



Cheers
Gunnar


Top
   
 
 Post subject:
PostPosted: Wed Oct 24, 2007 2:24 am 
Offline

Joined: Wed Oct 13, 2004 7:26 am
Posts: 348
Quote:
Markos,

While ALTIVEC optimizing of PHP, Perl, Python etc or MySQL, other database might be possible - I fear that the benefits will be very low compared to the amount of invested work.
You may be right, but I thought that for example what if I replaced the hashing algorithm in MySQL/PostgreSQL with an optimized one, or what if I finished that Levenshtein algorithm? Wouldn't that be worth the effort and warrant a more than 10% speed increase? Perhaps you're right and it might not be worth it, but at least I have to consider the possibility :-)
Quote:
There are some computer tasks where Altivec can give you a 10% performance increase and there are tasks where Altivec
might be able to give a 1000% performance increase.

I would recommend to focus on something that
will give the user a WOW - this is fast experience.

Maybe something like Matlab?
http://en.wikipedia.org/wiki/MATLAB

Or GNU Octave
http://en.wikipedia.org/wiki/GNU_Octave

Or A finite Element software?
http://en.wikipedia.org/wiki/Finite_element_analysis

Or very interesting would be optimizing "Monte Carlo"
http://en.wikipedia.org/wiki/Monte_Carlo_method

Finite elements simulation is used by the industry and they buy walls full of computers to run these jobs.
The same is true for Monte Carlo. Banks even use similar algorythms to estimate the development of Wall street courses.
Optimizing these jobs for Altivec might be wise as - Altivec is very good in these tasks and the people needed this software have real budgets to spend - They have the budget to easely buy 100 or 1000 PPC/CELL systems for such a task.
Exactly right. But scientific software like the ones you mentioned (MatLab, Octave) is orders of magnitute more complicated than the other software I mentioned. To scientists, it doesn't matter if it runs faster, they need scientific proof that the faster method is *equivalent* to the older one. I'd need to provide a mathematical paper for each of the routines optimized. If the 8th decimal digit is wrong they will not accept the newer method, period. I know I've done scientific simulations years ago. And of course I have to consider the time involvement. 8 months might seem like a lot, but in reality it's not. It's going to take much more for optimizing eg MatLab. The rest you mention are methods and I'd still have to find the respective software that implements these methods.

I have to find some software that fits right between the two extremes that you mentioned, but is much more popular. (Don't forget that it's going to be a proof of concept project, so that I can hunt afterwards the bigger projects you mentioned :-)
So, I need software that will benefit the majority of users, will have a strong WOW-factor, and will be possible to implement in the 8 months. If I can find 2-3 like these that are smaller but are equally important/popular, so much the better :-)

Konstantinos


Top
   
 
 Post subject:
PostPosted: Wed Oct 24, 2007 6:28 am 
Offline

Joined: Mon Feb 20, 2006 4:35 am
Posts: 1
What about vectorizing the 'libc' ? Is it possible?


Top
   
 
 Post subject:
PostPosted: Wed Oct 24, 2007 6:36 am 
Offline

Joined: Wed Oct 13, 2004 7:26 am
Posts: 348
Quote:
What about vectorizing the 'libc' ? Is it possible?
check previous comment about libfreevec and http://www.freevec.org :-)


Top
   
 
 Post subject:
PostPosted: Sat Oct 27, 2007 5:07 am 
Offline

Joined: Sat Aug 12, 2006 1:08 pm
Posts: 99
Location: Germany
http://www.alphaworks.ibm.com/tech/irt
:-D


Top
   
 
 Post subject:
PostPosted: Sat Oct 27, 2007 7:46 am 
Offline

Joined: Wed Oct 13, 2004 7:26 am
Posts: 348
Quote:
closed source :-/
plus wouldn't it much better if sth like blender3d (which is much more popular) would be optimized for AltiVec/Cell?


Top
   
 
 Post subject:
PostPosted: Sat Oct 27, 2007 1:04 pm 
Offline

Joined: Mon Mar 27, 2006 12:16 pm
Posts: 79
If you're thinking about databases then MonetDB might be another interesting target for some altivec love.


Top
   
 
 Post subject:
PostPosted: Sun Oct 28, 2007 5:02 am 
Offline

Joined: Wed Oct 13, 2004 7:26 am
Posts: 348
Quote:
If you're thinking about databases then MonetDB might be another interesting target for some altivec love.
I'll check this out, thanks. Though to be frank, and despite the poll results, I think I tend towards some 3d software (ogre3d, blender) or some physics engine (ODE, bulletphysics, etc). The rest are not going to show much of an improvement (perhaps X.org will along with Mesa). Anyway, we still have some time till the poll expires and the decision will be made then :-)


Top
   
 
 Post subject:
PostPosted: Fri Nov 02, 2007 12:40 pm 
Offline
Genesi

Joined: Fri Sep 24, 2004 1:39 am
Posts: 1422
Hi Konstantinos, the Poll only worked for a day (we will check with Matt), but whatever you decide we will support the effort in some way.

R&B :)

_________________
http://bbrv.blogspot.com


Top
   
 
Display posts from previous:  Sort by  
Post new topic  This topic is locked, you cannot edit posts or make further replies.  [ 47 posts ] 

All times are UTC-06:00


Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
cron
PowerDeveloper.org: Copyright © 2004-2012, Genesi USA, Inc. The Power Architecture and Power.org wordmarks and the Power and Power.org logos and related marks are trademarks and service marks licensed by Power.org.
All other names and trademarks used are property of their respective owners. Privacy Policy
Powered by phpBB® Forum Software © phpBB Group