RaspberryPi 3 에서 동작하는 Julia 환경을 Docker 로 구축합니다.

오늘은



조금 매니악일지도 모르지만, 라즈파이 3에서 Julia를 움직여 봅시다.

공식 사이트에서 다운로드 (하는 방법)



https://julialang.org/downloads/ 점프하고 Long-term support release (v1.0.3) 이하에 있다
32비트(ARMv7-a hard float) 부분을 클릭합니다.


이것을 tar로 압축을 풀고 path/to/julia-1.0.3/bin을 PATH에 추가하는 export하면 움직입니다.

Docker를 사용하는 방법



Docker 환경 구축



The easy way to set up Docker on a Raspberry Pi에 있는 방법에 따라 여러 줄로 준비할 수 있습니다.
# terminal on your Raspberry pi
$ curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
# sudo をいちいち打ちたくない場合。。。
$ sudo usermod -aG docker pi

놀다



나머지는 재생만
$ docker run --rm -it julia:1.0.3

여기 Gist에서 바늘을 가득 던져 원주율을 계산하는 스크립트를 놓아 두었으므로 시도해보십시오. 각자 Python이나 C로 쓰고 속도를 비교하면 재미 있다고 생각합니다.

소스에서 빌드



미안 해요. 크로스 컴파일 공부하고 싶습니다.

환경 만들기의 까다로운



데스요네이htps : // 후 b. 도 c r. 코 m / r / 테라 사키 사토시 / my Jua에서 라즈파이용 이미지를 공개하고 있습니다.
원한다면 놀아보세요. Dockerfile에서 하고 싶은 사람은 여기에서 공개하고 있습니다.

Desktop 버전에서 플레이하는 경우 아래와 같이 X를 마운트해두면 Plots.jl에서 그래프 그리기를 볼 수 있습니다.
$ cat run_container.sh
xhost +local:docker
docker run --rm -it \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix/:/tmp/.X11-unix \
-v $(pwd):/work \
-w /work \
terasakisatoshi/myjulia:rpi3 bash
xhost -local:docker
$ bash run_container.sh
# 以下JuliaのREPLが見えるようになる
#root@xxxxxxx:/work#julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.0.3 (2018-12-18)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/     
julia> versioninfo()
Julia Version 1.0.3
Commit 099e826241 (2018-12-18 01:34 UTC)
Platform Info:
  OS: Linux (arm-linux-gnueabihf)
  CPU: ARMv7 Processor rev 4 (v7l)
  WORD_SIZE: 32
  LIBM: libm
  LLVM: libLLVM-6.0.0 (ORCJIT, cortex-a53)
Environment:
  JULIA_PATH = /usr/local/julia
  JULIA_GPG = 3673DF529D9049477F76B37566E3C7DC03D6E495
  JULIA_VERSION = 1.0.3
julia> # this is a sample code
julia> using Plots
julia> using TestImages
julia> plot(testimage("cameraman"))

이런 느낌이 되면 성공입니다. 오른쪽 그림은 삼각 함수를 플로팅합니다.



PyCall과 호출자의 Python으로 berryconda를 사용하고 있습니다. 메이저 라이브러리의 설치는 이것으로 쾌적하게 할 수 있을까라고 생각합니다.

힘든 일



그리기 시스템


Plots.jl가 32비트 환경에서 지원하지 않는 것 같으므로 종속 라이브러리 libGR.so를 직접 빌드해야 합니다. Building the GR Runtime 에서처럼 종속 패키지를 apt install하면 됩니다. (Docker를 사용하려면 몇 가지 수정이 필요합니다.)

ImageView가 움직이지 않음



Mac에서도 그렇습니다만, ImageView.jl 의 의존하는 Gtk.jl 나 Cairo.jl 관계로 using ImageView 가 할 수 없기 때문에 조금 괴롭습니다. ImageView.imshow 대신 Plots.plot로 대용할 수 있으므로 이것으로 운용해 보려고 합니다.
using Plots, TestImages
plot(testimage("c"))

초동 JIT 컴파일 무거운



평범한 PC에서도 고민되기 때문에 라즈파이에서도 쉽게 상상할 수 있습니다.
julia> using Plots
julia> using TestImages
julia> plot(testimage("cameraman"))

처음 무거운군요・・・. 일단 실행하면 나중의 실행은 바삭바삭할 수 있습니다만.

마지막으로



드디어 HHKB를 사 버렸기 때문에 메인기로서 운용할 수 있을까 생각해 보겠습니다♫

좋은 웹페이지 즐겨찾기