NeuralTalk

其他

xNN:支付宝端侧深度学习框架

计算引擎首次上线时,我们便配套布局建设了模型压缩的核心技术。它包括了模型的剪枝,参数的量化,以及数据编码。剪枝(Pruning):模型剪枝可以简单的分为三个维度。(1)通道剪枝(Channel
2022年12月13日
其他

阿里妈妈high_service:打造多媒体AI推理的极致性能!

本文作者:雨行、列宁、阿洛、腾冥、枭骑、无蹄、逍城、少奇、持信、云芑概述随着视频、文案、图文等多媒体模型在阿里妈妈智能创意、内容风控等业务场景的广泛落地,在提升业务效果的同时,也为在线部署带来了诸多新的挑战。本文聚焦于多媒体AI服务场景下,提升GPU利用率以及避免GPU资源浪费这一核心问题,分析了用Python上线多媒体AI推理服务GPU利用率低的原因,以及在线流量波动造成的资源分配困难,并给出了我们的解决方案
2022年11月17日
其他

PaddleBox:百度超大规模离散DNN模型训练解决方案

是否在SSD上进一步降低无效的访盘次数。这两种剪枝策略使得SSD查询次数降低一个数量级。底层优化:通过异步IO和数据对齐等优化技术,SSD读写性能提升5倍,直达SSD理论极限5*3GB/s。△图5.
2022年11月10日
其他

Mobile GPU推理的选择:OpenGL vs. OpenCL

Lite的文章,就是提到OpenCL后端比OpenGL后端性能好,但事实真的是如此么?前几天我们刚发布有关《ShaderNN推理框架:来自OPPO的着色器深度学习推理引擎》的介绍,其GPU
2022年11月2日
其他

ShaderNN:来自OPPO的着色器深度学习推理引擎

Systemshttps://www.scss.tcd.ie/publications/theses/diss/2018/TCD-SCSS-DISSERTATION-2018-007.pdf2022
2022年10月30日
其他

Google MediaPipe:设备端机器学习【完整解决方案】背后的技术实现

Calculator,会再次打开,即手掌检测模型再次打开,这样的整体方案,有很快的handlandmark模型会每一帧跑,同时有一个比较慢的手掌检测模型,手掌检测模型在有需要时候才会跑。图15
2022年9月28日
其他

深度学习框架MegEngine CUDA INT4推理方案学习:Tensor Core、INT4算子特点、优化思路

core是什么区别?(https://www.zhihu.com/question/451127498),下面摘要如下。简单来说,概念上,二者都是运算单元,差异体现在算力和运算场景,CUDA
2022年9月22日
其他

MegPeak——让你更懂你的处理器:RooflineModel/最优指令组合/探索优化空间

的生成。(NeuralTalk评:宏展开的代码见https://github.com/MegEngine/MegPeak/blob/main/src/cpu/aarch64.cpp)图9
2022年5月31日
其他

端侧模型训练54分钟——完成声音网络模型调优

[1]我们对前沿的不同TTS系统进行对比,从说话人相似性、声音质量、合成语音的整体自然度等多个维度评估生成的语音的效果。图3
2022年4月20日
其他

华为诺亚方舟实验室 Bolt v1.2.1 在 QualComm GPU 上的优化总结

作用于深度学习计算本身还有大量计算潜力有待挖掘,但仍然面临着很多挑战,希望可以早日看到更加统一、高效且透明的编程框架,也希望整个行业生态能越来越好。关于Bolt、GPU优化的相关文章Bolt
2021年11月12日
其他

快手 AI 工程化落地:挑战、思考和实践

NeuralTalk评:7月初便看到这篇文章,这三四年的简报也在断断续续地关注YCNN、YCNN2,再到现如今KwaiNN的消息,身边快手的朋友也经常发相关岗位的招聘。本文介绍快手这方面的工作,与前些日子推送的《字节跳动APP工厂的端云一体AI落地方案:端云深度融合,模型极速上线之路》类似,写得还蛮详细。NeuralTalk认为,本文也算是比较中规中矩的大厂AI架构与实践,而不同点在于,快手聚焦于手机平台,移动端的工程化落地更细致,这是优点更是业务基线,当然也有挑战,如文末提到的在输出效果和工程代码上,服务端与移动端的尚未完全统一等。Y-tech///作为国民短视频社区,快手平台平均日活跃用户
2021年8月8日
其他

AI 硬件公司接入框架与 AI 框架算子层级的思考

API.当然,目前对于AI软硬生态来说,还缺乏一个真正的被认可的标准,ONNX虽然有一定认可度,但目前其对于训练场景的描述能力不足,以及ONNX标准已经呈现出碎片化分裂的一些趋势,使得硬件厂家在对接
2021年7月27日
其他

GPGPU BLAS 计算库 CLBlast: A Tuned OpenCL BLAS Library

C规则。而clBLAS的kernel代码则是通过C++代码生成,难以阅读扩展和维护。架构设计在BLAS的实现上,完全兼容NNetlib的BLAS接口,也提供C/C++/Java接口。BLAS
2021年7月24日
自由知乎 自由微博
其他

阿里云GPU计算平台首次超百万级性能纪录!异构计算平台打破MLPerf推理纪录,每秒处理107万张图片!

™1.0版推理性能测试结果。阿里云服务器研发团队基于震旦异构计算加速平台的软硬件全栈优化技术获得历史性突破!在MLPerf图像分类(Image
2021年7月19日
其他

字节跳动APP工厂的端云一体AI落地方案:端云深度融合,模型极速上线之路

平台实现了数据打通,可以实现无缝的线上实验对比,大大加快业务线上效果的验证(NeuralTalk评:字节的A/B测试相当普及)。除了上面提到的常规配置能力,Pitaya-MLX
2021年7月2日
其他

网易有道开源EMLL:高性能端侧机器学习计算库,大幅提高计算性能

简介在人工智能技术不断深入发展的今天,我们对于计算的性能要求越来越高。传统的计算处理多数是基于云侧的,把所有图像、音频等数据通过网络传输到云中心进行处理后将结果反馈。但是随着数据的指数式增长,依靠云侧的计算已经显现了诸多不足,例如数据处理的实时性、网络条件制约、数据安全等,因此端侧的推理则愈发重要。在这样的背景下,网易有道AI团队自主设计研发了高性能端侧机器学习计算库——EMLL(Edge
2021年6月15日
其他

从GPU谈异构,这是ARM处理器架构师的趣谈

一样的框架,削峰填谷,天堑变通途,让世间没有难做的计算,嗯,我还是存疑吧,毕竟‘我又不懂’,不过这事也值得另起一贴聊聊,牛年不吹牛那一年也白过。就这篇文章的立足点,要谈个人粗浅的理解的话,当下的
2021年6月11日
其他

MegEngine TensorCore 卷积算子实现原理

前言2020年5月Nvidia发布了新一代的GPU架构安培(Ampere)。其中和深度学习关系最密切的莫过于性能强劲的第三代的TensorCore,新一代的TensorCore支持了更为丰富的DL(Deep
2021年6月9日
其他

EdgeRec: 手机淘宝端上推荐的问题与挑战

打开淘宝主页,会有商品的推荐。类似的,打开抖音,快手,也会有视频推荐。这些一般被称之为瀑布流模型,它的框架则是cloud-to-edge,即每次打开,客户端会向服务器发送请求,将推荐列表从服务器上拉取下来。但是这样会有延迟问题:系统反馈的延迟:
2021年6月8日
其他

轻又快!TensorFlow Lite 设备端推荐解决方案

(Bag-of-Words):计算活动嵌入向量的简单平均值。CNN:对活动嵌入向量应用一维卷积,然后进行最大池化。RNN:对活动嵌入向量应用
2021年5月20日
其他

从我开发过的Tensorflow、飞桨、无量框架看深度学习这几年

API层过度复杂。后来方案被采纳了一半,大佬们希望能够更多的复用Keras接口。其实没有完美的API,只有最适合某类人群的API。有个小插曲,当时Keras的作者François也在Google
2021年4月21日
其他

深入浅出 | 谈谈MNN GPU性能优化策略

Imgae-object与Buffer-object的区别对比。高通平台明确给出下图数据流路结构图,当使用Image-object存储时,在进去读数据时候可以使用Texture处理器和L1
2021年4月14日
其他

Bolt v1.2加速深度学习推理,发挥x86 CPU极致性能

模型转换,提前准备模型在resnet50目录下,这一步会该目录下生成resnet50_f32.bolt文件./install_linux-x86_64_avx2/tools/X2bolt
2021年4月7日
其他

移动端GPU矩阵乘优化

内存存储数据可以进一步提升上一版本性能。Texture和buffer内存一般是通过不同的硬件单元进行加载的,所以,在使用纹理内存的时候,是选择A/B其一存储在Texture
2021年3月2日
其他

AI框架的挑战与MindSpore的解决思路

2020年的最后一天,MindSpore发布了1.1版本,1.1中很重要的特性是构建了端边云全场景统一的基础架构:https://gitee.com/mindspore/mindspore所以本文重点是剖析全场景统一的AI框架的挑战和MindSpore的解决思路。全场景统一AI框架的挑战所谓全场景AI,是指可以将深度学习技术快速应用在云边端不同场景下的硬件设备上,包括云服务器、移动终端以及IoT设备等等,高效运行并能有效协同。对于框架而言,涉及三大挑战:快速部署、高效运行、端云协同。快速部署问题1:如何将训练好的模型快速地部署到云服务器、移动终端以及各种IoT设备上进行推理甚至增量训练?云服务器上推理通常以Service的方式进行部署,训练好的模型直接通过远程接口调用(gRPC/REST)推送到云服务器上,用户调用云推理服务接口进行推理。对于移动终端和IoT设备,由于硬件资源限制,云侧的模型和推理运行框架体积太大,无法直接部署,因此模型的压缩和运行框架的轻量化成为移动终端和IoT设备上部署的关键。面向移动终端和IoT设备轻量化的挑战,提供独立的轻量化的端侧AI框架是比较好的解决方案,同时这样的轻量化框架可能还不止一种形态,比如类似于智能手机这些富终端和类似耳环这些瘦终端面临的挑战就不一样,富终端一般存储空间还是比较充裕的,有一定的算力;瘦终端的条件则要苛刻的多,底噪要求控制在百K级别,这样你就不能放一个运行时进去,同时还要考虑给AI开发者一个通用的解决方案。问题2:有了轻量化的端侧框架以及好的模型压缩转换技术是否就可以实现快速部署的目的?其实还有问题,因为如果我们端侧的架构与云侧的架构是分离的、实现是不一致的,如模型的IR不同、算子的定义不同、推理的API接口不同,那很可能导致云侧训练的模型无法顺利的转换到端侧去执行,云侧的推理代码无法在端侧重用。一般框架的从云侧训练模型到端侧部署的流程如下:这种从云侧训练模型到端侧部署的流程方式,目前存在3个问题:第一个问题:两套模型定义很难保持一致,比如云侧和端侧的算子经常会出现一方缺失的问题,导致模型转换失败。第二个问题:云和端都需要的功能会重复开发,并可能有不一致,比如为了提升推理性能而进行的fusion优化需要端云两边都做一遍,数据处理的不一致导致精度问题等。第三个问题:云侧训练好的模型在端侧进行在线训练需要相对复杂的转换。问题3:对于分离的端云框架的不一致问题,是否可以通过如ONNX这样的标准去解决?很难,原因在于,AI产业的快速发展,新的算子类型快速涌现,标准实际上很难跟得上,所以解决的途径还是应该着落在AI框架上。高效运行全场景的高效运行,分解下来就是高效的算子、高效的运行时以及高效的模型,实现异构硬件的最大算力,提升AI算法的运行性能和能效比。算子的性能,需要从算法和底层指令优化多个层面进行优化。比如卷积,Winograd算法相比于Im2Col+GEMM,在很多经典卷积神经网络上性能就有很好的性能提升。但是,并不是所有的场景下Winograd的算法都优于Im2Col+GEMM。在下面的图中,当shape为224x224x3x64时,Winograd的性能反而有所恶化。因此,在不同条件下选择最优的算法对性能至关重要。算法层面的优化,更多的是通过减少运行时的计算次数(乘法)来提升性能,而指令层面的优化则是为了更充分的利用硬件的算力。对于CPU硬件,影响指令执行速度的关键因素包括了L1/L2缓存的命中率以及指令的流水,通用的优化方法有:选择合理数据排布,如NHWC、NC4HW4等等寄存器的合理分配,将寄存器按照用途,可以划分为feature
2021年1月21日
其他

TNN行业首发Arm 32位 FP16指令加速,理论性能翻倍

这次TNN又迎来重大更新,下面一起看看吧!TNN由腾讯优图实验室打造,移动端高性能、轻量级推理框架,同时拥有跨平台、高性能、模型压缩、代码裁剪等众多突出优势。TNN框架在原有Rapidnet、ncnn框架的基础上进一步加强了移动端设备的支持以及性能优化,同时也借鉴了业界主流开源框架高性能和良好拓展性的优点。目前TNN已经在手Q、微视、P图等应用中落地,欢迎大家参与协同共建,促进TNN推理框架进一步完善。01Why-FP16指令加速背景1.1
2021年1月15日
其他

MindSpore首发:诺亚NeurIPS 2020多篇轻量化技术端侧模型

:(3-5)同时,我们使两组BN共享一组仿射变换系数,即:(3-6)通过这种方式,SBN消除了BN层统计的量化偏差。实验结果表3.1和表3.2比较了我们的方法和其他SOTA量化方法BNN,
2021年1月10日
其他

GPU上的高效softmax近似

在语言模型的训练中,词表的大小往往是一个瓶颈,因为要计算context在所有词语上的概率分布。这个分布则是由softmax计算得到的。论文[1]针对softmax做了一些优化,尤其对GPU环境做了适配,将softmax的计算提升2倍到10倍。Overall一般针对softmax的优化可以分为三类:损失函数的近似,比如,使用层次化+霍夫曼编码的方法进行优化。基于采样的方法,基于unigram或者bigram的频次对softmax进行采样,从而加速计算。自归一化方法,计算出来的logits做完指数后直接就是概率,无需做softmax里的归一化。本文所讨论的方法属于第一类。语言模型回顾语言模型,定义就是基于前面的context,去预测下一个词语。基于统计的语言模型会控制context中的词语数,比如bigram就是context里只有一个词,trigram则是context里包含两个词语。而现在基于神经网络的语言模型则没有这个限制,比如LSTM、Transformer等理论上可以看到context里所有的词语。之所以说是理论上,是因为往往为了速度考虑,不会看很长,比如Bert的长度限制就是512.而概率分布则是通过softmax来计算:对softmax进行加速的比较流行的方法就是层次化softmax,即对词表进行分组,先计算组的概率,然后再计算组内每个词的概率。而最后词语的概率则是组概率乘以组内词语概率。本文所介绍的方法就是基于层次化softmax的。GPU上的矩阵计算Softmax的计算分为两部分:
2020年12月30日
其他

华为诺亚Bolt助力HMS机器翻译:从TinyBert到纯A55小核实时ASR

不断开发,不断经受业务考验,才有了今天的Bolt。可以看出,Bolt在NLP深度学习上已经有了比较好的基础——不只是ARM
2020年12月19日
其他

华为端引擎Bolt GPU性能优化:让上帝帮忙掷骰子

概述移动端GPU在深度学习网络前向推理中占据着重要的地位,硬件本身具备高性能低功耗,适应大规模密集型计算等优势。普及已久的OpenCL与新兴的Vulkan也为其提供了完整的并行编程解决方案。不断推进深度学习前向推理的GPU支持与优化是业界的共同目标。Bolt深度学习轻量级推理库的MALI
2020年12月15日
其他

优化 TensorFlow Lite 推理运行环境内存占用

实现https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/simple_memory_arena.h
2020年12月2日
其他

深度学习端侧推理框架Bolt v1.0发布,领跑端侧AI性能与应用

Bolt是基于华为诺亚方舟实验室研究成果,开源社区孵化的高性能深度学习推理加速库。Github链接:https://github.com/huawei-noah/bolt,欢迎大家前往下载使用v1.0版本,用户交流QQ群:833345709。https://github.com/huawei-noah/bolt/blob/master/docs/BENCHMARK.md高性能:Bolt推理时间实测低于现有的开源加速库15%+。多平台:Bolt支持ARM
2020年11月28日
其他

走向ARM CPU 1-bit推理的极致道路

知乎作者:十七树原文链接:https://zhuanlan.zhihu.com/p/158161592本文已获原作者转载授权深度学习的端侧学习对轻量化有着极致的追求,从2016到现在,我们看到业界在推理时使用的数据类型位数一降再降:FP32、FP16、INT8……。显而易见,低比特能节省模型占用的存储空间和功耗,在某些精心设计的算法上面也能获得性能优势。在这一点上,1-bit毫无疑问是经典计算机上可以做到的极致。举一个实际的例子,Birealnet18(二值化的Resnet18)用FP32类型存储大概需要45MB,而通过Bolt转换后得到的1-bit+FP16存储只需要占用2.7MB,exciting!低位数与性能提升的可能那么,权重位数走向极致,是不是就能带来计算速度的提升呢?答案取决于你使用的硬件。现阶段深度学习的核心计算还是矩阵乘法,这里面涉及到的就是乘法和加法。大多数硬件的ALU可以处理的最小数据类型就是INT8,要是按照严格的矩阵乘法定义,低于8位的数据类型都得先展开到8位来操作(INT4和INT2哭晕在厕所)。但是1-bit可以来个“降维打击”:权重只有0和1,干脆省掉乘法,直接全都做加减法,多么HAPPY。看到这里,你已经领会到Binary
2020年7月10日
其他

探索Bert端侧手机落地:6ms的TinyBert,结合硬件的极速推理

个百分点内)的效果。Bert端侧推理优化策略TinyBert中的主要运算是矩阵和向量运算,比较容易实现向量化,我们主要使用了如下方法:
2020年7月5日
其他

MNN: 如何客观评价推理引擎

15%的领先。但这再也不是当年从2000ms降低到700ms那样的飞跃了。而如果我们放眼大一些的模型,比如Inception
2020年6月30日
其他

华为MindSpore开源AKG(Auto Kernel Generator)项目

API向用户提供统一的模型训练、推理、导出接口,以及统一的数据处理、增强、格式转换接口。GHLO包含硬件无关的优化(如死代码消除等)、自动并行和自动微分等功能。MindSpore
2020年6月21日
其他

Arm Mali GPU 四大微架构概述

对于手机终端来说,GPU图像处理能力是衡量一台手机的性能标杆。首先,是UI流畅性,大家拿到手机都得先划来划去看下UI是否流畅,而UI其实主要还是用GPU渲染的;其次是游戏的流畅性,对于很酷炫的游戏,GPU是目前手机端的唯一高性能3D加速器。在手机端,主流的几个GPU主要是PowerVr,Mali,Adreno。苹果早起使用的就是PowerVR的定制版本,不过随着苹果自研GPU,PowerVr现在基本可以是算卖给了紫光;Mali是鼎鼎大名的安谋半导体ARM的图形加速IP;Adreno是高通的图形GPU。当然这里不是要对比这些GPU的性能,而是简单介绍下Mali的GPU系列。Mali其实是Arm的Mali系列IP核,但是很多现在在很多网上提到Mali其实是直接认为是Mali的GPU。Mali系列其实还有视频,显示控制器,camera等。但是Mali应该算是授权比较多的。而且因为GPU也被更多的非业内人士所熟知。1、Mali的四大架构之一:Utgard第一代微架构Utgard(北欧神话人物:乌特加德)。这一代架构出来的比较早,主要是图形加速IP。可以追溯到2007年的mali-200。不过最让人惊讶的是mali-4xx系列,现在很多电视芯片都还在用这个IP。比如小米的智能电视,还有很多是mali-4xx系列的。Utgard这一代vertex
2020年6月15日