Willkommen im Anakin Github.
Anakin ist eine plattformübergreifende Hochleistungs-Inferenzmotor, die ursprünglich von Baidu-Ingenieuren entwickelt wurde und eine groß angelegte Anwendung von Industrieprodukten ist.
Weitere Informationen finden Sie in unserer Veröffentlichung, um die neueste Funktion von Anakin zu verfolgen.
Flexibilität
Anakin ist eine plattformübergreifende, leistungsstarke Inferenz-Engine, unterstützt eine breite Palette neuronaler Netzwerkarchitekturen und verschiedene Hardwareplattformen. Es ist einfach, Anakin auf der GPU / X86 / ARM -Plattform zu betreiben.
Anakin hat sich in Nvidia Tensorrt und Open Source integriert. Dieser Teil der integrierten API zur Bereitstellung von Diensten können Entwickler die API direkt aufrufen oder sie bei Bedarf ändern, was für die Entwicklungsanforderungen flexibler ist.
Hohe Leistung
Um der Hardware -Leistung volles Spiel zu verleihen, haben wir die Vorhersage auf verschiedenen Ebenen optimiert.
Automatische Graphfusion. Das Ziel aller Leistungsoptimierungen unter einem bestimmten Algorithmus ist es, die ALU so stark wie möglich zu gestalten. Die Fusion des Bedieners kann den Speicherzugriff effektiv reduzieren und die ALU beschäftigt.
Speicher Wiederverwendung. Die Vorhersage ist eine Einweg-Berechnung. Wir verwenden den Speicher zwischen Eingabe und Ausgabe verschiedener Operatoren wieder, wodurch der Gesamtspeicheraufwand reduziert wird.
Optimierung der Montagepegel. Sabre ist eine zugrunde liegende DNN -Bibliothek für Anakin, die auf Montagestufe zutiefst optimiert ist.
CPU:
Intel(R) Xeon(R) CPU 5117 @ 2.0GHz
GPU:Tesla P4
CUDA:CUDA8
CUDNN:v7
ms ) und Speicher (MB) verschiedener ChargeDas Gegenstück von
Anakinist der anerkannte Hochleistungs -InferenzmotorNVIDIA TensorRT 5, die Modelle, die Tensorrt 5 nicht unterstützt. Wir verwenden die benutzerdefinierten Plugins zur Unterstützung.
| Batch_size | RT -Latenz FP32 (MS) | Anakin2 Latenz FP32 (MS) | RT -Speicher (MB) | Anakin2 -Speicher (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 -Latenz FP32 (MS) | Anakin2 Latenz FP32 (MS) | RT Latenz int8 (MS) | Anakin2 Latenz int8 (MS) | RT -Speicher 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 -Latenz (MS) | Anakin2 Latenz (MS) | RT Latenz int8 (MS) | Anakin2 Latenz int8 (MS) | RT -Speicher (MB) | Anakin2 -Speicher (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.20GHzmit HT für den FP32-Test
CPU:Intel(R) Xeon(R) Gold 6271 CPU @ 2.60GHzmit HT, für den Int8 -Test
System:CentOS 6.3mitGCC 4.8.2für Benchmark zwischen Anakin und Intel Caffe
8 thread parallelDas Gegenstück von
AnakinistIntel Cafe(1,1,6) mit MKLML.
| Net_name | Batch_size | Anakin2 Latenz (2650v4) FP32 (MS) | Kaffe Latenz (2650v4) FP32 (MS) | Anakin2 Latenz 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
Das Gegenstück von
Anakinistncnn(20190320) . In diesem Benchmark testen wir ARMV7 ARMV8 auftretend
ms ) one batch| Kirin 980 | Anakin FP32 | Anakin int8 | NCNN FP32 | Ncnn int8 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 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 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 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 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 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 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 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 |
ms ) one batch| Kirin 980 | Anakin FP32 | Anakin int8 | NCNN FP32 | Ncnn int8 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 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 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 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 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 4 Thread | 1 Faden | 2 Faden | 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 Faden | 2 Faden | 1 Faden | 2 Faden | 1 Faden | 2 Faden | 1 Faden | 2 Faden | |
| 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 |
Alles, was Sie brauchen, ist im Doc Index
Wir bieten auch englische und chinesische Tutorial -Dokumentation.
Benutzerhandbuch
Sie können das Arbeitsprinzip des Projekts, die C ++ - Schnittstellenbeschreibung und Code -Beispiele von hier erhalten. Sie können hier auch den Modellkonverter kennenlernen.
Entwicklerleitfaden
Vielleicht möchten Sie weitere Details von Anakin wissen und es besser machen. Weitere Informationen zum Hinzufügen von benutzerdefinierten Geräten und zum Hinzufügen von benutzerdefinierten Geräteoperatoren.
Wie man beiträgt
Wir schätzen Ihre Beiträge!
Sie können gerne Fragen und Fehlerberichte als GitHub -Probleme einreichen.
Anakin wird unter der Lizenz Apache-2.0 bereitgestellt.
Anakin bezieht sich auf die folgenden Projekte: