amd64) is a 64 bit version of the infamous intel architecture,
arm64 are 32 and 64 bit versions of the arm architecture, but there are many sub-versions. The chip that runs on raspberry pi 3 B supports the
armv8) architecture, but it is used in 32 bit mode (aka
armv7) in the standard raspbian release. In any case you would need to compile the software in the architecture of the raspberry pi, there is no way to run ubuntu for
x86_64 on the raspberry pi
The most outwardly visible difference when running 64 bit software is that each individual process has access to a 64 bit virtual memory space.
To backtrack a bit, Each process, except the kernel, lives in a little sandbox that appears to the code as a completely empty memory with 64 bit addresses this looks like ~16EB (exabyte). This space must contain all the code, supporting code, and data for the application.
This virtual memory is shotgunned into the physical memory by the kernel and the processor. So while each individual process potentially has 16EB of virtual memory, you still only have 1GB on the RPI to use for all your applications.
Now to the question - Why would one want to use a 64 bit OS on a system with so little physical memory? There are a few possibilities.
- You want to use a piece of software only available for arm64
- You want to test/develop software for arm64
- You want to memory map large IO into a process
One of the advantages of a 64 bit memory space is that you can, in certain cases map an entire memory device like flash into memory. In which case 32 bit addressing is not sufficient to memory map, say a 32GB serial flash device.
- You have a computational need for larger hardware registers
If you deal with large numbers or use software algorithms that pack multiple values into a single variable, the larger registers may provide an advantage.
- You have a need for some other enhancement or fix in the command set
The new arm architecture that supports 64 bits may have other improvements or enhancements that you would like to use.