07-28-2009 05:29 PM
I'm hk from Korea.
I compiled the c program using +DSnative on 11.31 Montvale processor
But I plan to run my program on 11.31 madison processor.
Compile on :
HP-UX 11.31 Montvale (dual core cpu, HyperThreading Enabled)
Run on :
HP-UX 11.31, Madison(single core, NO Hyper Threading supported)
So I'm worrying about +DSnative on montvale affect my binary program on madison.
I want to know how +DSnative work exactly.
I'm sure it check the processor type on PARISC (uname -m)
But the result of "uname -m" is all same in IA2.
+DSnative check the type of processor another way on IA2 or it's all same working as +DSitanium2 ?
Help plz. I can't find the answer.
* How to see a processor type:
Madison - Intel(R) Itanium 2 processor
Montecito - Intel(R) Itanium 2 9000 series
Montvale - Intel(R) Itanium 2 9100 series
07-28-2009 10:41 PM
There should be little difference in the code generated for Montvale vs Madison. If you are worried you can use +DSblended.
>I'm sure it check the processor type on PA-RISC (uname -m)
The PA compiler knows how to get the processor type and doesn't use uname(2).
Similarly for IPF, the compiler gets the processor type.
07-29-2009 05:37 PM
I know It would be fine compile again using +DSitanium2 or +DSblended on Montvale.
But project is too big and above all my customer didn't want to recompile.
He ordered me the report which I asked for.
So I have to invest how it affect the binary file.
I converted sample program into machine code using +DSnative and +DSitanium2.
the result is same.
# cat sample.c
a = 2;
b = 2;
c = 2;
d = 2;
e = 2;
sum = a +b;
sum = sum +e;
f = 2;
g = 2;
h = 2;
i = 2;
k = 2;
j = 5;
l = 5;
m = 5;
n = 5;
o = 5;
p = 5;
sum = sum + n+ o;
q = 5;
r = 5;
s = 5;
t = 5;
u = 5;
v = 5;
w = 5;
y = 5;
z = 5;
x = 5;
sum = q + j;
sum = r + s;
sum = i + j;
printf("sum = %d\n", sum);
# cc -o sample +DSnative sample.c
# tdas -F main sample > native.out
# cc -o sample +DSitanium2 sample.c
# tdas -F main sample > itanium2.out
# diff native.out itanium2.out
* tdas is wtec tool
Once I compiled sample.c using +DSitanium, (not +DSitanium"2"), converting into machine code, It looks scheduling instructions in a different order.
I wonder if +DSmodel using instruction scheduler tuned to the model, It might be affect building machine code?
I'm sorry I'm not good at English.
If you don't understand my words, plz tell me. I'll try to.
07-29-2009 10:39 PM
If he doesn't want to recompile, there isn't much to say other than try it. Compiling for Montecito/Montvale will make things run only a little slower on Madison. The best thing to do is just run it.
>the result is same.
# cc +DSnative sample.c
You need something more complex. Also if you aren't optimizing, you are wasting performance.
>* tdas is WTEC tool
No need to use that. Just use -S and look at the .s file.
In fact if you optimize, your program is changed to just:
printf("sum = %d\n", 7);
>I wonder if +DSmodel using instruction scheduler tuned to the model, It might be affect machine code?
Of course. But you have to optimize.
07-30-2009 05:19 PM
Just run it. That's all.
But if the report says there's big difference for performance.
My customer might be agree to recompile.
Anyway, I've been wasting my time for unproductable question. I'll suggest him between "run it" or "recompile it"
that'll be more effiency to this project
And your answer gave me a big help.
Thank you so much.