稀疏性如何为AI推理增加难度
稀疏性如何为AI推理增加难度
NVIDIA Ampere架构使数学运算加倍,以加速对各种神经网络的处理。
如果曾经玩过游戏Jenga,那么将有一些AI稀疏感。
玩家将木制积木交叉成一列。然后,每个玩家轮流小心地移开一个障碍物,而不会倾倒立柱。
它从一开始就很容易,但是变得越来越毛茸茸,直到失败的玩家拔出一个障碍物,导致塔楼坠毁。
多年来,研究人员一直在努力地利用数字打积木,以利用稀疏性来加速AI。他们尝试从神经网络中提取尽可能多的不需要的参数-而不破坏AI的超高精度。
目标是减少深度学习所需的矩阵乘法堆,从而缩短达到良好结果的时间。到目前为止,还没有大赢家。
迄今为止,研究人员已经尝试了多种技术来提取神经网络中多达95%的权重。但是随后,他们花了比他们节省的时间更多的时间,不得不采取激进的步骤来弥补简化模型的准确性。适用于一种模型的步骤不适用于其他模型。
数字稀疏
NVIDIA安培架构引入了第三代张量磁芯在NVIDIA A100的GPU称取在网络权细粒度稀疏的优点。提供了高达2倍的密集数学最大吞吐量,而不会牺牲深度学习的核心矩阵乘法累加作业的准确性。
测试表明,这种稀疏方法在许多AI任务(包括图像分类,目标检测和语言翻译)中使用密集数学来维持方法的准确性。它也已经在卷积神经网络和递归神经网络以及基于注意力的转换器上进行了测试。
A100打包了稀疏矩阵以加速AI推理任务。
内部数学运算速度的提高对应用程序级别具有重大影响。使用稀疏性,A100 GPU可以运行BERT(来自转换的双向编码器表示),这是用于自然语言处理的最新模型,比密集型数学要快50%。
NVIDIA Ampere架构利用了神经网络中较小值的普遍性,从而使尽可能广泛的AI应用程序受益。具体来说,定义了一种训练神经网络的方法,该方法可以去除一半的权重,即所谓的50%稀疏度。
当做对时,少即是多
一些研究人员使用粗粒度剪枝技术,这些技术会从神经网络层中删除整个通道,从而经常降低网络的准确性。NVIDIA Ampere架构中的方法采用结构化的稀疏性和细粒度的剪枝技术,不会明显降低准确性,用户在重新训练模型时可以进行验证。
适当剪枝网络后,A100 GPU将自动完成其余工作。
A100 GPU中的Tensor Core有效压缩稀疏矩阵以启用适当的密集数学。跳过矩阵中实际上是零值位置的位置会减少计算量,节省功耗和时间。压缩稀疏矩阵还可以减少宝贵的内存和带宽的使用。
稀疏性如何为AI推理增加难度的更多相关文章
- AI推理与Compiler
AI推理与Compiler AI芯片编译器能加深对AI的理解, AI芯片编译器不光涉及编译器知识,还涉及AI芯片架构和并行计算如OpenCL/Cuda等.如果从深度学习平台获得IR输入,还需要了解深度 ...
- 使用函数计算三步实现深度学习 AI 推理在线服务
目前深度学习应用广发, 其中 AI 推理的在线服务是其中一个重要的可落地的应用场景.本文将为大家介绍使用函数计算部署深度学习 AI 推理的最佳实践, 其中包括使用 FUN 工具一键部署安装第三方依赖 ...
- 基于函数计算 + TensorFlow 的 Serverless AI 推理
前言概述 本文介绍了使用函数计算部署深度学习 AI 推理的最佳实践, 其中包括使用 FUN 工具一键部署安装第三方依赖.一键部署.本地调试以及压测评估, 全方位展现函数计算的开发敏捷特性.自动弹性伸缩 ...
- AI推理单元
AI推理单元 推理服务供了一套面向 MLU(Machine Learning Unit,机器学习单元)设备的类似服务器的推理接口(C++11标准),以及模型加载与管理,推理任务调度等功能,极大地简化了 ...
- L1、L2范式及稀疏性约束
L1.L2范式及稀疏性约束 假设需要求解的目标函数为: E(x) = f(x) + r(x) 其中f(x)为损失函数,用来评价模型训练损失,必须是任意的可微凸函数,r(x)为规范化约束因子,用来对模型 ...
- UFLDL(五)自编码算法与稀疏性
新教程内容太繁复,有空再看看,这节看的还是老教程: http://ufldl.stanford.edu/wiki/index.php/%E8%87%AA%E7%BC%96%E7%A0%81%E7%AE ...
- 【转】自编码算法与稀疏性(AutoEncoder and Sparsity)
目前为止,我们已经讨论了神经网络在有监督学习中的应用.在有监督学习中,训练样本时有类别标签的.现在假设我们只有一个没带类别标签的训练样本集合 ,其中 .自编码神经网络是一种无监督学习算法,它使用了 ...
- cuSPARSELt开发NVIDIA Ampere结构化稀疏性
cuSPARSELt开发NVIDIA Ampere结构化稀疏性 深度神经网络在各种领域(例如计算机视觉,语音识别和自然语言处理)中均具有出色的性能.处理这些神经网络所需的计算能力正在迅速提高,因此有效 ...
- 全场景AI推理引擎MindSpore Lite, 助力HMS Core视频编辑服务打造更智能的剪辑体验
移动互联网的发展给人们的社交和娱乐方式带来了很大的改变,以vlog.短视频等为代表的新兴文化样态正受到越来越多人的青睐.同时,随着AI智能.美颜修图等功能在图像视频编辑App中的应用,促使视频编辑效率 ...
随机推荐
- 开源囧事4:你们这些卖代码的能不能留自己的QQ号?留我QQ号干嘛?
缘起于开源项目 从 2017 年开始,陆陆续续写了一些开源项目放到开源网站里,都是一些实战项目,给大家练练手.有基础整合的demo,有 Spring Boot 博客项目,有 Spring Boot 商 ...
- 第四部分 数据搜索之使用HBASE的API实现条件查询
因为数据清洗部分需要用到Mapreduce,所以先解决hbase的问题,可以用命令先在hbase存一下简单的数据进行查询,之后只要替换数据就可以实现了原本功能 在看该部分前,确保Hase API看了, ...
- c++逆向分析----返回对象
对象不使用默认析构函数 class Test { public: char cNum1; int iNum2; int* pInt; }; Test _ReturnObject() { Test st ...
- SimpleDateFormat线程不安全的5种解决方案!
1.什么是线程不安全? 线程不安全也叫非线程安全,是指多线程执行中,程序的执行结果和预期的结果不符的情况就叫做线程不安全. 线程不安全的代码 SimpleDateFormat 就是一个典型的线程不 ...
- 没有发生GC也进入了安全点?这段关于安全点的JVM源码有点意思!
文末 JVM 思维导图,有需要的可以自取 熟知并发编程的你认为下面这段代码的执行结果是怎么样的? 我如果说,执行流程是: t1 线程和 t2 线程一直执行 num 的累加操作 主线程睡眠 1 秒,1 ...
- 『动善时』JMeter基础 — 15、使用JMeter实现上传文件
目录 1.用于演示的项目说明 2.测试计划内包含的元件 3.HTTP请求界面内容 4.查看结果 5.总结 6.补充:MIME类型简介 (1)MIME说明 (2)常见类型 在上一篇文章[使用JMeter ...
- volatile 的使用
① 编译器很聪明,会帮我们做些优化,比如: int a; a = 0; // 这句话可以优化掉,不影响 a 的结果 a = 1; ② 有时候编译器会自作聪明,比如: int *p = ioremap( ...
- 常用加密算法学习总结之散列函数(hash function)
散列函数(Hash function)又称散列算法.哈希函数,散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来.该函数将数据打乱混合,重新创建一个叫做散列值(hash values ...
- stressapptest工具
1.在H桌面V7B04上运行stressapptest工具编译报错.请研发协助! 2.因为stressapptest工具在兆芯和龙芯都能正常运行,所以我怀疑是工具stressapptest未在H桌面V ...
- Linux_磁盘管理理论概述
一.磁盘阵列 1.什么是磁盘阵列? 1️⃣:磁盘整列就是将多块独立的磁盘组合到一起,形成容量大的磁盘组. 2️⃣:将相同的数据存放到不多个的磁盘的不同位置 2.RAID0 1️⃣:RAID0是磁盘整列 ...