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 | 
