天天看点

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

作者:爱编程的查理

最近很多手机厂商在宣传AI 手机的概念, 那么AI 手机怎么来测量呢? 到底哪家的AI手机最强大? 现在来看似乎并没有统一的测量标准,刚好我最近在研究手机运行大模型的时候,发现腾讯公司开源的NCNN框架, 这是一个高质量的专门针对移动平台的开源的神经网络推理框架; 进一步研究还发现, 这个NCNN 框架还有一个基准框架benchnn, 这个基准测试,很适合用来测量手机的性能, 尤其是针对当前火热的AI 手机的概念, 完全可以用这个NCNN的基准测试结果来衡量。

因此记录下来ncnn的基准测试执行方法, 并以骁龙8 第三代处理器为对象,在红米手机K70 Pro 上完成测试。

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强
AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强
AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

下面请看详细的评测方法和结果。

首先, 来了解(回顾)一下腾讯的这个ncnn框架。

一、什么是ncnn

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

ncnn

ncnn是腾讯优图实验室开源的、专门针对移动平台优化的高性能神经网络推理框架,项目地址 github.com/Tencent/ncnn。

这里是腾讯的官方介绍:

ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架。 ncnn 从设计之初深刻考虑手机端的部署和使用。 无第三方依赖,跨平台,手机端 cpu 的速度快于目前所有已知的开源框架。 基于 ncnn,开发者能够将深度学习算法轻松移植到手机端高效执行, 开发出人工智能 APP,将 AI 带到你的指尖。 ncnn 目前已在腾讯多款应用中使用,如:QQ,Qzone,微信,天天 P 图等。

功能方面, ncnn也是非常强大,这里的功能点很多,简单罗列:

功能概述

支持卷积神经网络,支持多输入和多分支结构,可计算部分分支

无任何第三方库依赖,不依赖 BLAS/NNPACK 等计算框架

纯 C++ 实现,跨平台,支持 Android / iOS 等

ARM Neon 汇编级良心优化,计算速度极快

精细的内存管理和数据结构设计,内存占用极低

支持多核并行计算加速,ARM big.LITTLE CPU 调度优化

支持基于全新低消耗的 Vulkan API GPU 加速

可扩展的模型设计,支持 8bit 量化 和半精度浮点存储,可导入 caffe/pytorch/mxnet/onnx/darknet/keras/tensorflow(mlir) 模型

支持直接内存零拷贝引用加载网络模型

可注册自定义层实现并扩展

当然,这是一个供app使用的底层框架, 一般人在使用app的时候是感知不到这个框架存在的,但是对于开发者而言,借助于NCNN框架,可以很方便的开发具备AI 功能的App, 下面是一些借助于ncnn的项目列表,大家可以参考看看有没有自己能用到的项目

GitHub - EdVince/ClothingTransfer-NCNN: CT-Net, OpenPose, LIP_JPPNet, DensePose running with ncnn⚡服装迁移/虚拟试穿⚡ClothingTransfer/Virtual-Try-On⚡: 基于ncnn实现的服装迁移、虚拟试穿项目, 可以让模特试穿不同的服装,

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

目标检测类:

这些app就很多了, 基本的架构就是yolox/opencv+ncnn, 目标检测算法使用yolo, 在安卓手机上运行的时候就借助于NCNN, 这里的项目特别多,截图如下:

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

可以看到有目标检测,实时物体检测,人脸检测,人手检测,实时疲劳驾驶检测,口罩检测,居然还有瞳孔定位,有兴趣的同学可以到这个网址进一步查看 https://github.com/zchrissirhcz/awesome-ncnn

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

超级分辨率类:

借助于ncnn框架实现对图片/视频的分辨率提升,

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

这里重点推荐Waifu2x-Extension-GUI 这个项目, 这个项目可以实现对视频、图像和 GIF 放大/放大(超分辨率)和视频帧插值。通过 Waifu2x、Real-ESRGAN、Real-CUGAN、RTX 视频超分辨率 VSR、SRMD、RealSR、Anime4K、RIFE、IFRNet、CAIN、DAIN 和 ACNet 实现。

界面很朴素, 但是功能很强大:

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

主页界面

像素提升(upscale):

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强
AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

图片放大:

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

居然还有gif 格式的放大:

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

还有视频的放大:

原始视频(360P):

视频加载中...

放大视频(1440P):

视频加载中...

怎么样,有没有兴趣试用一下这个工具? 国产软件,值得推荐啊!

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强
AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强
AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

二、为什么选用NCNN 基准测试benchnn来测量AI 手机?

前面讲了很多ncnn的例子,目的是介绍ncnn的强大和应用的广泛性, 实际上作为2017年国内最先开源的神经网络推理框架, ncnn确实是有很多项目在使用,那么为什么就选用ncnn作为测验AI 手机的标准呢? 其实主要还是ncnn 这个框架自身的特性,

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

先来看看腾讯的文档:

功能概述

支持卷积神经网络,支持多输入和多分支结构,可计算部分分支

无任何第三方库依赖,不依赖 BLAS/NNPACK 等计算框架

纯 C++ 实现,跨平台,支持 Android / iOS 等

ARM Neon 汇编级良心优化,计算速度极快

精细的内存管理和数据结构设计,内存占用极低

支持多核并行计算加速,ARM big.LITTLE CPU 调度优化

支持基于全新低消耗的 Vulkan API GPU 加速

可扩展的模型设计,支持 8bit 量化 和半精度浮点存储,可导入 caffe/pytorch/mxnet/onnx/darknet/keras/tensorflow(mlir) 模型

支持直接内存零拷贝引用加载网络模型

可注册自定义层实现并扩展

从这上面的介绍我们可以看到, ncnn框架整体上没有第三方的依赖,非常的纯净, 而且对于内存管理、ARM Neon 架构有着非常极致的优化, 这一点国外的开发人员也比较羡慕~~~

另外一点是,ncnn的兼容性非常之好, 几乎支持所有的平台:

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

比较具体的支持列表, 华为的鸿蒙OS 赫然在列,强!

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强
AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

基于此, 选用ncnn框架来衡量AI 手机的强弱,就很好理解了, 基本上就接受性和广泛使用程度而言, 目前除了onnx 之外,就只有ncnn了, 这里我们当然要选用ncnn了(向nihui大佬致敬~~)

三、ncnn 基准测试benchnn语法

关于ncnn的本地化编译, 我是在安卓系统上编译的,具体的方法是通过termux 的linux 模拟环境里面, 编译ncnn框架, 具体的做法参见学点AI知识:安卓手机上编译运行腾讯的NCNN库

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

编译之后, 就可以使用benchnn 这个工具了, 语法如下:

root@localhost:~/ncnn/benchmark# ../build/benchmark/benchncnn --help

Usage: benchncnn [loop count] [num threads] [powersave] [gpu device] [cooling down] [(key=value)...]

param=model.param

shape=[227,227,3],...

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

因为我们是想测验骁龙8 Gen 3这款处理器, 因此先来了解一下这个CPU 的基本信息。

四、骁龙8 Gen 3 基本信息

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

CPU 基本信息:

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

CPU Qualcomm® Kryo™ CPU

• 64-bit Architecture

• 1 Prime core, up to 3.4 GHz**

• Arm Cortex-X4 technology

• 5 Performance cores, up to 3.2 GHz*

• 2 Efficiency cores, up to 2.3 GHz*

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

高通官网的GPU 信息:

Qualcomm® AI Engine

• Qualcomm® Adreno™ GPU

• Qualcomm® Kryo™ CPU

• Qualcomm® Hexagon™ NPU:

  1. Fused AI accelerator architecture
  2. Hexagon scalar, vector, and tensor accelerators
  3. Hexagon Direct Link
  4. Upgraded Micro Tile Inferencing
  5. Upgraded power delivery system
  6. Support for mix precision (INT8+INT16)
  7. Support for all precisions (INT4, INT8, INT16, FP16)

GPU 信息:

adb shell dumpsys SurfaceFlinger | grep GLES           

结果:

------------RE GLES------------

GLES: Qualcomm, Adreno (TM) 750, OpenGL ES 3.2 [email protected] (GIT@62c1f322ce, Id0077aad60, 1700555917) (Date:11/21/23)

五、CPU 模式运行benchnn

这是一个例子,使用4个线程,8次循环(loop), 使用CPU(第四个参数gpu 为-1):

root@localhost:~/ncnn/benchmark# ../build/benchmark/benchncnn 8 4 0 -1 1
loop_count = 8
num_threads = 4
powersave = 0
gpu_device = -1
cooling_down = 1
squeezenet 						min = 2.36 		max = 2.50 		avg = 2.41
squeezenet_int8 			min = 1.96 		max = 2.06 		avg = 2.00
mobilenet 						min = 3.95 		max = 8.71 		avg = 4.64
mobilenet_int8 				min = 2.23 		max = 2.36 		avg = 2.30
mobilenet_v2 					min = 2.80 		max = 2.98 		avg = 2.89
mobilenet_v3 					min = 2.63 		max = 2.80 		avg = 2.72
shufflenet 						min = 2.00 		max = 2.20 		avg = 2.10
shufflenet_v2 				min = 1.81 		max = 1.98 		avg = 1.87
mnasnet 							min = 2.87 		max = 3.04 		avg = 2.94
proxylessnasnet 			min = 3.23 		max = 3.42 		avg = 3.31
efficientnet_b0 			min = 5.33 		max = 5.63 		avg = 5.44
efficientnetv2_b0 		min = 6.27 		max = 6.65 		avg = 6.42
regnety_400m 					min = 5.70 		max = 5.83 		avg = 5.79
blazeface 						min = 0.71 		max = 1.52 		avg = 1.09
googlenet 						min = 9.06 		max = 9.45 		avg = 9.19
googlenet_int8 				min = 7.16 		max = 7.39 		avg = 7.27
resnet18 							min = 6.64 		max = 6.84 		avg = 6.74
resnet18_int8 				min = 4.89 		max = 5.07 		avg = 4.95
alexnet 							min = 7.51 		max = 7.60 		avg = 7.56
vgg16 								min = 36.01 	max = 36.30 	avg = 36.13
vgg16_int8 						min = 33.57 	max = 34.12 	avg = 33.81
resnet50 							min = 18.57 	max = 18.96 	avg = 18.75
resnet50_int8 				min = 10.55 	max = 10.81 	avg = 10.64
squeezenet_ssd 				min = 7.28 		max = 7.68 		avg = 7.47
squeezenet_ssd_int8 	min = 6.14 		max = 6.82 		avg = 6.43
mobilenet_ssd 				min = 8.54 		max = 9.06 		avg = 8.66
mobilenet_ssd_int8 		min = 4.93 		max = 5.14 		avg = 5.02
mobilenet_yolo 				min = 20.36 	max = 22.02 	avg = 20.80
mobilenetv2_yolov3 		min = 11.46 	max = 11.61 	avg = 11.53
yolov4-tiny 					min = 15.20 	max = 15.44 	avg = 15.33
nanodet_m 						min = 5.14 		max = 5.57 		avg = 5.28
yolo-fastest-1.1 			min = 2.40 		max = 2.77 		avg = 2.52
yolo-fastestv2 				min = 2.00 		max = 2.28 		avg = 2.09
vision_transformer		min = 243.12 	max = 248.61 	avg = 244.42
FastestDet 						min = 1.88 		max = 2.12 		avg = 1.97           

既然CPU 有8个核心,那么就来8个线程来跑一跑:

root@localhost:~/ncnn/benchmark# ../build/benchmark/benchncnn 8 8 0 -1 1
loop_count = 8
num_threads = 8
powersave = 0
gpu_device = -1
cooling_down = 1
squeezenet min = 7.35 max = 8.88 avg = 7.65
squeezenet_int8 min = 4.28 max = 4.41 avg = 4.32
mobilenet min = 6.11 max = 7.43 avg = 6.43
mobilenet_int8 min = 4.55 max = 4.75 avg = 4.61
mobilenet_v2 min = 5.83 max = 6.54 avg = 6.01
mobilenet_v3 min = 4.64 max = 4.96 avg = 4.76
shufflenet min = 5.65 max = 7.19 avg = 6.00
shufflenet_v2 min = 7.20 max = 9.83 avg = 7.83
mnasnet min = 4.94 max = 6.56 avg = 5.33
proxylessnasnet min = 6.46 max = 9.66 avg = 7.88
efficientnet_b0 min = 9.32 max = 10.82 avg = 9.68
efficientnetv2_b0 min = 11.19 max = 14.87 avg = 12.11
regnety_400m min = 11.15 max = 11.73 avg = 11.31
blazeface min = 2.12 max = 2.65 avg = 2.31
googlenet min = 17.73 max = 21.76 avg = 18.90
googlenet_int8 min = 12.51 max = 13.63 avg = 12.78
resnet18 min = 9.45 max = 28.39 avg = 12.39
resnet18_int8 min = 9.21 max = 9.61 avg = 9.41
alexnet min = 10.60 max = 12.25 avg = 11.10
vgg16 min = 53.30 max = 88.63 avg = 59.98
vgg16_int8 min = 59.42 max = 95.09 avg = 66.68
resnet50 min = 26.97 max = 29.22 avg = 27.72
resnet50_int8 min = 18.51 max = 25.78 avg = 20.98
squeezenet_ssd min = 12.53 max = 13.09 avg = 12.75
squeezenet_ssd_int8 min = 13.05 max = 15.11 avg = 13.47
mobilenet_ssd min = 14.60 max = 26.02 avg = 16.76
mobilenet_ssd_int8 min = 8.19 max = 8.52 avg = 8.31
mobilenet_yolo min = 36.56 max = 72.06 avg = 43.64
mobilenetv2_yolov3 min = 16.56 max = 29.45 avg = 19.33
yolov4-tiny min = 20.13 max = 23.69 avg = 22.23
nanodet_m min = 10.30 max = 13.62 avg = 11.38
yolo-fastest-1.1 min = 4.22 max = 5.33 avg = 4.43
yolo-fastestv2 min = 4.71 max = 6.93 avg = 5.28
vision_transformer min = 339.24 max = 460.96 avg = 393.47
FastestDet min = 4.53 max = 6.98 avg = 5.29           

六、GPU 模式来运行benchnn

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

对于GPU,NCNN使用了Vulkan API, 为了确保Vulkan是否正确配置,先运行一下vulkaninfo 这个基本命令:

root@localhost:~/ncnn/benchmark# vulkaninfo --summary
WARNING: [Loader Message] Code 0 : terminator_CreateInstance: Received return code -3 from call to vkCreateInstance in ICD /usr/lib/aarch64-linux-gnu/libvulkan_virtio.so. Skipping this driver.
'DISPLAY' environment variable not set... skipping surface info
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
==========
VULKANINFO
==========
Vulkan Instance Version: 1.3.275
Instance Extensions: count = 23
-------------------------------
VK_EXT_acquire_drm_display : extension revision 1
VK_EXT_acquire_xlib_display : extension revision 1
VK_EXT_debug_report : extension revision 10
VK_EXT_debug_utils : extension revision 2
VK_EXT_direct_mode_display : extension revision 1
VK_EXT_display_surface_counter : extension revision 1
VK_EXT_surface_maintenance1 : extension revision 1
VK_EXT_swapchain_colorspace : extension revision 4
VK_KHR_device_group_creation : extension revision 1
VK_KHR_display : extension revision 23
VK_KHR_external_fence_capabilities : extension revision 1
VK_KHR_external_memory_capabilities : extension revision 1
VK_KHR_external_semaphore_capabilities : extension revision 1
VK_KHR_get_display_properties2 : extension revision 1
VK_KHR_get_physical_device_properties2 : extension revision 2
VK_KHR_get_surface_capabilities2 : extension revision 1
VK_KHR_portability_enumeration : extension revision 1
VK_KHR_surface : extension revision 25
VK_KHR_surface_protected_capabilities : extension revision 1
VK_KHR_wayland_surface : extension revision 6
VK_KHR_xcb_surface : extension revision 6
VK_KHR_xlib_surface : extension revision 6
VK_LUNARG_direct_driver_loading : extension revision 1
Instance Layers: count = 2
--------------------------
VK_LAYER_MESA_device_select Linux device selection layer 1.3.211 version 1
VK_LAYER_MESA_overlay Mesa Overlay layer 1.3.211 version 1
Devices:
========
GPU0:
apiVersion = 1.3.274
driverVersion = 0.0.1
vendorID = 0x10005
deviceID = 0x0000
deviceType = PHYSICAL_DEVICE_TYPE_CPU
deviceName = llvmpipe (LLVM 17.0.6, 128 bits)
driverID = DRIVER_ID_MESA_LLVMPIPE
driverName = llvmpipe
driverInfo = Mesa 24.0.5-1ubuntu1 (LLVM 17.0.6)
conformanceVersion = 1.3.1.1
deviceUUID = 6d657361-3234-2e30-2e35-xxxxxxxxxxxx
driverUUID = 6c6c766d-7069-7065-5555-xxxxxxxxxxxx
root@localhost:~/ncnn/benchmark#           

上面展现的是CPU的推理,现在看看CPU模式下(第四个参数gpu 为0,使用第1个GPU),benchnn的结果怎么样:

root@localhost:~/ncnn/benchmark# ../build/benchmark/benchncnn 8 4 0 0 1
loop_count = 8
num_threads = 4
powersave = 0
gpu_device = 0
cooling_down = 1
squeezenet		   		min = 2.73 		max = 2.83 		avg = 2.79
squeezenet_int8  		min = 2.27 		max = 2.37 		avg = 2.32
mobilenet 		  	 	min = 4.56 		max = 4.64 		avg = 4.60
mobilenet_int8   		min = 2.61 		max = 2.77 		avg = 2.67
mobilenet_v2     		min = 3.26 		max = 3.49 		avg = 3.38
mobilenet_v3     		min = 3.02 		max = 3.27 		avg = 3.14
shufflenet       		min = 2.31 		max = 2.61 		avg = 2.46
shufflenet_v2    		min = 2.11 		max = 2.29 		avg = 2.20
mnasnet          		min = 3.37 		max = 3.51 		avg = 3.43
proxylessnasnet  		min = 3.73 		max = 4.07 		avg = 3.88
efficientnet_b0   	min = 6.17 		max = 6.56 		avg = 6.30
efficientnetv2_b0 	min = 7.21 		max = 7.49 		avg = 7.35
regnety_400m      	min = 6.71 		max = 6.97 		avg = 6.80
blazeface         	min = 0.82 		max = 0.95 		avg = 0.86
googlenet 					min = 10.44 	max = 10.74 	avg = 10.55
googlenet_int8 			min = 8.25 		max = 8.41 		avg = 8.32
resnet18 						min = 7.47 		max = 7.69 		avg = 7.54
resnet18_int8 			min = 5.55 		max = 5.78 		avg = 5.63
alexnet 						min = 8.20 		max = 8.41 		avg = 8.27
vgg16 							min = 40.02 	max = 40.73 	avg = 40.42
vgg16_int8 					min = 37.65 	max = 42.27 	avg = 39.12
resnet50 						min = 21.32 	max = 21.54 	avg = 21.43
resnet50_int8 			min = 12.07 	max = 12.38 	avg = 12.22
squeezenet_ssd 			min = 8.20 		max = 8.63 		avg = 8.41
squeezenet_ssd_int8 min = 6.88 		max = 7.73 		avg = 7.27
mobilenet_ssd 			min = 9.83 		max = 10.27 	avg = 9.93
mobilenet_ssd_int8  min = 5.69 		max = 5.91 		avg = 5.75
mobilenet_yolo 			min = 23.73 	max = 24.30 	avg = 24.01
mobilenetv2_yolov3  min = 13.11 	max = 13.43 	avg = 13.24
yolov4-tiny 				min = 17.56 	max = 19.04 	avg = 17.80
nanodet_m 					min = 6.12 		max = 6.57 		avg = 6.28
yolo-fastest-1.1	  min = 2.76 		max = 3.08 		avg = 2.86
yolo-fastestv2 			min = 2.28 		max = 2.44 		avg = 2.36
vision_transformer  min = 284.04 	max = 290.75 	avg = 287.25
FastestDet 					min = 2.21 		max = 2.49 		avg = 2.31           
AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

跑一个8线程的GPU推理:

root@localhost:~/ncnn/benchmark# ../build/benchmark/benchncnn 8 8 0 1 1
loop_count = 8
num_threads = 8
powersave = 0
gpu_device = 1
cooling_down = 1
squeezenet 						min = 4.19 			max = 12.36 		avg = 7.60
squeezenet_int8 			min = 5.13			max = 6.05 			avg = 5.59
mobilenet 						min = 6.64			max = 6.78 			avg = 6.70
mobilenet_int8 				min = 4.24	 		max = 7.84 			avg = 5.12
mobilenet_v2				  min = 14.45 		max = 17.51 		avg = 15.52
mobilenet_v3 					min = 4.72 			max = 4.97 			avg = 4.84
shufflenet 						min = 4.27 			max = 6.32 			avg = 4.75
shufflenet_v2 				min = 5.09 			max = 5.29 			avg = 5.16
mnasnet 							min = 4.74 			max = 5.07 			avg = 4.91
proxylessnasnet 			min = 6.64 			max = 7.04 			avg = 6.77
efficientnet_b0 			min = 10.49 		max = 12.27 		avg = 11.07
efficientnetv2_b0 		min = 21.73 		max = 23.92 		avg = 22.20
regnety_400m 					min = 15.11 		max = 16.45 		avg = 15.46
blazeface 						min = 2.04 			max = 3.32 			avg = 2.30
googlenet 						min = 15.56 		max = 16.37 		avg = 15.82
googlenet_int8 				min = 14.33 		max = 15.88 		avg = 14.93
resnet18 							min = 10.93 		max = 11.40 		avg = 11.15
resnet18_int8 				min = 9.07 			max = 9.56 			avg = 9.30
alexnet 							min = 11.36 		max = 11.91 		avg = 11.54
vgg16 								min = 65.51 		max = 82.50 		avg = 69.47
vgg16_int8 						min = 56.88 		max = 61.46 		avg = 58.33
resnet50 							min = 27.11 		max = 34.45 		avg = 30.53
resnet50_int8 				min = 18.92 		max = 20.28 		avg = 19.16
squeezenet_ssd 				min = 12.00 		max = 16.68 		avg = 13.26
squeezenet_ssd_int8 	min = 13.03 		max = 16.40 		avg = 14.04
mobilenet_ssd 				min = 13.31 		max = 15.48 		avg = 14.03
mobilenet_ssd_int8 		min = 9.52 			max = 12.70 		avg = 10.24
mobilenet_yolo 				min = 45.97 		max = 105.43 		avg = 76.82
mobilenetv2_yolov3 		min = 18.20 		max = 21.84 		avg = 20.05
yolov4-tiny 					min = 24.67 		max = 33.68 		avg = 29.67
nanodet_m 						min = 13.36 		max = 14.26 		avg = 13.87
yolo-fastest-1.1 			min = 6.96 			max = 7.62 			avg = 7.17
yolo-fastestv2 				min = 4.16 			max = 7.57 			avg = 4.66
vision_transformer 		min = 380.71 		max = 469.66 		avg = 419.79
FastestDet 						min = 4.61 			max = 4.87 			avg = 4.69
root@localhost:~/ncnn/benchmark#           

执行过程:

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

七、结论

写的太长了, 先简单说一下结论吧, 下一篇再来比较各个芯片之间的强弱:

CPU 模式性能大于 GPU模式

这个其实有点超乎意料, 但是请看第一个CPU模式下执行的结果:

root@localhost:~/ncnn/benchmark# ../build/benchmark/benchncnn 8 4 0 -1 1
loop_count = 8
num_threads = 4
powersave = 0
gpu_device = -1
cooling_down = 1
squeezenet min = 2.36 max = 2.50 avg = 2.41           

再来看看GPU模式下的执行结果

root@localhost:~/ncnn/benchmark# ../build/benchmark/benchncnn 8 4 0 0 1
loop_count = 8
num_threads = 4
powersave = 0
gpu_device = 0
cooling_down = 1
squeezenet min = 2.73 max = 2.83 avg = 2.79           

CPU 模式下执行squeezenet的平均结果为2.41, 而GPU 模式下的平均结果为2.79, CPU胜✌️。

至于其他项目的对比, 也是一样, 这个其实可以理解, 毕竟骁龙8 Gen 3 有8核CPU, 而 GPU 只有一个, 而且ncnn并没有特别优化高通的这款GPU。

AI手机谁最强?腾讯NCNN基准测试来测量!高通骁龙8第三代确实强

本文主要是对高通骁龙8 Gen3的CPU和GPU 模式下的成绩做对比,算是自己和自己比,横向对比,后续会继续对高通骁龙8 Gen3的纵向对比, 看看和其他处理器相比怎么样。

#大模型##什么是AI手机##让AI触手可及##红米##骁龙8gen3##小米14全球首发骁龙8Gen3##高通##高通骁龙8 Gen3跑分曝光##手机评测##你觉得AI手机是噱头还是未来?##头条创作挑战赛##AI科技潮玩##谈论AI技术#

继续阅读