PaddlePaddle / Paddle-Lite

PaddlePaddle High Performance Deep Learning Inference Engine for Mobile and Edge (飞桨高性能深度学习端侧推理引擎)
https://www.paddlepaddle.org.cn/lite
Apache License 2.0
6.92k stars 1.61k forks source link

Paddle-Lite的opencl预测性能不如cpu #5878

Closed github4529 closed 7 months ago

github4529 commented 3 years ago

由于RK3399Pro不支持NPU预测,使用了GPU(opencl)预测。结果跑paddle-lite-demo的图像检测,用cpu的时候平均140ms,用opencl平均却要350-400ms。

rk3399pro ubuntu18.04 paddle-lite编译./lite/tools/build_linux.sh --with_opencl=ON nb转化./opt --model_dir=./ssd \ --valid_targets=opencl \ --optimize_out_type=naive_buffer \ --optimize_out=model.nb.cl

paddle-bot-old[bot] commented 3 years ago

您好,我们已经收到了您的问题,会安排技术人员尽快解答您的问题,请耐心等待。请您再次检查是否提供了清晰的问题描述、复现代码、环境&版本、报错信息等。同时,您也可以通过查看官网文档常见问题历史Issue来寻求解答。祝您生活愉快~

Hi! We've received your issue and please be patient to get responded. We will arrange technicians to answer your questions as soon as possible. Please make sure that you have posted enough message to demo your request. You may also check out the APIFAQ and Github Issue to get the answer.Have a nice day!

github4529 commented 3 years ago

代码主要是paddle-lite-demo的armlinux下面的图像检测加了一段opencl的设置

  // NOTE: Use android gpu with opencl, you should ensure:
  //  first, [compile **cpu+opencl** paddlelite
  //    lib](https://github.com/PaddlePaddle/Paddle-Lite/blob/develop/docs/demo_guides/opencl.md);
  //  second, [convert and use opencl nb
  //    model](https://github.com/PaddlePaddle/Paddle-Lite/blob/develop/docs/user_guides/opt/opt_bin.md).

  bool is_opencl_backend_valid =
      ::IsOpenCLBackendValid(/*check_fp16_valid = false*/);
  std::cout << "is_opencl_backend_valid:" << is_opencl_backend_valid
            << std::endl;
  //  Uncomment code below to enable OpenCL
  /*
  if (is_opencl_backend_valid) {
    // Set opencl kernel binary.
    // Large addtitional prepare time is cost due to algorithm selecting and
    // building kernel from source code.
    // Prepare time can be reduced dramitically after building algorithm file
    // and OpenCL kernel binary on the first running.
    // The 1st running time will be a bit longer due to the compiling time if
    // you don't call `set_opencl binary_path_name` explicitly.
    // So call `set_opencl binary_path_name` explicitly is strongly recommended.
    // Make sure you have write permission of the binary path.
    // We strongly recommend each model has a unique binary name.
    const std::string bin_path = "/data/local/tmp/";
    const std::string bin_name = "lite_opencl_kernel.bin";
    config.set_opencl_binary_path_name(bin_path, bin_name);
    // opencl tune option
    // CL_TUNE_NONE: 0
    // CL_TUNE_RAPID: 1
    // CL_TUNE_NORMAL: 2
    // CL_TUNE_EXHAUSTIVE: 3
    const std::string tuned_path = "/data/local/tmp/";
    const std::string tuned_name = "lite_opencl_tuned.bin";
    config.set_opencl_tune(CL_TUNE_NORMAL, tuned_path, tuned_name);
    // opencl precision option
    // CL_PRECISION_AUTO: 0, first fp16 if valid, default
    // CL_PRECISION_FP32: 1, force fp32
    // CL_PRECISION_FP16: 2, force fp16
    config.set_opencl_precision(CL_PRECISION_FP16);
  } else {
    std::cout << "Unsupport opencl nb model." << std::endl;
    exit(1);
    // you can give backup cpu nb model instead
    // config.set_model_from_file(cpu_nb_model_dir);
  }
  */
github4529 commented 3 years ago

firefly@firefly:~/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo$ sudo ./run.sh -- The C compiler identification is GNU 7.5.0 -- The CXX compiler identification is GNU 7.5.0 -- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc -- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/aarch64-linux-gnu-g++ -- Check for working CXX compiler: /usr/bin/aarch64-linux-gnu-g++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- TARGET ARCH ABI: armv8 -- PADDLE LITE DIR: ../Paddle-Lite -- Found OpenMP_C: -fopenmp (found version "4.5") -- Found OpenMP_CXX: -fopenmp (found version "4.5") -- Found OpenMP: TRUE (found version "4.5")
-- Found OpenMP 4.5 -- OpenMP C flags: -fopenmp -- OpenMP CXX flags: -fopenmp -- OpenMP OpenMP_CXX_LIB_NAMES: gomp;pthread -- OpenMP OpenMP_CXX_LIBRARIES: /usr/lib/gcc/aarch64-linux-gnu/7/libgomp.so;/usr/lib/aarch64-linux-gnu/libpthread.so -- Found OpenCV: /usr/local (found version "3.4.11") -- OpenCV library status: -- version: 3.4.11 -- libraries: opencv_calib3d;opencv_core;opencv_dnn;opencv_features2d;opencv_flann;opencv_highgui;opencv_imgcodecs;opencv_imgproc;opencv_ml;opencv_objdetect;opencv_photo;opencv_shape;opencv_stitching;opencv_superres;opencv_video;opencv_videoio;opencv_videostab -- include path: /usr/local/include;/usr/local/include/opencv -- Configuring done -- Generating done -- Build files have been written to: /home/firefly/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo/build Scanning dependencies of target object_detection_demo [ 50%] Building CXX object CMakeFiles/object_detection_demo.dir/object_detection_demo.cc.o /home/firefly/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo/object_detection_demo.cc: In function ‘cv::Mat process(cv::Mat&, std::vector<std::__cxx11::basic_string >&, std::shared_ptr&)’: /home/firefly/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo/object_detection_demo.cc:244:41: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘std::vector::size_type {aka long unsigned int}’ [-Wformat=] printf("results: %d\n", results.size());


[100%] Linking CXX executable object_detection_demo
[100%] Built target object_detection_demo
Rga built version:06fc7c4 
[I  4/12  6:35:50.237 ...fly/Paddle-Lite/lite/core/device_info.cc:1097 Setup] ARM multiprocessors name: 
[I  4/12  6:35:50.237 ...fly/Paddle-Lite/lite/core/device_info.cc:1098 Setup] ARM multiprocessors number: 6
[I  4/12  6:35:50.237 ...fly/Paddle-Lite/lite/core/device_info.cc:1100 Setup] ARM multiprocessors ID: 0, max freq: 1416, min freq: 1416, cluster ID: 1, CPU ARCH: A53
[I  4/12  6:35:50.237 ...fly/Paddle-Lite/lite/core/device_info.cc:1100 Setup] ARM multiprocessors ID: 1, max freq: 1416, min freq: 1416, cluster ID: 1, CPU ARCH: A53
[I  4/12  6:35:50.237 ...fly/Paddle-Lite/lite/core/device_info.cc:1100 Setup] ARM multiprocessors ID: 2, max freq: 1416, min freq: 1416, cluster ID: 1, CPU ARCH: A53
[I  4/12  6:35:50.237 ...fly/Paddle-Lite/lite/core/device_info.cc:1100 Setup] ARM multiprocessors ID: 3, max freq: 1416, min freq: 1416, cluster ID: 1, CPU ARCH: A53
[I  4/12  6:35:50.237 ...fly/Paddle-Lite/lite/core/device_info.cc:1100 Setup] ARM multiprocessors ID: 4, max freq: 1800, min freq: 1800, cluster ID: 0, CPU ARCH: A72
[I  4/12  6:35:50.237 ...fly/Paddle-Lite/lite/core/device_info.cc:1100 Setup] ARM multiprocessors ID: 5, max freq: 1800, min freq: 1800, cluster ID: 0, CPU ARCH: A72
[I  4/12  6:35:50.237 ...fly/Paddle-Lite/lite/core/device_info.cc:1106 Setup] L1 DataCache size is: 
[I  4/12  6:35:50.238 ...fly/Paddle-Lite/lite/core/device_info.cc:1108 Setup] 32 KB
[I  4/12  6:35:50.238 ...fly/Paddle-Lite/lite/core/device_info.cc:1108 Setup] 32 KB
[I  4/12  6:35:50.238 ...fly/Paddle-Lite/lite/core/device_info.cc:1108 Setup] 32 KB
[I  4/12  6:35:50.238 ...fly/Paddle-Lite/lite/core/device_info.cc:1108 Setup] 32 KB
[I  4/12  6:35:50.238 ...fly/Paddle-Lite/lite/core/device_info.cc:1108 Setup] 32 KB
[I  4/12  6:35:50.238 ...fly/Paddle-Lite/lite/core/device_info.cc:1108 Setup] 32 KB
[I  4/12  6:35:50.238 ...fly/Paddle-Lite/lite/core/device_info.cc:1110 Setup] L2 Cache size is: 
[I  4/12  6:35:50.238 ...fly/Paddle-Lite/lite/core/device_info.cc:1112 Setup] 512 KB
[I  4/12  6:35:50.239 ...fly/Paddle-Lite/lite/core/device_info.cc:1112 Setup] 512 KB
[I  4/12  6:35:50.239 ...fly/Paddle-Lite/lite/core/device_info.cc:1112 Setup] 512 KB
[I  4/12  6:35:50.239 ...fly/Paddle-Lite/lite/core/device_info.cc:1112 Setup] 512 KB
[I  4/12  6:35:50.239 ...fly/Paddle-Lite/lite/core/device_info.cc:1112 Setup] 512 KB
[I  4/12  6:35:50.239 ...fly/Paddle-Lite/lite/core/device_info.cc:1112 Setup] 512 KB
[I  4/12  6:35:50.239 ...fly/Paddle-Lite/lite/core/device_info.cc:1114 Setup] L3 Cache size is: 
[I  4/12  6:35:50.239 ...fly/Paddle-Lite/lite/core/device_info.cc:1116 Setup] 0 KB
[I  4/12  6:35:50.239 ...fly/Paddle-Lite/lite/core/device_info.cc:1116 Setup] 0 KB
[I  4/12  6:35:50.239 ...fly/Paddle-Lite/lite/core/device_info.cc:1116 Setup] 0 KB
[I  4/12  6:35:50.240 ...fly/Paddle-Lite/lite/core/device_info.cc:1116 Setup] 0 KB
[I  4/12  6:35:50.240 ...fly/Paddle-Lite/lite/core/device_info.cc:1116 Setup] 0 KB
[I  4/12  6:35:50.240 ...fly/Paddle-Lite/lite/core/device_info.cc:1116 Setup] 0 KB
[I  4/12  6:35:50.240 ...fly/Paddle-Lite/lite/core/device_info.cc:1118 Setup] Total memory: 2004016KB
[I  4/12  6:35:50.250 ...refly/Paddle-Lite/lite/api/paddle_api.cc:50 IsOpenCLBackendValid] opencl_lib_found:1
[I  4/12  6:35:50.250 ...refly/Paddle-Lite/lite/api/paddle_api.cc:56 IsOpenCLBackendValid] dlsym_success:1
[I  4/12  6:35:50.250 ...-Lite/lite/backends/opencl/cl_runtime.cc:65 Init] opencl_lib_found:1
[I  4/12  6:35:50.250 ...-Lite/lite/backends/opencl/cl_runtime.cc:73 Init] dlsym_success:1
[I  4/12  6:35:50.253 ...-Lite/lite/backends/opencl/cl_runtime.cc:533 InitializePlatform] Platform extension: 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_icd 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
[I  4/12  6:35:50.253 ...-Lite/lite/backends/opencl/cl_runtime.cc:81 Init] is_platform_init:1
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:615 InitializeDevice] Using device: Mali-T860
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:641 InitializeDevice] CL_DEVICE_VERSION:OpenCL 1.2 v1.r18p0-01rel0.b3168fd4917d4853d85f2a426b70bb36
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:648 InitializeDevice] device_type:GPU
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:652 InitializeDevice] The chosen device has 4 compute units.
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:656 InitializeDevice] CL_DEVICE_MAX_CLOCK_FREQUENCY:5
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:666 InitializeDevice] The local memory size of the chosen device is 32.000000 KB.
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:673 InitializeDevice] CL_DEVICE_GLOBAL_MEM_CACHE_SIZE(KB):256.000000 KB.
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:681 InitializeDevice] CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE(KB):0.062500 KB.
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:688 InitializeDevice] CL_DEVICE_GLOBAL_MEM_SIZE(KB):2002800.000000 KB.
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:696 InitializeDevice] CL_DEVICE_MAX_WORK_GROUP_SIZE:256
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:700 InitializeDevice] CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS:3
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:705 InitializeDevice] max_work_item_sizes[0]:256
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:705 InitializeDevice] max_work_item_sizes[1]:256
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:705 InitializeDevice] max_work_item_sizes[2]:256
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:716 InitializeDevice] CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE:64.000000
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:727 InitializeDevice] The chosen device supports image processing.
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:731 InitializeDevice] CL_DEVICE_IMAGE2D_MAX_HEIGHT:65536
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:735 InitializeDevice] CL_DEVICE_IMAGE2D_MAX_WIDTH:65536
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:749 InitializeDevice] The chosen device supports the half data type.
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:757 InitializeDevice] CL_DEVICE_ADDRESS_BITS:64
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:761 InitializeDevice] CL_DRIVER_VERSION:1.2
[I  4/12  6:35:50.254 ...-Lite/lite/backends/opencl/cl_runtime.cc:89 Init] is_device_init:1
[I  4/12  6:35:50.255 ...-Lite/lite/backends/opencl/cl_runtime.cc:101 Init] set is_cl_runtime_initialized_ = true
[I  4/12  6:35:50.255 ...refly/Paddle-Lite/lite/api/paddle_api.cc:63 IsOpenCLBackendValid] opencl_valid:1
arm_release_ver of this libmali is 'r18p0-01rel0', rk_so_ver is '2'.is_opencl_backend_valid:1
[I  4/12  6:35:50.256 ...refly/Paddle-Lite/lite/api/paddle_api.cc:50 IsOpenCLBackendValid] opencl_lib_found:1
[I  4/12  6:35:50.256 ...refly/Paddle-Lite/lite/api/paddle_api.cc:56 IsOpenCLBackendValid] dlsym_success:1
[I  4/12  6:35:50.256 ...refly/Paddle-Lite/lite/api/paddle_api.cc:63 IsOpenCLBackendValid] opencl_valid:1
[I  4/12  6:35:50.256 ...refly/Paddle-Lite/lite/api/paddle_api.cc:278 set_opencl_binary_path_name] opencl binary path and file name:/home/firefly/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo/lite_opencl_kernel.bin
[I  4/12  6:35:50.256 ...refly/Paddle-Lite/lite/api/paddle_api.cc:50 IsOpenCLBackendValid] opencl_lib_found:1
[I  4/12  6:35:50.257 ...refly/Paddle-Lite/lite/api/paddle_api.cc:56 IsOpenCLBackendValid] dlsym_success:1
[I  4/12  6:35:50.257 ...refly/Paddle-Lite/lite/api/paddle_api.cc:63 IsOpenCLBackendValid] opencl_valid:1
[I  4/12  6:35:50.257 ...-Lite/lite/backends/opencl/cl_runtime.cc:842 set_auto_tune] tuned_file.size():99, tuned_file:/home/firefly/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo/lite_opencl_tuned.bin
[I  4/12  6:35:50.257 ...-Lite/lite/backends/opencl/cl_runtime.cc:846 set_auto_tune] Load tuned file: /home/firefly/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo/lite_opencl_tuned.bin
[I  4/12  6:35:50.258 ...refly/Paddle-Lite/lite/api/paddle_api.cc:296 set_opencl_tune] set opencl_tune_mode: CL_TUNE_NORMAL, lws_repeats:4
[I  4/12  6:35:50.258 ...refly/Paddle-Lite/lite/api/paddle_api.cc:299 set_opencl_tune] tuned file path & name:/home/firefly/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo/lite_opencl_tuned.bin
[I  4/12  6:35:50.258 ...refly/Paddle-Lite/lite/api/paddle_api.cc:50 IsOpenCLBackendValid] opencl_lib_found:1
[I  4/12  6:35:50.259 ...refly/Paddle-Lite/lite/api/paddle_api.cc:56 IsOpenCLBackendValid] dlsym_success:1
[I  4/12  6:35:50.259 ...refly/Paddle-Lite/lite/api/paddle_api.cc:63 IsOpenCLBackendValid] opencl_valid:1
[I  4/12  6:35:50.259 ...refly/Paddle-Lite/lite/api/paddle_api.cc:311 set_opencl_precision] set opencl precision: CL_PRECISION_FP16
[I  4/12  6:35:50.259 ...fly/Paddle-Lite/lite/core/device_info.cc:917 RequestPowerHighMode] Request thread num: 6, exceed the big cores size: 2, truncate thread num to 2
[W  4/12  6:35:50.261 ...e-Lite/lite/model_parser/model_parser.cc:799 LoadModelFbsFromFile] warning: the version of opt that transformed this model is not consistent with current Paddle-Lite version.
      version of opt:v2.8-rc
      version of current Paddle-Lite:6d6a6c7
[I  4/12  6:35:50.350 ...-Lite/lite/backends/opencl/cl_runtime.cc:218 CheckFromPrecompiledBinary] Load opencl kernel bin file: /home/firefly/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo/lite_opencl_kernel.bin
iter 0 cost: 511.756989 ms
iter 1 cost: 683.297974 ms
iter 2 cost: 297.579010 ms
iter 3 cost: 318.897003 ms
iter 4 cost: 309.869995 ms
iter 5 cost: 289.164001 ms
iter 6 cost: 320.316010 ms
iter 7 cost: 325.145996 ms
iter 8 cost: 290.661987 ms
iter 9 cost: 323.444000 ms
warmup: 10 repeat: 10, average: 367.013297 ms, max: 683.297974 ms, min: 289.164001 ms
results: 3
[0] bicycle - 0.991699 0.133789,0.233643,0.734375,0.771484
[1] car - 0.969727 0.612305,0.138062,0.900391,0.293945
[2] dog - 0.986328 0.156860,0.331299,0.443848,0.919922
Preprocess time: 5.880000 ms
Prediction time: 367.013297 ms
Postprocess time: 0.360000 ms

[I  4/12  6:36: 4. 10 ...e-Lite/lite/backends/opencl/cl_context.h:43 ~CLContext] release cl::Program, cl::Kernel finished.
[I  4/12  6:36: 4. 17 ...-Lite/lite/backends/opencl/cl_runtime.cc:378 SaveProgram] OpenCL Program existed:/home/firefly/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo/lite_opencl_kernel.bin
[I  4/12  6:36: 4. 17 ...-Lite/lite/backends/opencl/cl_runtime.cc:403 SaveTuned] OpenCL Tuned file existed:/home/firefly/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo/lite_opencl_tuned.bin
[I  4/12  6:36: 4. 17 ...-Lite/lite/backends/opencl/cl_runtime.cc:37 ~CLRuntime] is_cl_runtime_initialized_:1
daming5432 commented 3 years ago

你好,对于rk3399上gpu慢的问题有两方面原因:1、目前我们确实没有针对mali gpu 做进一步的优化。2 rk3399上的mali gpu型号较低,对比cpu优势不明显。我们正在针对mali gpu做进一步的优化,大概在2.9会有较大的速度提升。

github4529 commented 3 years ago

你好,对于rk3399上gpu慢的问题有两方面原因:1、目前我们确实没有针对mali gpu 做进一步的优化。2 rk3399上的mali gpu型号较低,对比cpu优势不明显。我们正在针对mali gpu做进一步的优化,大概在2.9会有较大的速度提升。

你好,这就是说在rk3399上,图像检测cpu140ms,gpu350ms的速度是正常的吗,我以为即使没太大优势,应该也不会慢这么多,有点怀疑是不是正确部署了opencl

daming5432 commented 3 years ago

我看你跑的命令里面开启了gpu 的tuning,应该跑的没啥问题。我们有在rk3399上测试过其他模型,确实也有慢两三倍的情况,目前正在解决这种问题

github4529 commented 3 years ago

我看你跑的命令里面开启了gpu 的tuning,应该跑的没啥问题。我们有在rk3399上测试过其他模型,确实也有慢两三倍的情况,目前正在解决这种问题

目前paddle-lite有没有比较适合处理视频流的板子,可能达到30帧的话,要在30ms以内? 打算使用paddle-lite,yolov3_mobilev1。 请问在你们的测试中,有没有表现比较好的gpu/npu/xpu等的板子可以推荐,谢谢 本来还打算测试下树莓派,不过好像性能比rk3399更低

daming5432 commented 3 years ago

推荐rk1808、rv1126、rv1109。

daming5432 commented 3 years ago

我们这边有试过mobilentv1_ssd,速度可以

github4529 commented 3 years ago

我们这边有试过mobilentv1_ssd,速度可以

好的,多谢

NPU组网吗,速度能在30ms内

daming5432 commented 3 years ago

对 npu组网,你可以试一下,之前mobilenetv1_ssd是可以的哦