本项目是晶视智能AI芯片的TPU编译器工程,目前已经支持晶视cv183x/cv182x/mars系列产品。
晶视智能是一家专注于视频监控及边缘计算技术研发的芯片设计公司,拥有自主研发的 AI TPU 运算核心及 SoC 芯片整合技术. 目前研发领域涵盖SoC芯片设计, AI TPU处理器及工具链,图像处理算法及设计等,致力于打造人工智能机器视觉一站式平台解决方案,为客户带来丰富价值及技术创新的产品与服务。公司在北京,深圳,武汉,香港等地设有研发中心和运营机构。更多信息参见官网CVITEK。
本工程是基于MLIR架构开发,将TPU编译器分层设计,结构如下:
- Classification:
resnet50
resnet18
mobilenet_v1
mobilenet_v2
squeezenet_v1.1
shufflenet_v2
googlenet
inception_v3
inception_v4
vgg16
densenet_121
densenet_201
senet_res50
resnext50
res2net50
ecanet50
efficientnet_b0
efficientnet_lite_b0
nasnet_mobile
- Detection:
retinaface_mnet25
retinaface_res50
ssd300
mobilenet_ssd
yolo_v1
yolo_v2
yolo_v3
yolo_v4
yolo_v5
yolo_x
- Misc:
arcface_res50
alphapose
espcn_3x
unet
erfnet
-
下载docker和建立容器
docker pull cvitek/cvitek_dev:1.7-ubuntu-18.04 cd tpu_compiler docker run -it --name work -v $PWD:/work -v $PWD/../mlir-models:/models cvitek/cvitek_dev:1.7-ubuntu-18.04
-
编译代码
source ./envsetup.sh ./build.sh
-
算子验证
mkdir tmp && cd tmp # 验证onnx算子 test_onnx.py # 验证pytorch算子 test_torch.py
-
模型验证
# 在tpu_compiler的同级 cd regression ./run_regression.sh -n resnet50