神经网络推理加速入门
大家好啊, 我是董董灿。好久没写技术文章了,自从上次写了《图像识别和resnet50算法拆解》之后,一直在忙,周末也有其他事情。不过忙里偷闲,这篇文章收到了一些小伙伴们的反馈,也一一都阅读回复了。比如有咨询算法应用的——有想了解算法细节的——也有鼓励型的——惊喜之余,感觉自己的文章瞬间有了价值。其实,很早就想写一写神经网络推理加速入方面的文章了想写神经网络推理加速入主要有以下几个原因:第一个原因....

神经网络推理加速入门——超简单的卷积和加法融合—伪代码版
大家好啊,我是董董灿。前几天写了一个卷积神经网络(CNN)中,卷积和加法融合的文章。有同学发私信,希望写一个带代码版本的,方便更好的理解。我的第一反应是,代码版本的咋写,有那么多细节。后来一想,其实那位同学想知道的并不是那些细节,而是一个大致的流程。于是我说,行,那我写一个伪代码版的吧,把大致的代码思路写一下。至于具体卷积算法怎么实现的,建议chatGPT一下,或者看下开源深度学习仓库就行。如果....

神经网络推理加速入门——超简单的卷积和加法融合
大家好啊,我是董董灿。神经网络的优化除了之前提到的一些硬件优化手段之外,还有很多图层方面的优化手段。而且图层方面的优化,有时效果更佳。往往一个有效的优化,甚至可以“消除”掉一个算子的存在。这里的“消除”用的引号,是因为这个算子并未被真正消除,从整个神经网络的计算流上看,这个算法仍然存在。只不过,它的计算过程被其他计算过程掩盖住了,像是被“消除”了。算子融合这里介绍一种算子融合并且使用图层流水进行....

神经网络推理加速入门——转换提前
大家好啊,我是董董灿。做优化有时候真的很头疼,绞尽脑汁的想怎么做算法等价,怎么把神经网络各层指令流水起来,在确保整网精度的同时,又有高性能。但有时做了半天,却发现流水根本就流不起来,总是莫名其妙地被卡住。真的是一顿操作猛如虎,回头一看原地杵。今天介绍一种神经网络的性能优化方法。它不需要懂特深奥的算法知识,就能做到整个优化系统,大到网络,小到算子的性能的成倍提升。而且绝对是成倍的性能提升,并且显而....

神经网络推理加速入门——吞吐和延时
大家好啊,我是董董灿。今天介绍两个在做神经网络性能优化中,非常非常重要的概念——吞吐和延时。其实不光在做神经网络性能优化时会用到,在计算机网络的性能调优时,这两个概念也会被反复提到,可见其重要性。很多同学对这两个概念的最大误区,大概都集中在:高吞吐就等于低延时,低吞吐就等于高延时。这样理解是有问题的。下面介绍这两个概念,帮助大家更深入的理解其区别。吞吐吞吐或吞吐量(Throughput):完成一....

神经网络推理加速入门——循环展开
大家好啊,我是董董灿。这篇文章,会从软件的角度来介绍一个常用的AI加速方法。循环展开如果要我说一个最简单,最有效的,并且人人都能学会的程序优化方法,我估计会投票给Unrooling(译为:循环展开)。循环展开,从名字就能看出来是什么意思:就是把一段循环代码展开来写。听着简单,但具体怎么做呢?先举个简单的例子——高斯年轻的时候,老师曾问他:从1加到100,结果是多少?高斯思考片刻后,给出了5050....

神经网络推理加速入门——存储和计算的高效结合
大家好啊,我是董董灿。计算机冯诺依曼架构下一个特点,就是存储和计算分离,这会带来一个问题,那就是计算机有时会遇到存储墙,也就是存储带宽不够导致的性能下降。如果说流水技术可以为此破局,那么其实还有一个打破冯诺依曼架构的桎梏,将存储和计算过程结合起来。它是怎么做的呢还是先从一个例子说起。假设我要做个炒鸡蛋。正常的话我有以下步骤:把鸡蛋从冰箱里拿出来拿着鸡蛋从冰箱走到灶台在灶台开火,开始炒鸡蛋这个过程....

神经网络推理加速入门——异构编程
大家好啊,我是董董灿。这篇简单介绍一个概念——异构编程。上一篇一个例子看懂流水——从指令到算法用一个生活中的小例子,介绍了流水这一概念。在计算资源有限的情况下,我们可以通过软件的流水技术来提升程序性能。但如果你是土豪,不想耗费太多精力去做软件优化,就想砸钱来提升程序性能,有办法么?当然有,性能不够,芯片来凑。正所谓“众人拾柴火焰高”,只要芯片足够多,性能就能飙到顶。异构芯片编程就是这样的一种方式....

神经网络推理加速入门- 一个例子看懂流水
之前的两篇文章介绍了流水这一技术,它用来进行程序的性能加速,本篇通过一个生活中的小例子,让大家更直观的了解什么是流水。举个例子早晨从起床到上班出门,我们一般会做以下几件事:刷牙、烧水、喝水、出门。如果正常按顺序去做,可能就是先刷牙,然后烧水,等水烧开了喝水,然后出门。假设做每件事需要的时间如下表,那么整个出门前需要花费的时间为55分钟。但是,如果你稍微会一点时间管理的话,我相信你肯定不会先刷牙、....

神经网络推理加速入门——指令流水线
大家好啊,我是董董灿。前言刚毕业的时候在青岛某信任职,做嵌入式软件开发,需要调试电路板。公司有个要求是所有新入职的员工,都要去公司自己的加工厂上两周的班,亲自组装生产电路板,体验产品生产的过程。于是,刚毕业的我,光荣的成为了一名流水线工人,虽然只有两周的时间。这期间,我和同事一起,完成过一天组装3万片电路板的成就,也完成过一天往电路板上插装不计其数电阻、电容的操作,白班夜班倒,记忆犹新。当时的我....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。