Selamat datang di Anakin GitHub.
Anakin adalah mesin inferensi cross-platform, berkinerja tinggi, yang awalnya dikembangkan oleh insinyur Baidu dan merupakan aplikasi produk industri skala besar.
Silakan merujuk ke pengumuman rilis kami untuk melacak fitur terbaru Anakin.
Fleksibilitas
Anakin adalah mesin inferensi cross-platform, berkinerja tinggi, mendukung berbagai arsitektur jaringan saraf dan platform perangkat keras yang berbeda. Sangat mudah untuk menjalankan Anakin pada platform GPU / X86 / ARM.
Anakin telah terintegrasi dengan NVIDIA Tensorrt dan Open Source bagian ini dari API terintegrasi untuk menyediakan layanan, pengembang dapat menghubungi API secara langsung atau memodifikasinya sesuai kebutuhan, yang akan lebih fleksibel untuk persyaratan pengembangan.
Kinerja tinggi
Untuk memberikan permainan penuh pada kinerja perangkat keras, kami mengoptimalkan prediksi ke depan di berbagai level.
Fusi Grafik Otomatis. Tujuan dari semua optimisasi kinerja di bawah algoritma yang diberikan adalah untuk membuat ALU sesibuk mungkin. Operator Fusion dapat secara efektif mengurangi akses memori dan membuat ALU sibuk.
Penggunaan kembali memori. Prediksi ke depan adalah perhitungan satu arah. Kami menggunakan kembali memori antara input dan output dari operator yang berbeda, sehingga mengurangi keseluruhan overhead memori.
Optimalisasi tingkat perakitan. Sabre adalah perpustakaan DNN yang mendasarinya untuk Anakin, yang sangat dioptimalkan pada tingkat perakitan.
CPU:
Intel(R) Xeon(R) CPU 5117 @ 2.0GHz
GPU:Tesla P4
CUDA:CUDA8
Cudnn:v7
ms ) dan memori (MB) dari batch yang berbedaMitra
Anakinadalah mesin inferensi berkinerja tinggi yang diakuiNVIDIA TensorRT 5, model yang Tensorrt 5 tidak mendukung kami menggunakan plugin khusus untuk mendukung.
| Batch_Size | RT Latency FP32 (MS) | Anakin2 Latency FP32 (MS) | Memori RT (MB) | Memori anakin2 (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) | Memori RT FP32 (MB) | Memori anakin2 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) | Latensi Anakin2 (MS) | RT Latency Int8 (MS) | ANAKIN2 Latency Int8 (MS) | Memori RT (MB) | Memori anakin2 (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.20GHzdengan HT, untuk tes FP32
CPU:Intel(R) Xeon(R) Gold 6271 CPU @ 2.60GHzdengan HT, untuk tes int8
Sistem:CentOS 6.3denganGCC 4.8.2, untuk tolok ukur antara Anakin dan Intel Caffe
8 thread parallelRekan
AnakinadalahIntel Cafe(1.1.6) dengan MKLML.
| Net_name | Batch_Size | Anakin2 Latency (2650v4) FP32 (MS) | Latensi Caffe (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
Rekan
Anakinadalahncnn(20190320) . Benchmark ini kami menguji ARMV7 ARMV8 secara splitly
ms ) dari one batch| Kirin 980 | Anakin FP32 | Anakin Int8 | NCNN FP32 | NCNN INT8 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 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 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 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 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 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 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 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 ) dari one batch| Kirin 980 | Anakin FP32 | Anakin Int8 | NCNN FP32 | NCNN INT8 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 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 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 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 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 4 Thread | 1 utas | 2 utas | 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 utas | 2 utas | 1 utas | 2 utas | 1 utas | 2 utas | 1 utas | 2 utas | |
| 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 |
Yang Anda butuhkan adalah dalam indeks DOC
Kami juga menyediakan dokumentasi tutorial bahasa Inggris dan Cina.
Panduan Pengguna
Anda bisa mendapatkan prinsip kerja proyek, deskripsi antarmuka C ++ dan contoh kode dari sini. Anda juga dapat belajar tentang konverter model di sini.
Panduan Pengembang
Anda mungkin ingin mengetahui lebih banyak detail Anakin dan membuatnya lebih baik. Silakan merujuk ke cara menambahkan perangkat khusus dan cara menambahkan operator perangkat khusus.
Bagaimana berkontribusi
Kami menghargai kontribusi Anda!
Anda dipersilakan untuk mengirimkan pertanyaan dan laporan bug sebagai masalah github.
Anakin disediakan di bawah lisensi apache-2.0.
Anakin mengacu pada proyek -proyek berikut: