Forums

ise 32b or 64b?

Started by mmihai October 11, 2012
Hi!

Using Xilinx flow (command line, ISE 13.4)... 32b version vs 64b (under Linux, 64b OS)... memory usage:

||       |   32b   |   64b   |
 |  xst  |  1614M  |  2986M  |
 |  map  |  1563M  |  2889M  |
 |  par  |  1365M  |  2404M  |

Also the 32b runtime is faster than 64b....

The above table is from a Kintex-7 target running on a i5 machine, 8G RAM.

Similar numbers are seen for a Virtex-6 target, i7 machine, 24G RAM, different Linux flavor.

Does this look normal? Looks like if the design fits the memory space available for 32b binaries they are a much better choice.

---
mmihai
Well, 32-bit pointers are half the size of 64-bit pointers, so you would expect less memory to be used, but you wouldn't expect all data structures to double in size as they seem to here. 

Cache hit rate should be better if half the amount of memory is used, which could explain the improved performance.
On Friday, October 12, 2012 4:35:44 AM UTC-7, Jon wrote:
> Well, 32-bit pointers are half the size of 64-bit pointers, so you would expect less memory to be used, but you wouldn't expect all data structures to double in size as they seem to here. > > Cache hit rate should be better if half the amount of memory is used, which could explain the improved performance.
Yes, I know about the pointers ... however I would not expect the data structures to be only pointers :) It's harder to comment about the cache since the performance is dependent of the access pattern .... Still the 64b code is supposed to be better since it has access to more CPU registers. Just for fun, running xst with the simple script: help -arch virtex6 -command run (i.e. print help for run, do nothing). 32b: Total memory usage is 83656 kilobytes 64b: Total memory usage is 274236 kilobytes Interesting .... -- mmihai