本技术涉及一种高效运算设备及其操作流程,该设备由数据模块和运算模块组成。数据模块负责数据操作,包括从内存读取或写入数据以及向运算模块提供运算数据。运算模块则负责执行根
背景技术
随着大数据时代的来临,与向量运算的相关应用也日益增加,参与运算的数据量不断增大,数据规格和维度不断扩增,运算形式也逐渐增多,一方面,运算单元的规模难以随着数据量的大幅度提升而大幅度扩大,这就使得运算时如何调控运算数据提出了要求;另一方面,这些运算不再局限于在统一规格的数据间进行,而是有很大一部分运算是不同规格或不同维度的数据间进行,这就为运算装置的灵活性提出了更高的要求。
在现有技术中,一种进行向量运算的已知方案是使用通用处理器(CPU)或图形处理器(GPU),然而,这种方法或者因其结构更适应于标量运算,进行向量运算时效率较低;或者,因其片上缓存太小,无法满足高效完成大规模向量运算的要求。在另一种现有技术中,使用专门定制的向量运算装置来进行向量计算,即使用定制的存储单元和处理单元进行向量运算。然而,目前已有的专用向量运算装置受限于寄存器堆,只能支持相同长度的向量运算,灵活性不足。
除此之外,上述装置对应的指令集,只能执行相同长度的数据的运算,且受限于存储器的规模和运算单元的规模。对于不同长度的数据和不满足运算单元规模的数据,一种方式是采用多条指令对数据进行依次调用,另一种方式是采用循环指令的方式进行反复调用。这不仅使得指令集的结构复杂,指令队列冗长,且执行效率低下,而且运行时限制多、灵活性差,无法为大规模的向量运算提供便利。
实现思路