Please note that you should transform caffe model or others into anakin model with the help of external converter ->
The following convolutional neural networks are tested with both Anakin and TenorRT5 on GPU.
You can use pretrained caffe model or the model trained by youself.
CPU: Intel(R) Xeon(R) CPU 5117 @ 2.0GHz
GPU: Tesla P4
cuda: CUDA8
cuDNN: v7
- Time:warmup 10,running 1000 times to get average time
- Latency (
ms) and Memory(MB) of different batch
The counterpart of Anakin is the acknowledged high performance inference engine NVIDIA TensorRT 5 , The models which TensorRT 5 doesn't support we use the custom plugins to support.
| Batch_Size | RT latency FP32(ms) | Anakin2 Latency FP32 (ms) | RT Memory (MB) | Anakin2 Memory (MB) |
|---|
| 1 | 8.52532 | 8.2387 | 1090.89 | 702 |
| 2 | 14.1209 | 13.8772 | 1056.02 | 768.76 |
| 4 | 24.4529 | 24.3391 | 1002.17 | 840.54 |
| 8 | 46.7956 | 46.3309 | 1098.98 | 935.61 |
| Batch_Size | RT latency FP32(ms) | Anakin2 Latency FP32 (ms) | RT Latency INT8 (ms) | Anakin2 Latency INT8 (ms) | RT Memory FP32(MB) | Anakin2 Memory FP32(MB) |
|---|
| 1 | 4.6447 | 3.0863 | 1.78892 | 1.61537 | 1134.88 | 311.25 |
| 2 | 6.69187 | 5.13995 | 2.71136 | 2.70022 | 1108.86 | 382 |
| 4 | 11.1943 | 9.20513 | 4.16771 | 4.77145 | 885.96 | 406.86 |
| 8 | 19.8769 | 17.1976 | 6.2798 | 8.68197 | 813.84 | 532.61 |
| Batch_Size | RT latency (ms) | Anakin2 Latency (ms) | RT Latency INT8 (ms) | Anakin2 Latency INT8 (ms) | RT Memory (MB) | Anakin2 Memory (MB) |
|---|
| 1 | 9.98695 | 5.44947 | 2.81031 | 2.74399 | 1159.16 | 500.5 |
| 2 | 17.3489 | 8.85699 | 4.8641 | 4.69473 | 1158.73 | 492 |
| 4 | 20.6198 | 16.8214 | 7.11608 | 8.45324 | 1021.68 | 541.08 |
| 8 | 31.9653 | 33.5015 | 11.2403 | 15.4336 | 914.49 | 611.54 |
CPU: Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz with HT, for FP32 test
CPU: Intel(R) Xeon(R) Gold 6271 CPU @ 2.60GHz with HT, for INT8 test
System: CentOS 6.3 with GCC 4.8.2, for benchmark between Anakin and Intel Caffe
- All test enable
8 thread parallel
- Time:warmup 10,running 200 times to get average time
The counterpart of Anakin is Intel Cafe(1.1.6) with mklml.
| Net_Name | Batch_Size | Anakin2 Latency(2650v4) fp32 (ms) | caffe Latency(2650v4) fp32 (ms) | Anakin2 Latency int8(6271) (ms) |
|---|
| resnet50 | 1 | 20.6201 | 24.1369 | 3.20866 |
| resnet50 | 2 | 39.2286 | 43.1096 | 5.44311 |
| resnet50 | 4 | 77.1392 | 81.8814 | 9.93424 |
| resnet50 | 8 | 152.941 | 158.321 | 19.5618 |
| vgg16 | 1 | 55.6132 | 70.532 | 15.3181 |
| vgg16 | 2 | 96.5034 | 131.451 | 22.5082 |
| vgg16 | 4 | 180.479 | 247.926 | 37.2974 |
| vgg16 | 8 | 346.619 | 485.44 | 67.6682 |
| mobilenetv1 | 1 | 3.98104 | 5.42775 | 0.926546 |
| mobilenetv1 | 2 | 7.27079 | 9.16058 | 1.35007 |
| mobilenetv1 | 4 | 14.4029 | 16.2505 | 2.37271 |
| mobilenetv1 | 8 | 29.1651 | 29.8381 | 3.75992 |
| vgg16_ssd | 1 | 125.948 | 143.412 | |
| vgg16_ssd | 2 | 247.242 | 266.22 | |
| vgg16_ssd | 4 | 488.377 | 510.978 | |
| vgg16_ssd | 8 | 972.762 | 995.407 | |
| mobilenetv2 | 1 | 3.78504 | 23.0066 | |
| mobilenetv2 | 2 | 7.24622 | 65.9301 | |
| mobilenetv2 | 4 | 13.7638 | 85.3893 | |
| mobilenetv2 | 8 | 28.4093 | 131.669 | |
CPU: Kirin 980
CPU: Snapdragon 652
CPU: Snapdragon 855
CPU: RK3399
- Compile circumstance: Android ndk cross compile,gcc 4.9,enable neon
- Time:warmup 10,running 10 times to get average time
- Note: 1、shufflenetv2 int8 model add swish operator
The counterpart of Anakin is ncnn(20190320). This benchmark we test ARMv7 ARMv8 splitly
- Latency (
ms) of one batch
| Kirin 980 | Anakin fp32 | | | Anakin int8 | | | NCNN fp32 | | | NCNN int8 | | |
|---|
| 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread |
| mobilenet_v1 | 34.172 | 19.369 | 12.723 | 37.588 | 20.692 | 13.280 | 45.420 | 24.220 | 16.730 | 50.560 | 27.820 | 20.010 |
| mobilenet_v2 | 30.489 | 17.784 | 12.327 | 29.581 | 17.208 | 15.307 | 30.390 | 17.310 | 12.900 | | | |
| mobilenet_ssd | 71.609 | 37.477 | 28.952 | | | | 88.220 | 70.070 | 66.430 | 103.700 | 85.160 | 85.320 |
| resnet50 | 255.748 | 137.842 | 104.628 | | | | 1299.480 | 695.830 | 498.010 | 243.360 | 131.100 | 89.800 |
| shufflenetv1 | 11.544 | 8.931 | 7.027 | | | | 12.810 | 9.390 | 8.030 | | | |
| shufflenetv2 | 11.687 | 7.899 | 5.321 | 20.402 | 11.529 | 9.061 | | | | | | |
| squeezenet | 28.580 | 16.638 | 14.435 | | | | | | | | | |
| googlenet | 93.917 | 52.742 | 40.301 | 130.875 | 72.522 | 54.204 | | | | | | |
| Snapdragon 855 | Anakin fp32 | | | Anakin int8 | | | NCNN fp32 | | | NCNN int8 | | |
|---|
| 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread |
| mobilenet_v1 | 32.019 | 19.024 | 10.491 | 34.363 | 20.292 | 10.382 | 37.110 | 22.310 | 13.520 | 47.430 | 28.350 | 15.830 |
| mobilenet_v2 | 28.533 | 17.455 | 10.433 | 24.487 | 15.182 | 9.133 | 25.060 | 15.970 | 11.250 | | | |
| mobilenet_ssd | 66.454 | 41.397 | 23.639 | | | | 101.560 | 69.380 | 43.930 | 136.420 | 91.010 | 47.490 |
| resnet50 | 201.362 | 132.133 | 78.300 | | | | 1141.290 | 724.090 | 385.990 | 229.020 | 138.450 | 82.060 |
| shufflenetv1 | 10.153 | 7.101 | 5.327 | | | | 11.610 | 8.020 | 5.870 | | | |
| shufflenetv2 | 10.868 | 6.713 | 4.526 | 17.306 | 10.987 | 6.788 | | | | | | |
| squeezenet | 25.880 | 16.134 | 9.697 | | | | | | | | | |
| googlenet | 85.774 | 54.518 | 34.025 | 118.120 | 73.686 | 41.865 | | | | | | |
| Snapdragon 652 | Anakin fp32 | | | Anakin int8 | | | NCNN fp32 | | | NCNN int8 | | |
|---|
| 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread |
| mobilenet_v1 | 109.994 | 54.937 | 33.174 | 83.887 | 43.639 | 24.665 | 123.320 | 122.670 | 65.100 | 128.800 | 154.370 | 125.570 |
| mobilenet_v2 | 80.712 | 46.314 | 30.874 | 69.340 | 43.590 | 31.864 | 89.920 | 90.900 | 55.320 | | | |
| mobilenet_ssd | 246.459 | 121.684 | 134.019 | | | | 248.190 | 138.170 | 142.350 | 247.020 | 145.080 | 211.000 |
| resnet50 | 673.285 | 346.287 | 378.065 | | | | 880.940 | 514.190 | | 533.760 | 313.630 | |
| shufflenetv1 | 34.948 | 26.635 | 21.571 | | | | 39.950 | 25.520 | 20.180 | | | |
| shufflenetv2 | 35.530 | 21.440 | 16.434 | 49.498 | 29.116 | 19.346 | | | | | | |
| squeezenet | 87.037 | 47.192 | 28.663 | | | | | | | | | |
| googlenet | 268.023 | 148.533 | 95.624 | 236.492 | 131.510 | 81.561 | | | | | | |
| RK3399 | Anakin fp32 | | | Anakin int8 | | | NCNN fp32 | | | NCNN int8 | | |
|---|
| 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread |
| mobilenet_v1 | 111.317 | 60.008 | | 87.201 | 45.693 | | 149.270 | 91.200 | | 142.790 | 86.140 | |
| mobilenet_v2 | 105.767 | 60.899 | | 79.065 | 53.914 | | 118.530 | 86.900 | | | | |
| mobilenet_ssd | 232.923 | 128.337 | | | | | 268.900 | 157.860 | | 256.560 | 149.730 | |
| resnet50 | 671.800 | 369.386 | | | | | 1029.300 | 571.230 | | 569.250 | 344.830 | |
| shufflenetv1 | 38.761 | 25.971 | | | | | | | | | | |
| shufflenetv2 | 36.220 | 22.095 | | 51.879 | 30.351 | | | | | | | |
| squeezenet | 98.489 | 54.863 | | | | | | | | | | |
| googlenet | 274.166 | 159.429 | | 235.085 | 133.044 | | | | | | | |
- ABI: armveabi-v7a with neon
- Latency (
ms) of one batch
| Kirin 980 | Anakin fp32 | | | Anakin int8 | | | NCNN fp32 | | | NCNN int8 | | |
|---|
| 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread |
| mobilenet_v1 | 39.051 | 19.813 | 14.184 | 39.026 | 22.048 | 14.250 | 50.240 | 26.850 | 20.010 | 92.900 | 49.420 | 37.160 |
| mobilenet_v2 | 36.052 | 19.550 | 14.507 | 32.656 | 19.641 | 15.735 | 35.890 | 20.730 | 18.550 | | | |
| mobilenet_ssd | 83.474 | 44.530 | 33.116 | | | | 99.960 | 53.160 | 84.360 | 180.000 | 91.380 | 68.140 |
| resnet50 | 291.478 | 158.954 | 129.484 | | | | 1412.37 | 766.62 | 560.760 | 355.010 | 189.18 | 133.410 |
| shufflenetv1 | 11.909 | 9.761 | 7.441 | | | | 16.030 | 10.660 | 8.120 | | | |
| shufflenetv2 | 11.755 | 7.983 | 6.289 | 21.968 | 14.111 | 9.888 | | | | | | |
| squeezenet | 30.148 | 20.908 | 17.084 | | | | | | | | | |
| googlenet | 108.210 | 65.798 | 58.630 | 140.886 | 79.910 | 60.693 | | | | | | |
| Snapdragon 855 | Anakin fp32 | | | Anakin int8 | | | NCNN fp32 | | | NCNN int8 | | |
|---|
| 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread |
| mobilenet_v1 | 34.015 | 20.064 | 11.410 | 42.222 | 21.532 | 11.746 | 41.150 | 24.870 | 18.420 | 79.180 | 48.470 | 24.530 |
| mobilenet_v2 | 30.742 | 18.507 | 11.354 | 24.628 | 15.133 | 9.079 | 30.060 | 19.220 | 15.520 | | | |
| mobilenet_ssd | 69.749 | 44.010 | 26.000 | | | | 85.030 | 62.770 | 48.940 | 154.600 | 138.700 | 82.140 |
| resnet50 | 218.581 | 146.509 | 92.899 | | | | 1380.340 | 996.410 | 540.660 | 324.720 | 261.920 | 126.270 |
| shufflenetv1 | 11.032 | 7.430 | 5.369 | | | | 13.390 | 9.270 | 6.360 | | | |
| shufflenetv2 | 11.372 | 7.120 | 4.728 | 19.393 | 12.278 | 7.719 | | | | | | |
| squeezenet | 27.860 | 17.538 | 10.729 | | | | | | | | | |
| googlenet | 100.719 | 69.509 | 49.021 | 127.982 | 83.369 | 50.275 | | | | | | |
| Snapdragon 652 | Anakin fp32 | | | Anakin int8 | | | NCNN fp32 | | | NCNN int8 | | |
|---|
| 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread | 1 thread | 2 thread | 4 thread |
| mobilenet_v1 | 121.982 | 63.004 | 37.325 | 86.672 | 45.728 | 26.354 | 130.740 | 140.850 | 81.810 | 184.630 | 192.730 | 144.740 |
| mobilenet_v2 | 89.113 | 50.609 | 35.291 | 72.679 | 45.888 | 33.887 | 94.520 | 101.380 | 65.570 | | | |
| mobilenet_ssd | 236.466 | 132.293 | 86.335 | | | | 270.630 | 295.520 | 174.280 | 350.640 | 286.420 | 243.850 |
| resnet50 | 751.528 | 405.433 | 255.699 | | | | 2762.890 | 1447.070 | 883.730 | 664.180 | 369.020 | |
| shufflenetv1 | 36.883 | 23.718 | 15.144 | | | | 53.660 | 33.450 | 23.330 | | | |
| shufflenetv2 | 36.933 | 26.353 | 20.507 | 53.243 | 31.083 | 21.550 | | | | | | |
| squeezenet | 92.748 | 51.936 | 33.027 | | | | | | | | | |
| googlenet | 296.092 | 179.542 | 125.509 | 242.505 | 140.083 | 89.646 | | | | | | |
| RK3399 | Anakin fp32 | | Anakin int8 | | NCNN fp32 | | NCNN int8 | |
|---|
| 1 thread | 2 thread | 1 thread | 2 thread | 1 thread | 2 thread | 1 thread | 2 thread |
| mobilenet_v1 | 116.981 | 65.033 | 87.768 | 47.617 | 155.830 | 98.520 | 201.800 | 116.440 |
| mobilenet_v2 | 118.229 | 70.567 | 83.790 | 55.413 | 126.530 | 90.930 | | |
| mobilenet_ssd | 237.196 | 134.508 | | | 292.130 | 183.650 | 361.570 | 200.370 |
| resnet50 | 725.582 | 413.995 | | | 2883.120 | 1632.800 | 702.660 | 404.970 |
| shufflenetv1 | 41.094 | 27.353 | | | | | | |
| shufflenetv2 | 37.660 | 23.489 | 53.558 | 32.122 | | | | |
| squeezenet | 104.519 | 59.402 | | | | | | |
| googlenet | 305.304 | 190.897 | 244.855 | 142.493 | | | | |