各算子库对CNN的支持

Openblas

简介

OpenBLAS 是一个优化的 BLAS 库,基于 GotoBLAS2 1.13 BSD 版本。
BLAS(Basic Linear Algebra Subprograms 基础线性代数程序集)是一个应用程序接口(API)标准,用以规范发布基础线性代数操作的数值库(如矢量或矩阵乘法)。该程序集最初发布于1979年,并用于建立更大的数值程序包(如LAPACK)。在高性能计算领域,BLAS被广泛使用。例如,LINPACK的运算成绩则很大程度上取决于BLAS中子程序DGEMM的表现。为提高性能,各軟硬件厂商则针对其產品对BLAS接口实现进行高度优化。

支持算法

内部实现了底层乘法运算,NN相关算法没有实现
内部实现的算法包括:

Level1: 标量操作、向量操作、向量-向量操作
Level2:矩阵-向量操作
Level3: 矩阵-矩阵操作

其它

  1. git 地址:https://github.com/xianyi/OpenBLAS (C实现)

CNN相关

  1. 只提供底层计算,不支持NN相关算法

MKL

简介

Intel数学核心函数库(MKL)是一套高度优化、线程安全的数学例程、函数,面向高性能的工程、科学与财务应用。英特尔 MKL 的集群版本包括 ScaLAPACK 与分布式内存快速傅立叶转换,并提供了线性代数 (BLAS、LAPACK 和Sparse Solver)、快速傅立叶转换、矢量数学 (Vector Math) 与随机号码生成器支持,常见NN算法如RN、CNN。

支持算法

  1. 官方文档:https://oneapi-src.github.io/oneDNN/index.html

  2. 解决大型计算问题,提供BLAS、LAPACK线性代数程序、快速傅里叶变换、矢量数学函数、随机数生成函数以及其它一些函数。 https://blog.csdn.net/zb1165048017/article/details/70144928?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-3

  3. 数学核心函数库性能对比:https://software.intel.com/content/www/cn/zh/develop/articles/book-multicore-multithread-technology_mkl_math_kernel_library.html

CNN相关

  1. CNN使用实例:https://oneapi-src.github.io/oneDNN/cnn_inference_int8_cpp.html
  2. 通过cpp实现,实现代码:MKL-DNN/src/common/convolution.cpp
  3. 内部的封装有些复杂

其它

  1. git地址:https://github.com/oneapi-src/oneDNN(C++实现)

Tengine

简介

OPEN AI LAB开发了一款轻量级模块化的高性能神经网络推理引擎-Tengine,专门针对Arm嵌入式设备优化,提供超过所有已知开源框架的无与伦比的性能,可跨平台使用支持Android,Linux。
并且Tengine框架不依赖于专用AI芯片,现有的成熟芯片通过Tengine框架可以把算力挖掘出来,在本地进行一些AI应用的处理,从而提高了芯片性能,并降低成本。
Tengine同时还支持各类常见卷积神经网络,包括SqueezeNet,MobileNet,AlexNet,ResNet等,支持层融合、8位量化等优化策略。并且通过调用针对不同CPU微构架优化的HCL库,将Arm CPU的性能充分挖掘出来。

针对不同的模型,单独解析,最后推理

CNN相关

  1. 推理框架
  2. 实现了卷积计算,但是内部通过for循环实现(engine/source/Tengine/executor/operator/ref/kernel/convolution/ref_conv_int8.c)针对arm有汇编优化
  3. 内部代码封装很好,添加推理算法比较简单

其它

  1. git地址:https://github.com/OAID/Tengine/(C++实现)

NNCN

简介

ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架。ncnn 从设计之初深刻考虑手机端的部署和使用。无第三方依赖,跨平台,手机端 cpu 的速度快于目前所有已知的开源框架。基于 ncnn,开发者能够将深度学习算法轻松移植到手机端高效执行,开发出人工智能 APP,将 AI 带到你的指尖。ncnn 目前已在腾讯多款应用中使用,如 QQ,Qzone,微信,天天P图等。

支持大部分常用的 CNN 网络
Classical CNN: VGG AlexNet GoogleNet Inception ...
Practical CNN: ResNet DenseNet SENet FPN ...
Light-weight CNN: SqueezeNet MobileNetV1/V2/V3 ShuffleNetV1/V2 MNasNet ...
Detection: MTCNN facedetection ...
Detection: VGG-SSD MobileNet-SSD SqueezeNet-SSD MobileNetV2-SSDLite ...
Detection: Faster-RCNN R-FCN ...
Detection: YOLOV2 YOLOV3 MobileNet-YOLOV3 YOLOV4...
Segmentation: FCN PSPNet UNet ...
针对不同的模型,单独解析,最后推理

CNN 相关

  1. 推理框架,手机端极致优化
  2. 和Tengine类似,卷积计算,针对arm有汇编优化(ncnn/src/layer/arm)

其它

  1. git地址:https://github.com/Tencent/ncnn(C++实现)

MindSpore

简介

MindSpore是一个新的开源深度学习训练/推理框架,可用于移动、边缘和云场景。MindSpore旨在为数据科学家和算法工程师提供友好设计和高效执行的开发经验,为Ascend AI处理器提供本地支持,以及软硬件协同优化。同时,MindSpore作为一个全球性的人工智能开源社区,旨在进一步推进人工智能软硬件应用的开发和丰富生态系统.MindSpore是一个新的开源深度学习训练/推理框架,可用于移动、边缘和云场景。

https://www.mindspore.cn/docs/zh-CN/master/operator_list.html

其它

  1. git地址:https://github.com/mindspore-ai/mindspore(Python实现)

傅里叶变换

  1. 为什么现在对图像边缘的处理大多数是用卷积而不是傅里叶变换?
    一是算法复杂度没有相比卷积没有优势,二是可能会引入高频分量干扰。
    参考:https://mangoroom.cn/algorithm/why-convolution-not-fft.html
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270