Julia in Raspberry Pi 3+: Is there any advantage in building from source?

Hi,
I’m trying out Julia on a raspberry pi B3+. My aim is to benchmark the performance of Julia on pi B3 and B3+. I downloaded the generic ARM build available for from the official site. Upon running, I’m getting these outputs:

julia> versioninfo()
Julia Version 0.6.2
Commit d386e40c17 (2017-12-13 18:08 UTC)
Platform Info:
  OS: Linux (arm-linux-gnueabihf)
  CPU: ARMv7 Processor rev 4 (v7l)
  WORD_SIZE: 32
  BLAS: libopenblas (NO_AFFINITY ARMV7)
  LAPACK: libopenblas
  LIBM: libm
  LLVM: libLLVM-3.9.1 (ORCJIT, generic)

julia> peakflops()
7.838128763624185e9

Will there be any benefit if I attempt to build Julia from source in raspberry pi? Previously I had a similar experience with my desktop where official download was not correctly identifying my CPU, but a build from source gave me almost 4 times speed up because of the correct opnBLAS setting. Is there any such tricks available on raspberry pi to speed up julia?

I’m not really sure, but I would doubt it. Despite being ARMv8, Raspbian only runs in 32-bit mode, so it is likely that it will still only use ARMv7 instructions (it may even end up using only ARMv6 instructions, because Raspbian is compatible with Pi One/Zero boards).

If you want to try it, the main thing you’ll need to do is increase the swap size, see https://github.com/JuliaLang/julia/blob/master/README.arm.md#device-specific-instructions.

1 Like

Thanks @simonbyrne. I will try building it to see whether I makes a difference.

I have creates a review of Julia on raspberry pi on Pi B3 and PiB3+. See https://www.element14.com/community/roadTestReviews/2733/l/try-out-the-raspberry-pi-model-3-b-plus-review
I shows that Pi B3+ has come a long way from Pi 3B and provide a improved performance.

1 Like