深度学习模型的参数都是浮点数,相对来说它的计算比整数要复杂一些,特别在一些低端的芯片,乘法器都不够多的情况下,浮点的性能就会比较差。如果把它转成定点整数运算,那么在精度下降 1% 的情况下,它的速度将会带来几倍的提升。 二值化比定点化更进一步,一个权重值只占用一个比特,并且可以将乘法运行转换为异或操作,在特定硬件上并行性会更高,执行速度会更快,非常适合在低端芯片上使用。 4. SIMD,缓存,多线程 SIMD, 单指令多数据,一次一条指令做多个操作,增加缓存命中,减少内存访问。一些不同的算法如果放在不同的线程中去跑,对外提供的整体组合的效果会非常的快。 5. 异构计算 与硬件相关比较大,根据我选择的不同的硬件、不同的方案、定制化指令的不同,硬件选择都会接触到异构计算。 将高性能服务器上运行的算法,迁移到嵌入式平台实时运行,其难度非常大,除了算法软件层面的优化,还需要充分利用硬件提供的计算能力。在硬件选择方面,更是需要选取最适合的方案才能搭配出最优的性价比。 硬件选择 1. ASIC 专用芯片 谷歌 TPU,中科院 DIANNAO 系列,(需要找到大量使用的客户,才能降低成本) 在人工智能早期,只有少数公司用到这个方案,所以它的受众并不会特别大。 2. 基于 GPU 的方案 GPU,英伟达公司推出的 Jetson TX1,Jetsong TX2 等嵌入式 GPU 方案 GPU 中有多核并发的优势,在上面运行深度学习的复杂运算时,可以进行并行运算。同时,GPU 本身支持定点、浮点的操作,用 GPU 方案,相对来说能达到一个几倍的加速。 3. 基于 FPGA 的方案 FPGA,主要供应商是赛灵思公司,各家算法公司在其上进行开发 FPGA 对开发人员的要求非常高,首先要对软件很熟悉,又要非常熟悉硬件,现在有些公司提供的一些解决方案,相当于能够直接将深度学习的模型导到他们做的 FPGA 方案上去,然而,他们并不知道内部是如何优化的,整个 FPGA 方案的成本会非常高。 4. 基于 DSP 的方案 DSP,高通,Movidius,CEVA 等芯片厂商,成本低 伴随着一些大公司如高通、CEVA 等厂商的使用,j2直播,它的出货量变得非常大,所以单片的成本非常低。DSP 可以进行数字信号处理,以图像来说,它有专门的并行操作可以对图像进行快速访问并计算。 5. 纯 CPU 方案 ARM,MIPS,有非常多的选择,具有最大的客户群体,不同的芯片,性能和应用场景差距非常大 与前面说的四种优化方式相比,它的场景非常大,对于我们来说更多注重的是它优化的方向。因为所有方案里面都是有 CPU 的,它是一个必不可少的方案,如果在 CPU 上做的很快, 那么在一些硬件、协处理器的情况下,速度会更加提升。
在 Android TV(ARM CPU)上本地运行的实时人脸追踪+人脸识别 未来发展趋势 从硬件成本考量,GPU 和 FPGA 由于价格及功耗过高,限制了应用的场景,基本上在普通消费级产品中不会使用。在高端的一些方案当中,可能会选择的是 GPU 和 FPGA 方案。因为它现在能提供一个比较大的计算量和计算能力,对于并不是非常注重成本的情况下,这两个方案在目前是比较合适的选择。 另外,纯 CPU 的方式对算法优化提出了非常高的要求。如果要使用它的话,可以进行两个方面的优化。一个是云端方式,在云端去做,但是这可能并不是我们所看好的方案。另外一个在 CPU 上经过非常高的优化之后,使得算法全部或者部分的在 CPU 上运行。人工智能是一个趋势,低成本的 CPU 方案目前能做的事情不多,所以芯片厂商们都会在这块进行升级,而在升级完成的 2-3 年时间窗口内,纯 CPU 的方式还是需要做一些软件上的优化。 (责任编辑:本港台直播) |