4 ms·
Note that the boost is only as dramatic for programs that make very heavy use of pointers. For instance, the benchmark that gets a 32% boost [1] requires "about
by hdevalence 13y ago
Note that the boost is only as dramatic for programs that make very heavy use of pointers. For instance, the benchmark that gets a 32% boost [1] requires "about 100 or 190 MB" of memory on 32/64 bit, respectively. If we call the memory used for pointers A and the memory for other data B, then this means that
A + B = 100
2A + B = 190
=> A = 90, B = 10
So if 90% of your memory usage is pointers, this is great. But I don't think that this is a typical workload. Otherwise, the performance advantage is not as clear.
Wikipedia notes that "On average x32 is 5–8% faster on the SPEC CPU integer benchmarks compared to x86-64 but it can as likely be much slower. There is no speed advantage over x86-64 in the SPEC CPU floating point benchmarks."
Perhaps the reason that no tier-one Linux distro ships with x32 images is that the additional complexity of supporting an additional ABI is not seen to be worth the modest performance increases.
[1]: http://www.spec.org/cpu2000/CINT2000/181.mcf/docs/181.mcf.html http://www.spec.org/cpu2000/CINT2000/181.mcf/docs/181.mcf.ht...
- frozenport 13y ago30% performance boost in Java, which we know is lies built on pointers. Also maybe Scala.
- sanxiyn 13y agoThis is not true. Since this optimization helps Java so much, it is already implemented in HotSpot itself without changing ABI. https://wiki.openjdk.java.net/display/HotSpot/CompressedOops https://wiki.openjdk.java.net/display/HotSpot/CompressedOops
- frozenport 13y agoDoes this break vectorization? Specifically, saxpy (Y=M*X+B) requires extra operations to dereference every element and won't let you insert an FMA instruction.
- aaronbee 13y agoAnother relevant benchmark is x32 vs. x86. In a memory constrained environment you may be forced to use x86. x32 gives you the ability to get the performance benefits of x86-64 (possibly plus some) while staying in your memory constraints.