Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cvim saisentan-gpu-open cl

1,168 views

Published on

Using OpenCL on Mobile GPU

Published in: Technology
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Cvim saisentan-gpu-open cl

  1. 1. モバイルGPUで OpenCL 2018/Apr/21 tomoaki_teshima
  2. 2. Write Once, Run Anywhere
  3. 3. 本日の概要 • OpenCLをモバイルGPUで動かす • OpenCLとは?(概要) • OpenCLとは?(概念) • 実機でOpenCLが動く正しい挙動 • まとめ
  4. 4. OpenCLとは • OpenCLは、OpenCL C言語による、マルチコアCPUやGPU、 Cellプロセッサ、DSPなどによる異種混在の計算資源(ヘテロ ジニアス環境、ヘテロジニアス・コンピューティング、英: Heterogeneous)を利用した並列コンピューティングのための クロスプラットフォームなフレームワークである。 • [1]:http://ja.Wikipedia.org/OpenCL
  5. 5. マルチプラットフォームに動く仕組み アプリ ドライバ コンパイラ 中間表現 HW (GPU) Intel HD、NVIDIA Geforce、AMD Radeon HW (FPGA) Intel FPGA HW (CPU) Intel Corei7 ソースコード
  6. 6. モバイルGPUも例外では無い • 一度書いたコードをモバイルでも利用できる
  7. 7. パフォーマンス比較 • 速い!
  8. 8. 「OpenCL対応」とは • OpenCLで規定された演算が実装されている(HWが対応) • OpenCL用の演算を適切な命令に置き換える(ドライバが対応)
  9. 9. OpenCL対応デバイス • ネットで見つける • 購入する • わくわくして待つ • 届く • 開封の儀
  10. 10. モバイルGPUは群雄割拠 • Tegra (Geforce):NVIDIA • Adreno (Radeon):Qualcomm • Mali:Arm • PowerVR:Imagination • VideoCore:Broadcom
  11. 11. OpenCL対応状況 Tegra Adreno Mali PowerVR Video Core 非対応 X1, X2 100,200 400,450 Series5 I-IV OpenCL 1.1 300(1.1EP) T600 5XT OpenCL 1.2 K1 400 T700, T800 Series6 OpenCL 2.0 500,600 G- [2] http://la.nvidia.com/content/PDF/tegra_white_papers/Tegra-K1-whitepaper-v1.0.pdf [3] https://devtalk.nvidia.com/default/topic/899013/jetson-tx1/tegra-x1-opencl-support/ [4] https://www.imgtec.com/news/press-release/completion-of-sale-of-mips/
  12. 12. TegraのOpenCL対応状況 • OpenCLはCUDAと真っ向からぶつかる規格 • NVIDIA自身、真面目にOpenCL対応をするメリットは無い • TegraK1ではハードウェアは1.2対応(が、動くとは言ってない) • Tegra K1 is capable of OpenCL 1.2. It will be supported based on customer needs. [2] • TegraX1、X2では公式に非対応 • でも、きっとハードウェア的には動くはず • Sorry, OpenCL driver is not supported for Tegra. [3] • CUDA9.1 + GTX1080 でもOpenCL1.2という塩対応 • 2018年4月時点でのOpenCLは2.2が最新
  13. 13. AdrenoのOpenCL対応状況 • Qualcomm自身、OpenCL推し • 対応デバイスも数出ている、、、が、Androidのみ • Qualcommのフォーラムを見ると、Linux用SDK(ドライバ)が過去ダウ ンロードできた痕跡がある • が、現在は404
  14. 14. PowerVRのOpenCL対応状況 • OpenCLどころか会社が・・・ • Apple(iPhone)用のGPUとして重宝されていた • 2017年、Appleが独自GPUの開発を宣言 • MIPSもろともバラ売りされる寸前[4]
  15. 15. 結論 Tinker Board 一択 次点でODROID-XU4
  16. 16. Tinker Board推しの理由 • Armが載っている • だいたいそう • 買ったら普通に動く • OpenCL対応のドライバがインストール済みのOSが配布されている • 秋葉原で普通に買える • 中国やアメリカから技適取得してるか怪しいボードを個人輸入不要 • CPUも強力 • A17x4コア1.8GHzは最強クラス • これ以上はサーバ用Caviumぐらいしか市販されてない
  17. 17. ODROID-XU4推しの理由 • Armが載っている • だいたいそう • 買ったら普通に動く • OpenCL対応のドライバがインストール済みのOSが配布されている • 代理店があって、国内で日本円で通販できる • CPUも強力 • A15x4コア+A7x4コア(最大2GHz) • ただ、A7がin-orderなので、個人的にTinkerBoardに軍配
  18. 18. TinkerBoardでOpenCL • 詳細はhon_no_mushiさんがAC2017で詳細を説明している • 何がすごいか • 買って電源入れてビルドするだけ→すごい! [5] https://qiita.com/hon_no_mushi/items/e201890dcc78dc0d88f0
  19. 19. それ以外の選択肢 • Rockchipが割とOpenCLのドライバの積極的 • 今日紹介するTinkerBoard、FireflyともにSoCがRockchip製 • Raspberry Pi (VideoCore)で無理やりOpenCL • もう1個の目玉VC4CL
  20. 20. Firefly RK3399 • 怪しげなボードをKickstarterで買ってみた • RK3399は64bitArmで、MaliT860という上位機種をGPUとして 搭載 • が、、、OSにドライバが同梱されてない!(泣)
  21. 21. OpenCL対応とは • OpenCLのビルド • OpenCLの実行
  22. 22. 大切なことは全てCMakeが教えてくれた • 何はなくともlibOpenCL.so • soファイルをビルド時にリンクするってありなんだ? /usr/lib/<architecture>/libOpenCL.so
  23. 23. OpenCLの実行時の挙動 • OpenCVのregression testを基準に見てみよう ./opencv_test_imgproc --gtest_filter=OCL*
  24. 24. • OpenCL非対応の場合 OpenCV version: 3.4.1-dev OpenCV VCS version: 3.4.1-xx-gfffffff Build type: release Parallel framework: pthreads CPU features: neon fp16 [ INFO:0] Initialize OpenCL runtime... OpenCL is disabled • OpenCL対応の場合 OpenCV version: 3.4.1-dev OpenCV VCS version: 3.4.1-xx-gfffffff Build type: release Parallel framework: pthreads CPU features: neon fp16 [ INFO:0] Initialize OpenCL runtime... OpenCL Platforms: ARM Platform iGPU: Mali-T860 (OpenCL 1.2 v1.r13p0-00rel0- Current OpenCL device: Type = iGPU Name = Mali-T860 Version = OpenCL 1.2 v1.r13p0-00rel0-
  25. 25. OpenCV version: 3.4.1-dev OpenCV VCS version: 3.4.1-61-g7e95787 Build type: release Parallel framework: pthreads CPU features: neon fp16 [ INFO:0] Initialize OpenCL runtime... OpenCL Platforms: ARM Platform iGPU: Mali-T860 (OpenCL 1.2 v1.r13p0-00rel0-git(a4271c9).04dadb82d3612c978f88c00109101694) Current OpenCL device: Type = iGPU Name = Mali-T860 Version = OpenCL 1.2 v1.r13p0-00rel0-git(a4271c9).04dadb82d3612c978f88c00109101694 Driver version = 1.2 Address bits = 64 Compute units = 4 Max work group size = 256 Local memory size = 32 KB Max memory allocation size = 494 MB 34 KB Double support = Yes Host unified memory = Yes Device extensions: cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_3d_image_writes cl_khr_fp64 cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_fp16 cl_khr_gl_sharing cl_khr_icd cl_khr_egl_event cl_khr_egl_image cl_khr_image2d_from_buffer cl_arm_core_id cl_arm_printf cl_arm_thread_limit_hint cl_arm_non_uniform_work_group_size cl_arm_import_memory Has AMD Blas = No Has AMD Fft = No Preferred vector width char = 16 Preferred vector width short = 8 Preferred vector width int = 4 Preferred vector width long = 2 Preferred vector width float = 4 Preferred vector width double = 2
  26. 26. Linuxで起動するまでを見てみよう strace ./opencv_test_core --gtest_filter=OCL* > stracelog.txt 2>&1 open("tls/v7l/neon/vfp/libOpenCL.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("tls/v7l/neon/libOpenCL.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("tls/v7l/libOpenCL.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("tls/neon/libOpenCL.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) (中略) open("neon/libOpenCL.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("vfp/libOpenCL.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("libOpenCL.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) (中略) open("/lib/arm-linux-gnueabihf/tls/v7l/neon/vfp/libOpenCL.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/usr/lib/arm-linux-gnueabihf/libOpenCL.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/usr/lib/libOpenCL.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) write(1, "[ INFO:0] Initialize OpenCL runt"..., 58[ INFO:0] Initialize OpenCL runtime... OpenCL is disabled まずは必死にlibOpenCL.soを探す
  27. 27. libOpenCL.soが見つかった場合 strace ./opencv_test_core --gtest_filter=OCL* > stracelog.txt 2>&1 open("/usr/lib/arm-linux-gnueabihf/libOpenCL.so.1", O_RDONLY|O_CLOEXEC) = 3 open("/etc/OpenCL/vendors", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 open("/etc/OpenCL/vendors/hogehoge.icd", O_RDONLY) = 4 read(4, "libHogehogeOpenCL.so.1n", 19) = 19 open("/usr/lib/arm-linux-gnueabihf/libHogehogeOpenCL.so.1", O_RDONLY|O_CLOEXEC) = 4 • libOpenCL.soは実はapt-get opencl-icd でインストールできる • /etc /OpenCL /vendors/****.icd を探しに行く • ここには、ドライバの本体が指定されている
  28. 28. OpenCLの動き方(TinkerBoardの場合) プログラム /etc/icd/vendors/ libOpenCL.so libMaliCL.so Mali
  29. 29. libMaliCL.soはどうやって手に入れる? • RockChipの公式アカウントがGithubで配布している • どうやらドライバはチップベンダが配布する? • ベンダが対応しないと、まるっきりお手上げ [6] https://github.com/rockchip-linux/libmali
  30. 30. あれ? VideoCoreIV(ラズパイ)は OpenCL非対応じゃないの?
  31. 31. OpenCL対応状況 Tegra Adreno Mali PowerVR Video Core 非対応 X1, X2 100,200 400,450 Series5 I-IV OpenCL 1.1 300(1.1EP) T600 5XT OpenCL 1.2 K1 400 T700, T800 Series6 OpenCL 2.0 500,600 G- これ
  32. 32. 世の中には天才な学生がいてね • VC4CL (VideoCore4 OpenCL) • 修論のために自前でOpenCLカーネルが動くドライバとコンパ イラを作った • 控えめに言って天才、本音を言うと変態(褒め言葉)
  33. 33. OpenCLの動き方 プログラム /etc/icd/vendors/ libOpenCL.so libVC4CL.so VideoCore IV /dev/mem
  34. 34. とは言え • 結構無理して動かしてる感は否めない • sudo権限が必須 • /dev/memを使ってメモリ管理するため • OpenCL 1.2対応だが、doubleは非対応 • VideoCore IV 自体にdouble演算器が無い • ランタイムコンパイルも、TinkerBoardに比べると格段に遅い • OpenCL のテストを走らせると大量に失敗 • Githubでも、「まだ開発途中で正式リリースはまだ」と書かれている
  35. 35. Write Once Run Anywhere? • 残念ながらRun Anywhereはまだ見ぬ桃源郷 • Android上の対応状況は未調査 • 性能+調達のコストを考えると、やはりTinkerBoardは優秀
  36. 36. 第2部 OpenCVビルド職人の朝は早くない
  37. 37. OpenCVビルド職人とは • AC2016の記事「ぼくのかんがえた(さいきょうの)OpenCVび るどふぁーむ」を参照 [7] https://twitter.com/sakanazensen/status/826696291304353792 [8] https://twitter.com/side_yu/status/977171330092027905 [9] https://twitter.com/dandelion1124/status/967894674751963137 [10] https://qiita.com/tomoaki_teshima/items/f07d65c6b066eb6a215f
  38. 38. OpenCVビルド職人の三種の神器 • Jenkins • ccache • Dropbox • Git • 4つじゃねぇか
  39. 39. Jenkins • ヒューマンエラーは起きる • 定形処理は必ず自動化しよう • エンジニアたるもの、同じ処理はしない! • JenkinsのSSHプラグインを使うことで大量のARMデバイス上 でビルドとテストを実行できる • クリーンビルドする手続きは考えずに実行できる
  40. 40. 今の運用 ポーリング
  41. 41. ビルド時間 • 早いCPUだと2時間ぐらいでビルドできる • 長い・・・ • 遅いCPUだと8時間ぐらいでビルドできる • な、長い・・・ • 早いCPUだと4コアで30分ぐらいでビルドできる • Good! • ただし、SoCによってはOOMでビルドが完了できない • いらない子 • SoCなので、CPUの交換も、メモリの増設もできない! そうだ、ccacheだ 竹内覚, [試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識
  42. 42. ccache • コンパイルした結果をキャッシュして再利用するソフト • 1度目のビルドはキャッシュするオーバーヘッド分だけ遅くなる • 2度目以降はCPUに負荷が殆どかからない • ビルドした結果をキャッシュ=ストレージで高速化 • CPUもメモリも交換不能なSoCにピッタリのソリューション • 大部分のコンパイル結果を再利用できる • OpenCVビルド職人にぴったり • 大規模な変更があればビルド時間は伸びるが、頻度としては稀
  43. 43. arm-armbian-potato arm-dragon-board-410 arm-firefly-rk3399 arm-hikey arm-jetson-tx1 arm-jetson-tx2 arm-le-potato arm-odroid-c2 arm-odroid-x2 arm-odroid-xu4 arm-orangepipc2 arm-orangepione arm-pine64 arm-raspberry-pi-3 arm-rock64 arm-tinkerboard mips-ci20 build SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_calib3d SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_core SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_dnn SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS opencv_test_flann SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_imgcodecs SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_imgproc SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS opencv_test_ml SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_objdetect SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_photo SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_shape SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_stitching SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_superres SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_video SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_videoio SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_videostab SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_cudaarithm FAILURE FAILURE opencv_test_cudabgsegm SUCCESS SUCCESS opencv_test_cudacodec SUCCESS SUCCESS opencv_test_cudafeatures2d SUCCESS SUCCESS opencv_test_cudafilters SUCCESS SUCCESS opencv_test_cudaimgproc FAILURE FAILURE opencv_test_cudalegacy FAILURE FAILURE opencv_test_cudaobjdetect SUCCESS SUCCESS opencv_test_cudaoptflow FAILURE SUCCESS opencv_test_cudastereo SUCCESS FAILURE opencv_test_cudawarping SUCCESS SUCCESS opencv_test_cudev FAILURE FAILURE opencv_perf_calib3d SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_core SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_dnn SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_features2d SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_imgproc SUCCESS FAILURE SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_objdetect SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_photo SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_stitching SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE FAILURE SUCCESS FAILURE SUCCESS SUCCESS SUCCESS opencv_perf_superres SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_video SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_cudaarithm FAILURE FAILURE opencv_perf_cudabgsegm FAILURE FAILURE opencv_perf_cudacodec SUCCESS SUCCESS opencv_perf_cudafeatures2d SUCCESS SUCCESS opencv_perf_cudafilters SUCCESS SUCCESS opencv_perf_cudaimgproc FAILURE FAILURE opencv_perf_cudalegacy FAILURE FAILURE opencv_perf_cudaobjdetect SUCCESS SUCCESS opencv_perf_cudaoptflow SUCCESS SUCCESS opencv_perf_cudastereo SUCCESS SUCCESS opencv_perf_cudawarping FAILURE FAILURE arm-armbian-potato arm-dragon-board-410 arm-firefly-rk3399 arm-hikey arm-jetson-tx1 arm-jetson-tx2 arm-le-potato arm-odroid-c2 arm-odroid-x2 arm-odroid-xu4 arm-orangepipc2 arm-orangepione arm-pine64 arm-raspberry-pi-3 arm-rock64 arm-tinkerboard mips-ci20 build SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_calib3d SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_core SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_dnn SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS opencv_test_flann SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_imgcodecs SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_imgproc SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS opencv_test_ml SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_objdetect SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_photo SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_shape SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_stitching SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_superres SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_video SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_videoio SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_videostab SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_cudaarithm FAILURE FAILURE opencv_test_cudabgsegm SUCCESS SUCCESS opencv_test_cudacodec SUCCESS SUCCESS opencv_test_cudafeatures2d SUCCESS SUCCESS opencv_test_cudafilters SUCCESS SUCCESS opencv_test_cudaimgproc FAILURE FAILURE opencv_test_cudalegacy FAILURE FAILURE opencv_test_cudaobjdetect SUCCESS SUCCESS opencv_test_cudaoptflow FAILURE SUCCESS opencv_test_cudastereo SUCCESS FAILURE opencv_test_cudawarping SUCCESS SUCCESS opencv_test_cudev FAILURE FAILURE opencv_perf_calib3d SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_core SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_dnn SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_features2d SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_imgproc SUCCESS FAILURE SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_objdetect SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_photo SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_stitching SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE FAILURE SUCCESS FAILURE SUCCESS SUCCESS SUCCESS opencv_perf_superres SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_video SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_cudaarithm FAILURE FAILURE opencv_perf_cudabgsegm FAILURE FAILURE opencv_perf_cudacodec SUCCESS SUCCESS opencv_perf_cudafeatures2d SUCCESS SUCCESS opencv_perf_cudafilters SUCCESS SUCCESS opencv_perf_cudaimgproc FAILURE FAILURE opencv_perf_cudalegacy FAILURE FAILURE opencv_perf_cudaobjdetect SUCCESS SUCCESS opencv_perf_cudaoptflow SUCCESS SUCCESS opencv_perf_cudastereo SUCCESS SUCCESS opencv_perf_cudawarping FAILURE FAILURE arm-armbian-potato arm-dragon-board-410 arm-firefly-rk3399 arm-hikey arm-jetson-tx1 arm-jetson-tx2 arm-le-potato arm-odroid-c2 arm-odroid-x2 arm-odroid-xu4 arm-orangepipc2 arm-orangepione arm-pine64 arm-raspberry-pi-3 arm-rock64 arm-tinkerboard mips-ci20 build SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_calib3d SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_core SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_dnn SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS opencv_test_flann SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_imgcodecs SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_imgproc SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS opencv_test_ml SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_objdetect SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_photo SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_shape SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_stitching SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_superres SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_video SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_videoio SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_videostab SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_cudaarithm FAILURE FAILURE opencv_test_cudabgsegm SUCCESS SUCCESS opencv_test_cudacodec SUCCESS SUCCESS opencv_test_cudafeatures2d SUCCESS SUCCESS opencv_test_cudafilters SUCCESS SUCCESS opencv_test_cudaimgproc FAILURE FAILURE opencv_test_cudalegacy FAILURE FAILURE opencv_test_cudaobjdetect SUCCESS SUCCESS opencv_test_cudaoptflow FAILURE SUCCESS opencv_test_cudastereo SUCCESS FAILURE opencv_test_cudawarping SUCCESS SUCCESS opencv_test_cudev FAILURE FAILURE opencv_perf_calib3d SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_core SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_dnn SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_features2d SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_imgproc SUCCESS FAILURE SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_objdetect SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_photo SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_stitching SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE FAILURE SUCCESS FAILURE SUCCESS SUCCESS SUCCESS opencv_perf_superres SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_video SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_cudaarithm FAILURE FAILURE opencv_perf_cudabgsegm FAILURE FAILURE opencv_perf_cudacodec SUCCESS SUCCESS opencv_perf_cudafeatures2d SUCCESS SUCCESS opencv_perf_cudafilters SUCCESS SUCCESS opencv_perf_cudaimgproc FAILURE FAILURE opencv_perf_cudalegacy FAILURE FAILURE opencv_perf_cudaobjdetect SUCCESS SUCCESS opencv_perf_cudaoptflow SUCCESS SUCCESS opencv_perf_cudastereo SUCCESS SUCCESS opencv_perf_cudawarping FAILURE FAILURE arm-armbian-potato arm-dragon-board-410 arm-firefly-rk3399 arm-hikey arm-jetson-tx1 arm-jetson-tx2 arm-le-potato arm-odroid-c2 arm-odroid-x2 arm-odroid-xu4 arm-orangepipc2 arm-orangepione arm-pine64 arm-raspberry-pi-3 arm-rock64 arm-tinkerboard mips-ci20 build SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_calib3d SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_core SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_dnn SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS opencv_test_flann SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_imgcodecs SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_imgproc SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS opencv_test_ml SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_objdetect SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_photo SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_shape SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_stitching SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_superres SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_video SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_videoio SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_videostab SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_cudaarithm FAILURE FAILURE opencv_test_cudabgsegm SUCCESS SUCCESS opencv_test_cudacodec SUCCESS SUCCESS opencv_test_cudafeatures2d SUCCESS SUCCESS opencv_test_cudafilters SUCCESS SUCCESS opencv_test_cudaimgproc FAILURE FAILURE opencv_test_cudalegacy FAILURE FAILURE opencv_test_cudaobjdetect SUCCESS SUCCESS opencv_test_cudaoptflow FAILURE SUCCESS opencv_test_cudastereo SUCCESS FAILURE opencv_test_cudawarping SUCCESS SUCCESS opencv_test_cudev FAILURE FAILURE opencv_perf_calib3d SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_core SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_dnn SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_features2d SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_imgproc SUCCESS FAILURE SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_objdetect SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_photo SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_stitching SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE FAILURE SUCCESS FAILURE SUCCESS SUCCESS SUCCESS opencv_perf_superres SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_video SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_cudaarithm FAILURE FAILURE opencv_perf_cudabgsegm FAILURE FAILURE opencv_perf_cudacodec SUCCESS SUCCESS opencv_perf_cudafeatures2d SUCCESS SUCCESS opencv_perf_cudafilters SUCCESS SUCCESS opencv_perf_cudaimgproc FAILURE FAILURE opencv_perf_cudalegacy FAILURE FAILURE opencv_perf_cudaobjdetect SUCCESS SUCCESS opencv_perf_cudaoptflow SUCCESS SUCCESS opencv_perf_cudastereo SUCCESS SUCCESS opencv_perf_cudawarping FAILURE FAILURE arm-armbian-potato arm-dragon-board-410 arm-firefly-rk3399 arm-hikey arm-jetson-tx1 arm-jetson-tx2 arm-le-potato arm-odroid-c2 arm-odroid-x2 arm-odroid-xu4 arm-orangepipc2 arm-orangepione arm-pine64 arm-raspberry-pi-3 arm-rock64 arm-tinkerboard mips-ci20 build SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_calib3d SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_core SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_dnn SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS opencv_test_flann SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_imgcodecs SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_imgproc SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS opencv_test_ml SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_objdetect SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_photo SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_shape SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_stitching SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_superres SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_video SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_videoio SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_videostab SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_test_cudaarithm FAILURE FAILURE opencv_test_cudabgsegm SUCCESS SUCCESS opencv_test_cudacodec SUCCESS SUCCESS opencv_test_cudafeatures2d SUCCESS SUCCESS opencv_test_cudafilters SUCCESS SUCCESS opencv_test_cudaimgproc FAILURE FAILURE opencv_test_cudalegacy FAILURE FAILURE opencv_test_cudaobjdetect SUCCESS SUCCESS opencv_test_cudaoptflow FAILURE SUCCESS opencv_test_cudastereo SUCCESS FAILURE opencv_test_cudawarping SUCCESS SUCCESS opencv_test_cudev FAILURE FAILURE opencv_perf_calib3d SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_core SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_dnn SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_features2d SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_imgproc SUCCESS FAILURE SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_objdetect SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_photo SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_stitching SUCCESS FAILURE SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS FAILURE FAILURE SUCCESS FAILURE SUCCESS SUCCESS SUCCESS opencv_perf_superres SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_video SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS opencv_perf_cudaarithm FAILURE FAILURE opencv_perf_cudabgsegm FAILURE FAILURE opencv_perf_cudacodec SUCCESS SUCCESS opencv_perf_cudafeatures2d SUCCESS SUCCESS opencv_perf_cudafilters SUCCESS SUCCESS opencv_perf_cudaimgproc FAILURE FAILURE opencv_perf_cudalegacy FAILURE FAILURE opencv_perf_cudaobjdetect SUCCESS SUCCESS opencv_perf_cudaoptflow SUCCESS SUCCESS opencv_perf_cudastereo SUCCESS SUCCESS opencv_perf_cudawarping FAILURE FAILURE ログの洪水
  44. 44. ファイル名で管理 • <マシン名>-<時刻>.txt で管理? • raspberry-3-20180401195959.txt • 時刻とは? • トリガになったコミットのコミット時刻? • pushされた時刻? • ビルドが開始された時刻? • ビルドが終了した時刻? • →絶対破綻する
  45. 45. Gitで管理 • <マシン名>-<タスク名>.txtとして保存 • 履歴はGitに任せる • Gitのログメッセージに、成功/失敗、Jenkinsのビルド番号、 OpenCVのコミットハッシュを含める
  46. 46. Jenkinsにログが集約
  47. 47. OpenCV職人の朝は早いのか • Jenkinsが夜中のうちにビルドする • つまりOpenCV職人の朝は早くない

×