这里最关键的就是C_{op}怎么知道,这个不同的后端都不一样,CPU或者GPU的可以表示为:\\ C_{op}=\begin{equation}\left\{\begin{array}{lr} {\rm \frac{MUL}{FLOPS}\times 1000}, & CPU, \\ {\rm \frac{MUL}{FLOPS}\times 1000+t_{schedule}}, & GPU.\\ \end{array} \right. \end{equatio...
目前端上推理引擎主要支持CPU及端上GPU,主流的的设备是CPU(arm)+GPU(mali qualcomm powerVR),主要的编程语言包括c、neon、汇编、OpenCL、OpenGL、vulkan,其中前三种主要是针对CPU的优化,后三种是GPU编程语言。本系列文章将对MNN架构进行逐步剖析,通过对源代码的分析,更加深入的理解推理引擎及优化的技术细节。 与之前...
C :Not Support Architecture / PrecisionNormalFP16BF16Int8 CPUNativeBCBB x86/x64-SSE4.1ABBA x86/x64-AVX2SBBA x86/x64-AVX512SBBS ARMv7aSS (ARMv8.2)SS ARMv8SS (ARMv8.2)S(ARMv8.6)S GPUOpenCLASCS VulkanAACA MetalASCS CUDAASCA
在整体定位方面,相比于1.0版本的端侧深度学习引擎,MNN 2.0迈向了端云一体化的通用深度学习框架,一方面大幅优化了在服务端CPU和GPU上的性能;另一方面新增了类似OpenCV、Numpy的通用计算模块,以完整覆盖学习任务的前处理、模型运行、后处理3阶段。下面本文将对MNN 2.0的相关技术做详细介绍。 MNN 及技术挑战 ▐MNN 简介...
GPU 优化:Metal / OpenCL 支持 fp16 的 scale/bias,支持对称量化优化 Metal / OpenCL 后端支持 fp16 的 scale/bias 和对称量化优化的支持,提升了推理效率。 LLM 加速:Metal / OpenCL 后端支持 scale/bias 使用 fp16 Metal / OpenCL 支持 scale/bias 使用 fp16(设置 precision = low 时启用),进一步优化...
C :不支持 Architecture / PrecisionNormalFP16BF16Int8 CPUNativeBCBB x86/x64-SSE4.1ABBA x86/x64-AVX2SBBA x86/x64-AVX512SBBS ARMv7aSS (ARMv8.2)SS ARMv8SS (ARMv8.2)S(ARMv8.6)S GPUOpenCLASCC VulkanAACC MetalASCC CUDAASCC NPUCoreMLBBCC ...
总的来说, MNN 吸纳了前人的经验,也结合自己对端侧推理引擎的认知,做了许多创新。综合考虑性能、模型和后端的拓展性、缓存、 CPU 和 GPU 的算子实现,以及 CV 库等方面的表现,在端侧推理引擎中, MNN 是值得移动 AI 用户尝试的选择。 后续规划 在后续计划上,转换部分,我们计划追加更多算子和更多图优化匹配模板...
GLMBlock层的权重总大小为21G,仍然非常大,每个Block的大小为768M;考虑到要在端侧各类设备部署,可以将28层Block分别导出,对于浮点模型,这样的好处是能够在显存不足的情况下将部分Block放置在GPU,其余部分放置在CPU进行推理,这样能够充分利用设备算力;对与移动端设备,对这些block进行量化,分别获得int8/int4的权值量化模...
n层架构风格 mnn架构,MNN近期更新了2.0版本啦!在整体定位方面,相比于1.0版本的端侧深度学习引擎,MNN2.0迈向了端云一体化的通用深度学习框架,一方面大幅优化了在服务端CPU和GPU上的性能;另一方面新增了类似OpenCV、Numpy的通用计算模块,以完整覆盖学习任务的前处理、
GPU OpenCL A S C C Vulkan A A C C Metal A S C C CUDA A S C C NPU CoreML B B C C HIAI B C C B NNAPI B B C C 工具 基于MNN (张量计算引擎),提供了一系列工具,以支持模型推理、训练和通用计算: MNN-Converter:模型转换工具,由Frontends和Graph Optimize构成。前者负责支持不同的训练...