MagicMind 是面向寒武纪 MLU 的推理加速引擎。
MagicMind 能将 AI 框架(TensorFlow,PyTorch,ONNX,Caffe 等) 训练好的算法模型转换成 MagicMind 统一计算图表示,并提供端到端的模型优化、代码生成以及推理业务部署能力。
本仓库展示如何将 CV 分类、检测、分割、NLP、语音等场景的前沿和经典模型,通过 MagicMind 转换和优化,进而运行在基于 MagicMind 的推理加速引擎的寒武纪加速板卡上的示例程序,为开发者提供丰富的 AI 应用移植参考。
- Linux 常见操作系统版本(如 Ubuntu16.04,Ubuntu18.04,CentOS7.x 等),安装 docker(>=v18.00.0)应用程序;
- 服务器装配好寒武纪 300 系列及以上的智能加速卡,并安装好驱动(>=v4.20.6);
- 若不具备以上软硬件条件,可前往寒武纪开发者社区申请试用;
若基于寒武纪云平台环境可跳过该环节。否则需运行以下步骤:
1.请前往寒武纪开发者社区下载 MagicMind(version >= 1.0.1)镜像,名字如下:
magicmind_version_os.tar.gz, 例如 magicmind_1.0.1-1_ubuntu18.04.tar.gz
2.加载:
docker load -i magicmind_version_os.tar.gz
3.运行:
docker run -it --shm_size 10G --name=dockername \
--network=host --cap-add=sys_ptrace \
-v /your/host/path/MagicMind:/MagicMind \
-v /usr/bin/cnmon:/usr/bin/cnmon \
--device=/dev/cambricon_dev0:/dev/cambricon_dev0 --device=/dev/cambricon_ctl \
-w /MagicMind/ magicmind_version_image_name:tag_name /bin/bash
MODELS | FRAMEWORK | MLU370-X4 | MLU370-S4 | CPP | PYTHON |
---|---|---|---|---|---|
AlexNet | Caffe | YES | YES | YES | NO |
ArcFace | PyTorch | YES | YES | YES | NO |
CRNN | PyTorch | YES | YES | NO | YES |
DenseNet121 | Caffe | YES | YES | YES | NO |
EfficientNet | Paddle | YES | YES | NO | YES |
GoogleNet_bn | Caffe | YES | YES | YES | YES |
MobileNetV2 | Caffe | YES | YES | YES | YES |
MobileNetV3 | PyTorch | YES | YES | YES | NO |
ResNet50 | ONNX | YES | YES | NO | YES |
ResNet50 | PyTorch | YES | YES | NO | YES |
ResNet50 | Paddle | YES | YES | NO | YES |
ResNext50 | Caffe | YES | YES | YES | YES |
SENet50 | Caffe | YES | YES | YES | NO |
SqueezeNet_v1_1 | Caffe | YES | YES | YES | NO |
SwinTransformer | PyTorch | YES | YES | NO | YES |
VGG16 | Caffe | YES | YES | YES | YES |
Xception | Paddle | YES | YES | NO | YES |
3D-ResNet | PyTorch | YES | YES | NO | YES |
MODELS | FRAMEWORK | MLU370-X4 | MLU370-S4 | CPP | PYTHON |
---|---|---|---|---|---|
C3D | Caffe | YES | YES | YES | NO |
CenterNet | PyTorch | YES | YES | YES | NO |
DBNet | PyTorch | YES | YES | NO | YES |
Faster_R-CNN | PyTorch | YES | YES | NO | YES |
Cascade_R-CNN | PyTorch | YES | YES | NO | YES |
HoiTransformer | PyTorch | YES | YES | NO | YES |
HRNet | PyTorch | YES | YES | NO | YES |
Mask_R-CNN(Offical API) | PyTorch | YES | YES | NO | YES |
Mask_R-CNN | PyTorch | YES | YES | NO | YES |
PSENet | TensorFlow | YES | YES | NO | YES |
PPYOLOE | Paddle | YES | YES | NO | YES |
Retinaface | PyTorch | YES | YES | YES | NO |
RetinaNet | PyTorch | YES | YES | NO | YES |
SSD | Caffe | YES | YES | YES | YES |
SSD | PyTorch | YES | YES | NO | YES |
YOLOv3 | Caffe | YES | YES | YES | NO |
YOLOv3 | TensorFlow | YES | YES | YES | NO |
YOLOv3 | Paddle | YES | YES | NO | YES |
YOLOv3 Tiny | Caffe | YES | YES | YES | NO |
YOLOv4 | Caffe | YES | YES | YES | NO |
YOLOv5 | PyTorch | YES | YES | YES | YES |
YOLOv5 without plugin | PyTorch | YES | YES | NO | YES |
YOLOv7 | PyTorch | YES | YES | YES | YES |
YOLOv8 | PyTorch | YES | YES | NO | YES |
MODELS | FRAMEWORK | MLU370-X4 | MLU370-S4 | CPP | PYTHON |
---|---|---|---|---|---|
Deeplabv3 | PyTorch | YES | YES | NO | YES |
Deeplabv3 | TensorFlow | YES | YES | YES | NO |
nnUnet | PyTorch | YES | YES | NO | YES |
OCRNet(Offical API) | PyTorch | YES | YES | NO | YES |
OCRNet | PyTorch | YES | YES | NO | YES |
SegNet | Caffe | YES | YES | YES | NO |
UNet | PyTorch | YES | YES | NO | YES |
UNet(MMSegmentation) | PyTorch | YES | YES | NO | YES |
U2Net | PyTorch | YES | YES | NO | YES |
MODELS | FRAMEWORK | MLU370-X4 | MLU370-S4 | CPP | PYTHON |
---|---|---|---|---|---|
Clip | PyTorch | YES | YES | NO | YES |
FSANet | TensorFlow | YES | YES | NO | YES |
HRNet | PyTorch | YES | YES | NO | YES |
I3D | PyTorch | YES | YES | NO | YES |
MobileNetv2 | PyTorch | YES | YES | NO | YES |
Openpose | Caffe | YES | YES | YES | NO |
PaddleOCRv2 | Paddle | YES | YES | NO | YES |
PaddleOCRv3 | Paddle | YES | YES | NO | YES |
ResNet50 | PyTorch | YES | YES | NO | YES |
TSM | PyTorch | YES | YES | NO | YES |
MODELS | FRAMEWORK | MLU370-X4 | MLU370-S4 | CPP | PYTHON |
---|---|---|---|---|---|
BERT | PyTorch | YES | YES | NO | YES |
BERT | TensorFlow | YES | NO | NO | YES |
ROBERTA | PyTorch | YES | YES | NO | YES |
Roformer-sim | TensorFlow | YES | YES | NO | YES |
Transformers | PyTorch | YES | YES | NO | YES |
MODELS | FRAMEWORK | MLU370-X4 | MLU370-S4 | CPP | PYTHON |
---|---|---|---|---|---|
TACOTRON2 | ONNX | YES | YES | NO | YES |
MODELS | FRAMEWORK | MLU370-X4 | MLU370-S4 | CPP | PYTHON |
---|---|---|---|---|---|
WeNet | PyTorch | YES | YES | NO | YES |
MODELS | FRAMEWORK | MLU370-X4 | MLU370-S4 | CPP | PYTHON |
---|---|---|---|---|---|
xDeepFM | Paddle | YES | YES | NO | YES |
ModelZoo Cloud 的 License 具体内容请参见LICENSE文件。
ModelZoo 仅提供公共数据集以及预训练模型的下载链接,公共数据集及预训练模型并不属于 ModelZoo, ModelZoo 也不对其质量或维护承担责任。请您在使用公共数据集和预训练模型的过程中,确保符合其对应的使用许可。
如果您不希望您的数据集或模型公布在 ModelZoo 上,或者您希望更新 ModelZoo 中属于您的数据集或模型,请您通过 Gitee 中提交 issue,您也可以联系[email protected]告知我们。
- MagicMind支持版本1.7.0
- 修复部分网络README错误
- 删除对TensorFlow框架支持,详情见MagicMind r1.7.0 Release Note
- MagicMind支持版本1.6.0
- 整理代码格式,统一文件命名规则,修复部分网络README错误
- CV : 新增yolov8_pytorch、yolov5_v7_1_non_detection_output_pytorch网络支持
- NLP : 新增xdeepfm_paddle网络支持
- MagicMind支持版本1.5.0
- 修复tacotron2_onnx perf测试中模型错误问题
- MagicMind支持版本1.3.0
- 新增gen_model以及infer时的公共组件函数:python_common, cpp_common
- cv/classification: 重构 3dresnet_pytorch/arcface_pytorch/crnn_pytorch/densenet121_caffe/efficientnet_paddle/googlenet_bn_caffe/mobilenetv2_caffe/mobilenetv3_pytorch/resnet50_onnx/resnet50_paddle/resnet50_pytorch/senet50_caffe/squeezenet_v1_1_caffe/swintransformer_pytorch/vgg16_caffe/xception_paddle/ 删除 squeezenet_v1_0_caffe
- cv/detection: 重构 c3d_caffe/centernet_pytorch/dbnet_pytorch/retinaface_pytorch/yolov3_caffe/yolov3_tensorflow/yolov3_tiny_caffe/yolov4_caffe/yolov5_v6_1_pytorch/yolov7_pytorch 新增 mmdetection/paddledetection
- cv/segmentation: 重构 unet_pytorch 新增 mmsegmentation
- cv/other: 重构 clip_pytorch/openpose_caffe/ 新增 mmaction2/mmpose/paddleocr
- nlp/LanguageModeling: 重构 bert_squad_pytorch/bert_tensorflow/roberta_pytorch/roformer-sim_tensorflow/
- nlp/SpeechRecognition: 重构 wenet_pytorch
- nlp/SpeechSynthesis: 重构 tacotron2_onnx
-
MagicMind支持版本1.0.1
-
CV : 新增CRNN/Densenet121/GoogleNet_bn/DBNet/ResNet50(Paddle)/SwinTransformer/3D-ResNet/YoloV3(TensorFlow&Paddle)/YoloV7/HoiTransformer/YoloV4/PSENet/Openpose/Clip/FSANet网络的支持
-
NLP : 新增Roberta/Roformer-sim/WeNet网络的支持
-
MagicMind支持版本0.14.0
-
CV : 新增AlexNet/SENet50/ArgFace/MaskRCNN/RetinaFace/SegNet/Deeplabv3/U2Net/Openpose网络的支持
-
NLP : 新增BERT(TensorFlow)/Transformers网络的支持
-
CV : 新增ResNext50/Squeezenet_v1_1/Squeezenet_v1_0/Centernet/YoloV3/YoloV3 Tiny/C3D/MobileNetV2/MobileNetV3网络的支持
-
NLP : 新增Tacotron2网络的支持
-
MagicMind支持版本0.13.0
-
CV : 新增ResNet50/VGG16/YoloV5/SSD/Unet网络的支持
-
NLP : 新增BERT(PyTorch)网络的支持