Log in

View Full Version : XScale Optimized Code...


tsapiano
07-24-2003, 07:29 PM
With all of the hype that MS has around WM2003 being able to support optimization for the XScale processors I'm wondering if the eVC++ development environment includes this?

I'm just finishing off the .NET CF Core Reference book, and I'm going to pick up the VS.NET2K3 upgrade soon - I'd like to make part of the performance critical code in native DLLs, however most of the documentation I've found doesn't even touch on the XScale chips. I'm especially interested in ensuring that the compiled code makes use of the MAC/SIMD unit - any idea if the Microsoft compiler can do this, and if not, if there is an Intel compiler that can generate DLLs for this chip?

jage
07-27-2003, 10:51 AM
With all of the hype that MS has around WM2003 being able to support optimization for the XScale processors I'm wondering if the eVC++ development environment includes this?

I'm just finishing off the .NET CF Core Reference book, and I'm going to pick up the VS.NET2K3 upgrade soon - I'd like to make part of the performance critical code in native DLLs, however most of the documentation I've found doesn't even touch on the XScale chips. I'm especially interested in ensuring that the compiled code makes use of the MAC/SIMD unit - any idea if the Microsoft compiler can do this, and if not, if there is an Intel compiler that can generate DLLs for this chip?

If you want to use it, why not to just handwrite the loops? You don't need WM2003 to use the MAC/SIMD. I doubt the compiler has any kind of support for this (other than maybe assembler mnemonics). The SIMD unit is kind of weak, it's not like it's going to help much...

And remember, not all WM2003 devices are ARMv5! Your app would simply crash on ARMv4 devices.

Anyways, what kind of application you have in mind?

tsapiano
07-27-2003, 05:57 PM
If you want to use it, why not to just handwrite the loops? You don't need WM2003 to use the MAC/SIMD. I doubt the compiler has any kind of support for this (other than maybe assembler mnemonics). The SIMD unit is kind of weak, it's not like it's going to help much...

That's likely what I'll have to do :( I had hoped that the compiler would have supported it so that I wouldn't have to write custom code for each microprocessor - however I guess that's the way things work ;)

I know it's a very simple SIMD unit - however this is compact hardware and if there is something that can speed things up at all I'd rather use it than leave it idling. I've always been the type that hates writing slugish code - so if there is any way to speed things up I'll use it.

And remember, not all WM2003 devices are ARMv5! Your app would simply crash on ARMv4 devices.

For the most part I am just looking at aiming for specific PDAs - the application is somewhat vertical and the target markets can live with limitations like this. Most of the code can be written with portability in mind, however there are processor intensive portions that I want to do everything that I can to optimize.

Once I get it working with the XScale, I'll likely write custom libraries for other common microprocessors. Right now though I own the iPaq 5550 and I want to be able to utilize every morsel of power it has ;)

Anyways, what kind of application you have in mind?

It's basically an image processing application for professional photographers in the field. I'm sick of carrying my laptop around and for the basic tasks that I need, I believe that these devices are finnally getting the horsepower required to do them. Multiply the modest savings the SIMD unit gives by multiple megabytes of image data and by thousands of images and the time savings will add up ;)

Thanks for the response though ;)

tsapiano
07-29-2003, 04:51 PM
Hmm, news item on the main page today about an Intel compiler:

http://www.mobilemag.com/content/100/103/C1855/

Looks like what I need, just not too crazy about that price tag :(

jage
07-29-2003, 06:06 PM
Also there's no CPU with Wireless MMX yet and remember ARM SIMD instructions are only in ARMv6 CPUs - as far as I know, no Pocket PC is using ARMv6 yet.