1.一种SGD算法优化系统,其特征在于,包括:多个基于FPGA的分布式计算节点和一个基于CPU的中心计算节点,其中,各所述分布式计算节点用于通过对应的FPGA中的并行数据通路对SGD算法中的待处理数据进行并行计算;所述中心计算节点用于根据各所述分布式计算节点的结构特点对数据处理任务进行分配和调度。
2.根据权利要求1所述的系统,其特征在于,还包括:
OpenCL编程模型模块,用于对各所述分布式计算节点和所述中心计算节点进行算法调试。
3.根据权利要求2所述的系统,其特征在于,所述分布式计算节点包括:
梯度计算单元,用于对所述SGD算法中的待处理数据的样本点进行子梯度计算;
权值更新计算单元,用于对所述SGD算法中的待处理数据的样本点进行权重值更新计算。
4.根据权利要求3所述的系统,其特征在于,所述中心计算节点包括:
计算结果合并收集单元,用于对各所述分布式计算节点的子梯度计算结果和权重值更新计算结果进行收集合并;
广播单元,用于将所述计算结果合并收集单元收集合并的结果信息广播至各所述分布式计算节点。
5.根据权利要求1至4任一项所述的系统,其特征在于,还包括:
数据获取模块,用于获取所述SGD算法中的信息数据,并将符合预设的并行计算条件且计算量超过预设阈值的信息数据作为待处理数据引入至各所述分布式计算节点。
6.一种SGD算法优化方法,其特征在于,包括:
获取SGD算法中的待处理数据;
通过FPGA加速设备以多条并行数据通路对所述待处理数据进行并行计算;所述待处理数据根据各所述FPGA加速设备的结构特点而进行分配和调度;
获取所述并行计算的计算结果,并反馈对应的计算结果反馈信息控制所述FPGA加速设备对所述待处理数据进行并行计算。
7.根据权利要求6所述的方法,其特征在于,所述获取SGD算法中的待处理数据,包括:
随机初始化SGD算法中函数的梯度值和权重值;
运用参数指定所述SGD算法的全集数据的一个随机抽样子集,记为所述待处理数据。
8.根据权利要求7所述的方法,其特征在于,所述通过FPGA加速设备以多条并行数据通路对所述待处理数据进行并行计算,包括:
通过基于OpenCL标准的FPGA加速设备,以多条并行数据通路计算所述随机抽样子集中的数据点的梯度的平均值,记为子梯度值;
根据所述子梯度值更新所述函数的权重值。
9.根据权利要求8所述的方法,其特征在于,所述获取所述并行计算的计算结果,并反馈对应的计算结果反馈信息控制所述FPGA加速设备对所述待处理数据进行并行计算,包括:
对各所述并行数据通路计算所得的子梯度值的计算结果和权重值的更新结果进行收集合并;
将收集合并后所得的新的梯度值和权重值反馈至所述FPGA加速设备,进行迭代计算,直至达到最高迭代次数限制或权值收敛。