Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
howto:rk3399pro [2019/03/27] – gomida | howto:rk3399pro [2022/07/02] (current) – removed gomida | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Setup ToyBrick RK3399PRO ====== | ||
- | ===== HowTo ===== | ||
- | < | ||
- | <sq> | ||
- | 장난감 삼아 구입한 NPU 개발보드. 2019년 03월 06일 주문해서 DHL로 18일에 배송되었다. 6GB+32GB 모델은 재고가 없어 3GB+16GB 모델로 주문하였다. 박스를 열자 한자로 쓰여진 부품 목록과 110v 어댑터(프리볼트)가 등장했다. 메뉴얼 하나 없는 불친절함을 뒤로하고 HDMI, USB키보드와 마우스를 연결하고 전원을 올리자 떠 오른 것은 Fedora 리눅스. 이왕이면 우분투를 설치해두었으면 좋았을 텐데. 패스워드는 toybrick이다. 모니터 연결 시 화면 깜빡임과 노이즈가 발생하는데, | ||
- | * https:// | ||
- | </sq> | ||
- | <sq> | ||
- | === dnfdragora === | ||
- | Fedora는 익숙하지 않아서 불편하다. 패키지 매니저가 dnf, GUI 도구가 dnfdragora 인가보다. 우선 firefox를 설치하자. firefox for wayland 를 설치해야 안 죽는다. 얼른 우분투로 밀어야겠다. 근데 밀어버리려고 보니 바이두로 배포하는데 이게 회원가입을 해야되나보다. 흑. 일단 tensorflow-lite 빌드에 필요한 git, gcc, zlib을 검색해 설치한다. | ||
- | </sq> | ||
- | <sq> | ||
- | === libneuralnetworks.so === | ||
- | < | ||
- | find / -name " | ||
- | / | ||
- | / | ||
- | </ | ||
- | 가장 궁금했던 것은 NNAPI 모듈이라 이것부터 검색해보았다. 기대와는 달리 안드로이드용만 제공하는지 안드로이드 파일시스템 마운트 해 둔 것 처럼 보이는 PATH에서만 검색되었다. 혹시나 싶어 TensorFlow-Lite를 빌드하여 시도해보았는데 dlopen 할 때 crash가 발생하고 libc 근방인 것으로 보아 안드로이드 용이 맞는 것 같다. 중국어 메뉴얼을 번역기 돌려 보니 안드로이드가 설치되어 있다고 한다. 내일 시도해보아야겠다. | ||
- | * http:// | ||
- | </sq> | ||
- | \\ | ||
- | < | ||
- | <sq> | ||
- | 정면에서 바라보았을 때 왼쪽 버튼이 복구버튼이다. 얼마 동안 누르고 있어야 안드로이드로 진입하는지 써 있지 않아 몇 번 실패하다가 그냥 방치했더니 어느순간 안드로이드가 떠 있었다. 일반 ENG 모드로 빌드 된 안드로이드와 동일한데, | ||
- | </sq> | ||
- | \\ | ||
- | < | ||
- | <sq> | ||
- | 오늘은 타겟에서 파이썬 데모를 돌려보자. 영문 메뉴얼이 제공되기는 하지만 엉성하다. | ||
- | * https:// | ||
- | < | ||
- | git clone https:// | ||
- | cd rknn-toolkit/ | ||
- | pip3 install rknn_toolkit-0.9.9-cp36-cp36m-linux_aarch64.whl --user | ||
- | </ | ||
- | 설치하다 보면 여러 의존성 문제를 만나게 되는데, 찍어서 맞춘거라 불필요한 패키지가 있을 수도 있다. TX2 처럼 빠릿한 환경을 기대했지만 여러모로 느리고 불편하다. 클럭 셋팅이라도 변경할 수 있으면 좋을텐데. | ||
- | sudo dnf install redhat-rpm-config gcc-gfortran python3-devel protobuf openblas-devel | ||
- | pip3 install pgen --user | ||
- | Note: 결국 잘 안되서 PC에서 빌드하고 adb 사용해서 타겟 push 후 실행하는 스크립트로만 테스트 함. | ||
- | </sq> | ||
- | \\ | ||
- | < | ||
- | <sq> | ||
- | ToyBrick RK3399PRO에서 TVM 벤치마킹 방법에 대한 정리. | ||
- | |||
- | OpenCL 유저 스페이스 드라이버 libOpenCL.so 구하기 | ||
- | cd /usr/lib64 | ||
- | sudo wget https:// | ||
- | sudo ln -s libmali-midgard-t86x-r14p0-wayland.so libOpenCL.so | ||
- | |||
- | OpenCL 헤더 파일 다운로드 후 / | ||
- | git clone https:// | ||
- | sudo cp -r ~/ | ||
- | |||
- | 호스트측 준비 ( tvm은 빌드 된 상태로 가정 ) | ||
- | python3 -m tvm.exec.rpc_tracker | ||
- | |||
- | |||
- | 타겟측 준비 | ||
- | < | ||
- | git clone --recursive https:// | ||
- | cd tvm | ||
- | vi CMakeList.txt > OpenCL 항목 ON | ||
- | make runtime | ||
- | export PYTHONPATH=~/ | ||
- | python3 -m tvm.exec.rpc_server --tracker=HOST_IP: | ||
- | </ | ||
- | |||
- | 호스트측에서 빌드 후 업로드 | ||
- | < | ||
- | (python35) gomida@TITAN: | ||
- | -------------------------------------------------- | ||
- | Network Name Mean Inference Time (std dev) | ||
- | -------------------------------------------------- | ||
- | squeezenet_v1.1 | ||
- | mobilenet | ||
- | resnet-18 | ||
- | vgg-16 | ||
- | </ | ||
- | |||
- | < | ||
- | (python35) gomida@TITAN: | ||
- | -------------------------------------------------- | ||
- | Network Name Mean Inference Time (std dev) | ||
- | -------------------------------------------------- | ||
- | squeezenet_v1.1 | ||
- | mobilenet | ||
- | resnet-18 | ||
- | vgg-16 | ||
- | </ | ||
- | FireFly RK3399 측정결과에 비해 GPU ResNet-18는 차이가 커 보인다. 버전 차이 때문일까. | ||
- | https:// | ||
- | </sq> |
TypeError: Cannot access offset of type string on string
An unforeseen error has occured. This is most likely a bug somewhere.
More info has been written to the DokuWiki error log.