计算设备及硬件的发展
知识图谱的发展离不开计算硬件的支撑,特别是知识图谱构建、推理、应用过程中的机器学习算法的训练和预测等过程,对计算硬件的依赖显得尤为明显。随着越来越多不同类型的硬件设备连接到互联网,生成了海量有用业务数据,同时基于这些业务数据在一定程度上改善该行业领域的用户体验。现阶段知识图谱对算力的需求体现在两方面,一是知识图谱算法包括大量的卷积、残差网络、全连接等计算需求,在摩尔定律接近物理极限、工艺性能提升对计算能力升级性价比日益降低的前提下,仅基于工艺节点的演进已经无法满足算力快速增长的需求;二是知识图谱需要对海量数据样本进行处理,强调芯片的高并行计算能力,同时大量数据搬运操作意味着对内存存取带宽的高要求,而对内存进行读写操作尤其是对片外内存进行读写访问的消耗的功耗要远大于计算的功耗,因而高能效的内存读写架构设计对芯片至关重要。目前市场上知识图谱技术使用的主流硬件加速器有三类:GPU、FPGA、ASIC。
CPU与GPU两者都是由控制器、逻辑单元和寄存器组成,在CPU中控制器和寄存器占很大比重,而在GPU中逻辑单元的规模远远高于CPU。这种不同的构架决定了GPU在数据的算术、逻辑运算等方面的并行处理能力显著增强,而基于神经网络的知识图谱技术,对并行处理能力的要求远远高于计算精度。除了计算核心的增加,GPU在每个流处理器集群末端设有共享内存,在共享内存中就可以完成线程之间的数据通讯,通讯速度显著提高,而CPU每次都返回内存,进行数据调用。另外,GPU采用的是GDDR5显存颗粒,具备很高的工作频率和显存带宽,对大规模深度神经网络的训练更有优势。越来越多的深度学习标准库支持基于GPU加速,如OpenCL、CUDA等。英伟达的GPU云平台NGC,提供Caffe、Caffe2、MXNet、CNTK、Theano、TensorFlow、Torch等框架、深度学习SDK等,大大促进了知识图谱技术的发展与应用效果。
GPU价格昂贵且功耗大,相对于GPU,价格便宜、能耗较低的可编辑门阵列(FPGA)引起了大家的注意。目前,FPGA可以采用OpenCL、C等更高效的编程语言,降低了硬件编程的难度,还可以集成重要的控制功能,整合系统模块,提高了应用的灵活性,FPGA以门电路直接运算,速度快,而用户可以自由定义这些门电路和存储器之间的布线,改变执行方案,以期得到最佳效果。FPGA是承载知识图谱技术的重要手段之一,以其价格低、功耗低的特性,使得知识图谱在智能终端上推广成为了可能。
随着机器学习技术的蓬勃发展,越来越多的机器学习算法被应用到知识图谱的构建、演化、推理等各个环节中,因此机器学习模型的运算速度决定了知识图谱更新周期。虽然GPU并行处理能力高,但不是针对机器学习而设计的,而FPGA要求用户自主编程,对用户的要求过高。芯片要同时具备并行化、低功耗、高性能等特性,还需要实现本地即时计算,这时ASIC(专用集成电路)的优势就显现出来了。但是,ASIC的研发周期长,可能无法跟上市场的变化。所以,SoC+IP模式较为流行。SoC(System-on-Chip,片上系统)可以在芯片上集成许多不同模块的芯片,每个模块可自行设计或根据需求进行第三方定制。与ASIC相比