This benchmark is tested on CentOS7 with GPU A10
and CPU Intel(R) Xeon(R) Platinum 8350C CPU @ 2.60GHz
, and its environment is as follows:
Package | Version |
---|---|
CUDA | 11.3 |
cuDNN | 8.3.2.44 |
TensorRT | 8.4.1.5 |
Python | 3.8.13 |
PyTorch | 1.12.1 |
The following is the result of comparison between pytorch eager and poros, which measured by average latency time (ms) of model infering 1000 times.
Input shape: bx3x224x224
Batch size | PyTorch (ms) | Poros (ms) |
---|---|---|
1 | 6.17 | 1.70 |
2 | 6.02 | 2.41 |
4 | 6.33 | 3.23 |
8 | 8.55 | 4.75 |
16 | 16.22 | 7.82 |
32 | 32.09 | 14.00 |
Model source: https://github.com/pytorch/vision/blob/main/torchvision/models/resnet.py
Input shape: bx3x224x224
Batch size | PyTorch (ms) | Poros (ms) |
---|---|---|
1 | 3.20 | 2.71 |
2 | 4.97 | 3.78 |
4 | 8.20 | 6.09 |
8 | 14.64 | 10.20 |
16 | 27.47 | 19.17 |
32 | 53.09 | 36.47 |
Model source: https://github.com/pytorch/vision/blob/main/torchvision/models/vgg.py
Input shape: bx3x224x224
Batch size | PyTorch (ms) | Poros (ms) |
---|---|---|
1 | 3.85 | 0.65 |
2 | 3.75 | 0.86 |
4 | 3.90 | 1.19 |
8 | 4.18 | 2.08 |
16 | 8.43 | 3.83 |
32 | 16.57 | 7.14 |
Model source: https://github.com/tonylins/pytorch-mobilenet-v2/blob/master/MobileNetV2.py
Input shape: bx3x224x224
Batch size | PyTorch (ms) | Poros (ms) |
---|---|---|
1 | 10.05 | 2.51 |
2 | 10.13 | 3.22 |
4 | 10.08 | 3.70 |
8 | 10.15 | 4.95 |
16 | 12.51 | 7.11 |
32 | 21.43 | 11.22 |
Model source: https://github.com/pytorch/vision/blob/main/torchvision/models/inception.py
Input shape: bx3x224x224
Batch size | PyTorch (ms) | Poros (ms) |
---|---|---|
1 | 8.28 | 1.28 |
2 | 8.50 | 1.57 |
4 | 8.49 | 2.29 |
8 | 8.83 | 3.65 |
16 | 10.65 | 6.62 |
32 | 20.51 | 12.51 |
Model source: https://github.com/rwightman/pytorch-image-models/blob/main/timm/models/efficientnet.py
Input shape: bx128
Batch size | PyTorch (ms) | Poros (ms) |
---|---|---|
1 | 6.40 | 2.02 |
2 | 7.14 | 2.59 |
4 | 11.58 | 4.39 |
8 | 21.64 | 8.41 |
16 | 44.20 | 16.90 |
32 | 92.69 | 32.21 |
Model source: https://github.com/huggingface/transformers/blob/main/src/transformers/models/bert/modeling_bert.py
Input shape: bx3x224x224
Batch size | PyTorch (ms) | Poros (ms) |
---|---|---|
1 | 6.38 | 3.07 |
2 | 10.35 | 4.57 |
4 | 19.06 | 8.37 |
8 | 36.71 | 16.34 |
16 | 73.84 | 29.92 |
32 | 147.70 | 58.11 |
Model source: https://github.com/rwightman/pytorch-image-models/blob/main/timm/models/vision_transformer.py
Input shape: bx3x640x640
Batch size | PyTorch (ms) | Poros (ms) |
---|---|---|
1 | 6.17 | 2.22 |
2 | 5.93 | 3.96 |
4 | 10.02 | 6.84 |
8 | 20.02 | 12.86 |
16 | 38.17 | 24.80 |
32 | 77.19 | 49.16 |
Model source: https://github.com/ultralytics/yolov5/blob/master/models/yolo.py
Input shape: bx3x224x224
Batch size | PyTorch (ms) | Poros (ms) |
---|---|---|
1 | 14.11 | 7.68 |
2 | 22.73 | 11.99 |
4 | 42.21 | 21.74 |
8 | 83.07 | 42.18 |
16 | 162.34 | 78.34 |
32 | 317.43 | 149.72 |
Model source: https://github.com/microsoft/Swin-Transformer/blob/main/models/swin_transformer.py