i am porting an app running on a Celeron M 440 (1.8GHz) using Win XPe to Win 7.
And I hoped to get it run on Atom E3826 (1.4GHz) and to achieve the same performance maybe better, as the memory interface of the Atom is faster compared to the "old" Celeron M and there are generations of processor families inbetween both.
But what I get is a 4 times slower app.
The main time consuming parts of the app are simple image filters. And these are the parts that are running very slow on the Atom.
That means I use just plain image data - arrays filled with byte data - and process straight forward through these data by summing some elements and save the result back into the array. So nothing very special - just a lot of array accesses and sums.
I am not using a special instruction set like MMX or SSE directly from my app.
But also here the new E3826 should be much better than the Celeron M 440.
Could it be a problem of the operating system ?
But on my Desktop PC (Win7) the app is running very fast.
What could slow down the app that much ? Could it be the processor type ?
Or do I miss some setting or the processor has to emulate some instructions ?
Thank you for reaching the Intel(R) Communities. I understand you would like to check why this is happening and for sure the more recent processor (Intel Atom® Processor E3826) should work better, so lets check on this matter to find a possible solution or reasoning.
Please be aware the app also takes responsibility on how it performs or how it uses the processor's capabilities so that may be a clue.
Then, I would like to gather up some data from the current configuration to have a clearer understanding of the scenario faced.
Please provide the following information:
How to get the Intel® System Support Utility?
Feel free to add other information you may think can be important.
thanks for your answer.
Find attached the ssu result of my new Atom based system.
I can not use ssu on my old Celeron board as it runs XP.
The app is written by myself using Visual Studio. And it is up to now running on a Celeron M 440 under XP.
The app is mainly running image filters on image data.
So now I'd like to use it on a newer plattform using Win7 and an up to date processor that matches this app.
So the first test is an Atom E3826 that might give the same performance than the old Celeron M 440.
As I wrote the app I could cut it down to the main problem.
The core of the app is very simple; it is just running over a long byte array, do some calculation, store the result back, finish.
Looks like this:
1. Initialisation of an BYTE array; length is 10.000.000 :
const int LEN = 10000000;
unsigned char *arrPtr = new unsigned char[LEN];
for (int i=0; i arrPtr[i] = (unsigned char)250;
2. Run the filter
for (int i=1280; i sum = (int) (4*arrPtr[i] + arrPtr[i-1] + arrPtr[i+1] + arrPtr[i-1280] + arrPtr[i+1280]);
arrPtr[i] = (unsigned char)(sum / 8);
When I run this small filter algorithm (step 2.) on the "old" Celeron M 440 it needs around 70ms.
When I run the same app on the Atom 3826 it needs around 210ms.
Why that big difference? It is not just 20%, it is 3 times. There must be some basic problem.
By the way it is a x86 app made for XP and I run it in XP compatability mode on Win7.
Could this be a problem how effective the processor is used ?
But on my Desktop PC (also Win7) it runs really fast.
I could send you my small test-app if it is of any help.
Thanks for any help
Thank you for the information provided, petergv
At this point, since you are a developer, I would recommend posting your inquiry in a forum support team with other developers that can assist you with this matter, related to your app and how it interacts with newer hardware.