Task #1263
Test Gromacs with X32 ABI
Description
Given that we never need more than 4GB, X32 ABI (http://en.wikipedia.org/wiki/X32_ABI) shouldn't have any disadvantage and it could give us very slightly better performance. So it might be worth testing it.
Associated revisions
History
#1 Updated by Berk Hess over 7 years ago
- Status changed from New to Accepted
It seems floating point performance is nearly unaffected and we avoid pointer operations as much as possible in Gromacs, so I expect very little gain. But if it's easy to try, we should. On OpenSuse x32 libraries are not readily available. But for Ubuntu the situation seems to be better:
http://www.phoronix.com/scan.php?page=news_item&px=MTM1OTA
#2 Updated by Mark Abraham over 7 years ago
If there was a benefit, it seems like we'd just need to detect it exists and is supported by the tool chain, and give the right GCC flag, yes?
#3 Updated by Alexey Shvetsov over 7 years ago
Seems like easyest way to test it is to run a minimal x32 system in LXC container (e.g. gentoo or may be debian build)
#4 Updated by Gerrit Code Review Bot over 6 years ago
Gerrit received a related patchset '1' for Issue #1263.
Uploader: Erik Lindahl (erik@kth.se)
Change-Id: I2555b2c68d4bba24f4e581268c472a47fe7d1531
Gerrit URL: https://gerrit.gromacs.org/3668
#5 Updated by Erik Lindahl over 6 years ago
- Status changed from Accepted to Fix uploaded
#6 Updated by Erik Lindahl over 6 years ago
- Status changed from Fix uploaded to Resolved
#7 Updated by Erik Lindahl over 6 years ago
- Status changed from Resolved to Closed
#8 Updated by Teemu Murtola over 6 years ago
- Assignee changed from Berk Hess to Erik Lindahl
- Target version set to 5.0
Make source compile under Linux X32 ABI
The X32 ABI uses 32-bit pointers in combination with all
other features of x86-64 to save memory. This requires two
minor changes to x86 inline assembly macro checks, where we
need check for LP64 (64-bit pointers) rather than
x86_64 (which is set for X32). The resulting binaries
run approximately 2% faster, but since it requires all
dependent libraries to be available in X32 format it is
not something we will enable with a simple setting for now.
To use it manually, set CFLAGS and CXXFLAGS to "-O3 -mx32".
Fixes #1263.
Change-Id: I2555b2c68d4bba24f4e581268c472a47fe7d1531