这个学期的任务在开学的时候就已经定了下来.和老师聊过关于自己的想法,老师也表示了自己的想法,后来发现老师想的还是比我周到点.导师的意思是让我继续搞我的ARM板子,一直觉得搞这个没有搞PC机来的好.因为现在的板子的硬件已经提高了很多,可以说比以前的pc机都要强悍很多,在上面作开发让我觉得与在pc机上作开发没有什么区别.这样的思想在上个学期一直在我脑袋中存在呢,所以很多时候做事不是很积极的.但是后来导师说了,说你认为在上面做简单是因为你还没有深入进去,你还没了解它比较内涵的东西.那个时候的我觉得导师是忽悠我的,或者我真的只是想作一个软件开发者,而不喜欢自己去碰硬件,总是想和老师说这些.
大概老师是看穿我的思想了,在开学的时候就把任务给我安排好了.不能让我随便打酱油了,而且还和我说了我现在到底是往哪个方向发展.其实这个学期的任务看上去其实很简单的,就是把程序在板子能跑的更加快.那么要达到这个目的的最为主要的就是优化.导师的意思是说我要往底层发展,做一个硬件工程师,当然与那些画板子的工程师不一样的,我的人物就是提出自己的硬件要求和对程序进行最大和最深的优化.
一直作的都是C级别的优化,可是在上个学期的测试中发现这种级别的优化是很水的,提高的程度不是很客观.现在要往更为底层的发展.要接触硬件要接触汇编.这让我认清了自己的道路,而且本人对这个还是很感兴趣的.
接下来就要讲的就是NEON这个东西了.
一开始见到它还觉得它是一个可有可无的技术,后来看了很多的文章以后发现这个才是优化的突破口.
1.什么是SIMD ####
其实这个术语我很久以前就已经听过了,可以一直只有表面的理解,不就是单指令多数据流吗.难道这个还能比MIMD还要牛逼吗,一直觉得这是一种可有可无的技术,就算就在今天我还是觉得这样的技术就是过渡性的技术.可是今天看了一篇文章以后才发现它都有用之处.
通常我们进行多媒体处理的时候,很多的数据都是16位或者8位的,如果这些程序运行