A kind of FPGA circuit and method for calculating soft Max function. In the implementation example, the FPGA circuit includes: vector input module, which provides the elements of the first data vector in parallel, M is the natural number greater than 1; the first lookup table module, which finds the second value of M corresponding to the M elements; the second value of M is the exponential function value of one element of M elements; and the summation module, which sums up the second value of M elements. The second lookup table module finds the reciprocal of the sum value; the multiplication module multiplies the reciprocal and the second value of the M separately to get the third value of M; the vector output module receives the third value of M in parallel and takes it as the second element of M separately, and the output constitutes the second data vector. The embodiment of this specification can use hardware computing resources in parallel, so that data can be computed in parallel, and the computing speed and data throughput can be improved.
【技术实现步骤摘要】
实现softmax函数计算的FPGA电路及方法
本说明书实施例涉及深度学习,具体地说涉及深度学习中的softmax计算。
技术介绍
在机器学习的神经网络中,经常需要使用softmax函数来解决多分类问题。softmax函数的本质就是将一个k维的任意实数向量映射到另一个k维的实数向量。softmax函数的计算公式包含复杂的指数计算和除法计算。如果在CPU实现,需要消耗很多的CPU计算时间;如果采用GPU实现,则成本高且功耗大。这成为神经网络计算的主要瓶颈之一。
技术实现思路
根据第一方面,提供一种FPGA电路,用于实现softmax函数计算。所述FPGA电路包括:向量输入模块,配置用于接收第一数据向量,并且并行提供第一数据向量中的M个第一元素,M为大于1的自然数;查找表模块,配置用于查找与所述M个第一元素分别对应的M个第二数值;其中,M个第二数值各自分别是M个第一元素中的一个元素的指数函数值;求和模块,配置用于对所述M个第二数值求和,得到一个和值;倒数模块,配置用于获取所述和值的倒数;乘法模块,配置用于将所述倒数和所述M个第二数值分别相乘,得到M个第三数值;向量输出模块 ...
【技术保护点】
1.一种FPGA电路,用于实现softmax函数计算,所述FPGA电路包括:向量输入模块,配置用于接收第一数据向量,并且并行提供第一数据向量中的M个第一元素,M为大于1的自然数;查找表模块,配置用于查找与所述M个第一元素分别对应的M个第二数值;其中,M个第二数值各自分别是M个第一元素中的一个元素的指数函数值;求和模块,配置用于对所述M个第二数值求和,得到一个和值;倒数模块,配置用于获取所述和值的倒数;乘法模块,配置用于将所述倒数和所述M个第二数值分别相乘,得到M个第三数值;向量输出模块,配置用于并行接收所述M个第三数值,并且将其分别作为M个第二元素,输出构成为第二数据向量。
【技术特征摘要】
1.一种FPGA电路,用于实现softmax函数计算,所述FPGA电路包括:向量输入模块,配置用于接收第一数据向量,并且并行提供第一数据向量中的M个第一元素,M为大于1的自然数;查找表模块,配置用于查找与所述M个第一元素分别对应的M个第二数值;其中,M个第二数值各自分别是M个第一元素中的一个元素的指数函数值;求和模块,配置用于对所述M个第二数值求和,得到一个和值;倒数模块,配置用于获取所述和值的倒数;乘法模块,配置用于将所述倒数和所述M个第二数值分别相乘,得到M个第三数值;向量输出模块,配置用于并行接收所述M个第三数值,并且将其分别作为M个第二元素,输出构成为第二数据向量。2.如权利要求1所述的FPGA电路,其中,所述FPGA电路包括:极值模块,配置用于确定所述M个第一元素中的极值;减法模块,配置用于将所述M个第一元素分别减去所述极值,分别得到M个第四数值,所述M个第四数值代替M个第一元素输入第一查找表模块。3.如权利要求2所述的FPGA电路,其中,所述极值是最大值或最小值。4.如权利要求1-3之一所述的FPGA电路,其中,所述FPGA电路还包括定点化模块,配置用于对M个第一元素...
【专利技术属性】
技术研发人员:廖恬瑜,徐建国,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。