FPGA将取代CPU和GPU成为机器人开发的新宠儿?其实并不会【yabo88登录】 - yabo88登录-首页

当前位置:首页 > 探索 > 奇闻

FPGA将取代CPU和GPU成为机器人开发的新宠儿?其实并不会【yabo88登录】

2020-09-16 00:31:02

【yabo88登录】最近我们看见一篇文章,说道FPGA可能会代替CPU和GPU沦为将来机器人研发领域的主要芯片。文章列出了很多表格和实验数据,证明了在很多领域FPGA的性能不会很大高于CPU。并且应验FPGA将来可能会代替CPU和GPU现在的地位。

但事实知道是这样吗?要搞清楚这个问题,我们首先得对CPU和FPGA都有充足的理解。FPGA这个词有可能很多人都有所耳闻,特别是在是理工科的同学们大多数应当都强迫或不得不被这个词刷屏过。

但要真为追究责任一起FPGA究竟是个什么东西。很多非涉及专业的人都会陷于一脸迷茫。不过想起开发板,有可能告诉的人就很多了,有些人会以为FPGA就是开发板。但实质上FPGA所指的只是开发板上面的那一小块芯片而已(右图黄圈一处),整个开发板的其余部件都是为了协同它工作,让它充分发挥出有它的性能而不存在的。

FPGA开发板,via google.com/youtube可即使盼的同学曾多次查出了这里,也许也搞不懂它和CPU究竟有什么区别,却是把它的方位替换成CPU,整个开发板看上去就变为一块普通的电脑主板了嘛,感觉真是分分钟接通硬盘和显示器就可以开始LOL了。显然,不管从外形上来看还是实际的功能上来看,FPGA和CPU都展现出得过于像了,但在这两者相近的外表之下,其内部结构只不过具有根本性的差异,而这种差异也正是FPGA不会被很多人指出合适机器人研发的原因,因为它的结构要求了它在处置机器人必须的很多运算,特别是在是在机器感官这方面的处置时的速度不会比CPU慢很多,同时还能将功耗掌控在很低的水平。

CPU的结构在谈FPGA之前,我们再行从大家较为熟知的CPU的数据处理方式谈起。首先必须特别强调的一点是,处置我们指令的计算机元件本身是无法解读我们的指令的,它们不能解读作为构成CPU最基本的元件——晶体管能构建的两种状态:“进”和“关口”的含义,对应的就是1和0这两个机器码数字,这也是计算机的整个体系都基于二进制创建的原因。而为了让我们发布命令的各种各样的指令变为CPU能解读的0和1,CPU必须一个专门的译码器来翻译成我们的指令。

这个过程分成两步:“取指”(从一个专门存放在指令的存储器中将必须继续执行的指令萃取出来)和“译码”(根据特定的规则将指令翻译成计算出来单元需要解读的数据)。CPU的结构大约是这样的via wikipedia其中的Control部分就是掌控取指、译码等整个流程的部分,Cache是在高速的CPU与比较短距离的内存间为了提升从内存取得指令的效率而设置的一个临时指令存储器,DRAM则是速度比较慢的那一部分指令存储器。

可以看见,确实的计算出来单元ALU只占到了CPU结构中并不大的一部分。这样的设计是有原因的。CPU不存在的目的是作为标准化计算机的处置核心,留意“标准化”二字,这意味著块核心必需不具备处置各式各样千奇百怪的指令拒绝的能力,并且因为要处置来自多个设备的催促,它必需享有随时终止目前的运算转而展开其他运算,已完成后再行从中断点之后当前运算的能力。

把这些话看完了你有可能都慢睡觉了,但在CPU内这些都拒绝在一瞬间已完成。所以CPU必须有非常复杂的逻辑掌控单元和这套独有的指令翻译成结构。

这都是确保CPU能顺利完成它的愿景的必需的东西。可以说道,在计算出来效率和通用性上CPU壮烈牺牲前者自由选择了后者。FPGA的结构而FPGA最先就是指专用集成电路发展而来的半自定义简化的可编程电路。

从问世的那一天起它的身世就要求了它不像CPU那样可以灵活性的处置各种没见过的指令,而不能根据一个相同的模式来处置输出的数据然后输入,FPGA的结构是这样的via CSDN很非常简单,绝大部分都是计算出来单元(上图中黄色部分只不过就相等于CPU结构图中绿色的部分),但没掌控单元并不代表FPGA就会继续执行指令了,事实上FPGA里掌控单元的角色就是由图中的每个掌控单元和单元之间可编程的逻辑连接线来已完成的,通过FPGA编程,开发者可以变更FPGA的每个单元的运算逻辑和单元之间的相连方式,从而使其超过和一般的运营程序差不多的效果。它与CPU的有所不同,在于它无法应付没被编程过的指令。

编程方式一旦确认,FPGA就不能根据被编程的处置逻辑和方式来处置特定的数据输出。但这样的架构换取的是FPGA内部完全仅有是计算出来单元,因此FPGA的实际运算能力不会比看上去强劲得多,特别是在是在运营非常简单但重复性低的任务的时候,由于非常简单,因此很少的几个逻辑单元,甚至一个就能独立国家输入这个运算的结果。而由于省却了CPU的取指和译码两个步骤,FPGA反复运营完全相同代码的效率获得了很大的提升。有一个比喻打得很合理,CPU就像大学里一位德高望重的老教授,分数微分啥都会算数,但却是它只有一个人,当计算出来任务太重的时候也不会被累官趴下,而FPGA这样的结构,就看起来整个小学里所有小学生构成的队列,每个人都只不会算数非常简单的加减乘除,但有些量大但不简单的运算任务转交他们就是不会较为慢。

具体表现在性能上,很显著的一点就是一般的CPU不能同时处置4到8个指令,而远比太差的只要FPGA优化得宜,可以同时处置256个甚至更好的指令。只不过GPU的设计思路同FPGA类似于,都是为了处置大量非常简单反复的运算而经常出现的设备。

但GPU的性能勇猛的同时耗电也很高,而FPGA因为编程和优化都是必要在硬件层面展开的,能耗不会较低很多。机器研发中的计算出来现在我们可以描述正题了。前文提及,FPGA在处置机器人必须的某些数据的时候的优势不会比CPU大很多。

到底,就是感官计算出来。我们不必须懂过于多专业知识,只必须想象一下就可以明白其中原理。

yabo888

就像文章中提及的那套主流的方位跟踪算法SIFT的例子:SIFT的主要工作步骤有三步:1:通过特定的算法找到图片中的关键点,2:对关键点可选一个详尽的标识,3:通过大大的对比新旧两幅图片上每个关键点的方位欲出有两幅图之间对应方位的差异。难于找到,整个过程重复性极高,并且其中并没过分简单的运算。

因此用于FPGA展开该算法的计算出来不会比用于CPU慢很多。事实上,文章中回应根据加州大学洛杉矶分校的一项涉及的实验结果,FPGA在运营SIFT指令时的继续执行效率是CPU的整整30倍。处理速度慢这么多,耗电又如此小。

也不该有些人会指出FPGA享有代替CPU和GPU的能力了。但FPGA知道能代替CPU和GPU吗?FPGA相对于CPU和GPU,在展开感官处置等非常简单反复的任务的时候的优势很显著,按照现在的趋势发展下去,FPGA也许不会在未来代替机器人研发中GPU的工作。因为FPGA和GPU虽然都善于大量的反复运算,但FPGA的能耗不会近高于GPU。

可是FPGA也许总有一天没办法代替CPU的地位,而事实上目前的各类应用于中,FPGA也多作为CPU的协处理器而经常出现,而不是确实的核心运算单元。而个中原因只不过也很非常简单,正是我们之前提及过数次的一个词:设计目的。

人类设计机器人的最后目的是期望它们能显得像我们一样,用跟我们类似于的方式思维,享有独立国家辨别形势、处置任务的能力。我们目前还不是很理解大脑工作的明确原理,但无论从经验还是直觉来看,类似于人类的思维都不是由无数逻辑非常简单的堆积起来的。因为思维这件事物的复杂程度早已相比之下远超过了运算的范畴。

比如说,如果你想要计算出来213 x 312而你想要将它修改,你只必须很非常简单的将它分解成213个312相乘,甚至是反复213次312个1相乘。但如果你想算2的64次方呢?如果你想算sin(27°)呢?甚至如果你想算log230呢?如果你一定要将其拆分成非常简单的运算,你就不会找到你必须的资源不会以难以想象的速度快速增长,直到就连把全市的小学生都叫来也做到不完的程度。

就目前的展现出来看,人脑似乎不合适大规模并行计算。而更加看起来CPU那样善于单一且深度的思维(运算)。并且人脑的功能也与CPU的设计定位更加相符。

因此无论如何,在脑科学有突破性进展之前,人们还是不会偏向于用于看上去更加有潜力的CPU来作为机器人的核心运算部件。也许随着FPGA的发展,机器人的更加多感官部件的数据运算不会由FPGA来分担(就像人类的小脑),但很显著,一个部件的地位主要、核心与否,不是靠数量来辨别的。

无法坚称FPGA显然能在机器人研发中充分发挥相当大的起到。但综合来看,它和CPU,甚至GPU更加看起来一种各司其职的地位,动不动就讲替代,也许失礼缜密。原创文章,予以许可禁令刊登。

下文闻刊登须知。【yabo88登录】。

本文来源:Yabo官网下载-www.bottegaculinariabiologica.com

热门推荐