6 ms·
I suspect most of the performance improvements came not from being "64-bit", but rather from the new instructions in aarch64 (and even in armv7) over armv6 (whi
by em3rgent0rdr 5y ago
I suspect most of the performance improvements came not from being "64-bit", but rather from the new instructions in aarch64 (and even in armv7) over armv6 (which is what the 32-bit Raspbian has to use to be backwards compatible with the first Raspberry). So I don't think it is entirely appropriate to frame the performance improvements due to it going from "32-bit" to "64-bit".
In fact, hypothetically assuming the same instruction set, 64-bit can cause performance degradation over 32-bit, particularly in memory-bound benchmarks, because the size of memory pointers and default int size will take up twice as much space, which puts stress on the limited cache space, which will generate additional off chip memory accesses.
- spacechild1 5y ago> default int size 'int' size stays the same. 'long' gets bigger (on LP64 platforms). Apart from that, I would agree with your assessment.
- genpfault 5y agohttps://en.wikipedia.org/wiki/64-bit_computing#64-bit_data_models https://en.wikipedia.org/wiki/64-bit_computing#64-bit_data_m...
- em3rgent0rdr 5y agowow thanks...learned something new. I'm sorry when I was in university there were still SPARC64 machines around, which use the "ILP64" where the default int size increased to 64 bits, so that must have been why I was taught that the default int size increased when going to 64-bit arch.
- fulafel 5y agoSun-shipped 64-bit Solaris has 32 bit int and it's in the LP64 column of the Wikipedia table. The entry of a ILP64 HAL systems version is about this other niche Solaris port for HAL designed chips that was not commonly used in universities (or anywhere, for that matter).
- em3rgent0rdr 5y agooh gosh, my Sun Solaris system must have been on 32-bit ints in that case.
- yjftsjthsd-h 5y ago> I suspect most of the performance improvements came not from being "64-bit", but rather from the new instructions in aarch64 (and even in armv7) over armv6 (which is what the 32-bit Raspbian has to use to be backwards compatible with the first Raspberry). So I don't think it is entirely appropriate to frame the performance improvements due to it going from "32-bit" to "64-bit". Possible; IIRC, we had the same thing on x86 because the jump to AMD64 meant that you could depend on certain extensions (SSE2?) that didn't exist on all previous processors but which were present on all 64-bit processors. So it became a split where code compiled for 64-bit CPUs knew it could depend on those extensions without even needing a runtime check, which was nice. That said, my understanding is that for data-heavy workloads it really does help to move twice as much data per operation.
- deleted 5y ago[deleted]