I’m running some experiments with bitcoin core software on AWS. I’m intrigued by 2 questions:
- Which performs better, ARM64 vs X86_64?
- What is performance loss of 32bit ARM vs 64bit ARM?
The Experiment
- I fired up a t3.medium instance with ubuntu desktop 20.04(x86_64) image
- I fired a second instance of t4g.medium type with ubuntu desktop 20.04 (arm64) image
- To run 32bit ARM program, I followed the chroot approach documented in my previous post and set up an armhf Ubuntu 20.04 (focal) chroot environment
- Then I download all 3 versions of bitcoin core software from its download site : 32bit ARM, 64bit ARM and 64bit Intel.
- Run bitcoin-qt from scratch (delete ~/.bitcoin directory if any) and count the time duration for the verifying first 200,000 blocks.
- Each configuration runs 2 times. We then take the average.
- Other system variables are monitored to ensure similar running environment. Specifically networking or disk don’t seem to be a factor.
The Results
See results listed below. It seems for bitcoin related workload 64bit ARM version performs 20% faster than 32bit ARM version and 64bit Intel instance.
category | 64bit ARM | 32bit ARM | 64bit Intel |
Instance type | t4g.medium | t4g.medium | t3.medium |
CPU | Graviton2 | Graviton2 | Intel Xeon Platinum 8000 series |
# CPU cores | 2 | 2 | 2 |
RAM (GB) | 4 | 4 | 4 |
run duration #1 | 8’44” (524″) | 10’24” (624″) | 11’16″(676″) |
run duration #2 | 7’30” (450″) | 9’58″(598″) | 9’04″(544″) |
run duration average | 487″ | 611″ | 610″ |
relative performance to 64bit ARM | 100% | 80% | 80% |
Pricing (us-west-2/Orgon) ($/hr) | 0.0336 | 0.0336 | 0.0416 |