PDA

View Full Version : Anyone tried the new 3.0 beta Compiler?


Solomon
11-29-2007, 08:03 PM
Folks,

I tried today using the 3.0 compiler that is now available from ClearSpeed's website

All went well. With no changes to the Cn source, it compiled and ran perfectly
And I saw a 12% speed improvement.
How does this fit in with other people's experiences ?

Solomon

clear-cut
12-03-2007, 09:17 PM
A large number of very nice improvements have been made with the 3.0 compiler release, including inlining, unrolling, and scheduling. One thing to watch out for is excessive unrolling. This can be controlled with a #pragma while this area continues to improve.

Solomon
12-03-2007, 09:28 PM
Thanks for that.

Is this the same syntax as the
#pragma unroll 4
that I am used to in IBM and SGI compilers ?

Solomon
12-03-2007, 09:32 PM
Also for the record, I had a strange experience today.

I have been comapring the performance of an application today - compiling form both 2.51 and 3.x
At one point I forgot to recompile the board side code for 3.x and loaded it and ran a 2.51 compiled csx it from a 3.0 CSAPI on a 3.0 based csx kernel module.
Surprisingly it ran (I thought 2.51 and 3.x were incompatable?)
Also it appeared to run faster in spite of no recompilation

clear-cut
12-03-2007, 09:40 PM
According to the SDK reference manual, the format is

#pragma loop unroll(N)
#pragma loop no unroll
#pragma loop maxunroll(N)

As for a 3.0 compiled binary apparently running corectly under a 2.51 runtime, it was a matter of luck. This will not always happen.

clear-cut
12-04-2007, 05:45 PM
Hmm...looks like I misread Solomon's strange experience. It is indeed strange. I always get an error message when I try to run either a standalone binary compiled with 2.51, or a host driven binary compiled with 2.51 under 3.0 beta, which is the expected behavior.

clear-cut
12-04-2007, 06:00 PM
Interesting. It seems that I can use the 3.00 beta linker to link a 2.51 compiled .cso with 3.00 compiled .cso's to create a .csx without complaint, and the .csx actually runs correctly. Perhaps this is what Solomon observed?