我们正在经历这样一个时代,软件硬件化。一个 system 可以通过软件实现,也可以通过硬件来实现。
通过软件来实现来好处就是可以随便更新,修改。例如微信可以经常升级。
通过硬件来实现的好处就是性价比更高,相同效率的功能,你可以用更便宜的硬件就跑起来了。但是硬件实现不容易更新修改,当然它可以在硬件上层封装抽象起来,让它可以更方便更新。
例如 CUDA,但是 CUDA 也是经历了 固定功能单元 向 通用执行引擎 转换的过程,这个里程碑是 G80。这对于 NVIDIA 来说是一个无比正确的战略。他牺牲一些性能来换取业务上的灵活性,可以激发业务层的创新。
但是 CUDA 的编程方式,还是跟 X86 平台的编程方式是不太一样的。而且硬件也不只是 CUDA 一种,有一些硬件实现他就是不太容易更新修改的。
软件业务层的创新到了一定程度,就会出现一些成熟稳定的功能 或者 产品,这些功能基本不会再继续更新,因为他们已经满足人们的需求。
这时候如果再把这些功能跑在 一个高度抽象的平台上,性价比就会不太高。
这时候就会开始把 软件 硬件化,例如把 RTC 一对一通话 塞进去一个 100 块的板子里面,未来它可能还会塞进去一块 50 块钱的板子里面。也就是说,你只需花 50 块钱,就能买到一个能跟家人通话的视频产品。
其实 软件硬件化 这个剧情在曾经的时代出现过,比较典型的是 java 虚拟机在嵌入式设备上的实现。
在这个时代里面,其实最重要的是 算法翻译工程师,因为不同平台,他的编程方式不太一样,所以就需要工程师把现有的算法 翻译成另一个平台的实现,有些还需要根据平台做一些调整跟创新。这就需要工程师对算法有充分的理解。
这些算法可以是编解码算法,AI 算法,音视频特效算法 等等。
我觉得这就是这个时代的核心竞争力。
是的因为芯片的种类太多了,需要一个人同时吃透算法过程,对于算法过程中某些部分操作可以采用结果相近但是更适合硬件低成本实现的方案来做