We propose ReFloat, a principled approach for low-cost floating-point processing in ReRAM. The exponent offsets based on a base are stored by a flexible and fine-grained floating-point number representation. The key motivation is that, while the number of exponent bits must be reduced due to the exponential relation to the computation latency and hardware cost, the convergence still requires sufficient accuracy for exponents. Our design reconciles the conflicting goals by storing the exponent offsets from a common base among matrix values in a block, which is the granularity of computation in ReRAM. Due to the value locality, the differences among the exponents in a block are small, thus the offsets require much less number of bits to represent exponents. In essence, ReFloat enables the principled local fine-tuning of floating-point representation. Based on the idea, we define a flexible ReFloat format that specifies matrix block size, and the number of bits for exponent and fraction. To determine the base for each block, we propose an optimization method that minimizes the difference between the exponents of the original matrix block and the converted block. We develop the conversion scheme from default double-precision floating-point format to ReFloat format, the computation procedure, and the low-cost floating-point processing architecture in ReRAM.
翻译:我们提出“ReFloat ”, 用于 ReRAM 中低成本浮动点处理的原则性处理方法。 以基数为基础的缓冲抵消由灵活和细细的浮动点数表示方式储存。 关键动机是,虽然由于计算延时和硬件成本的指数关系,要减少推式位数的数量,但趋同仍要求指数方有足够的准确性。 我们的设计调和了相互矛盾的目标,将一个基数中一个共同基数(即 ReRAM 的计算颗粒)的缓冲抵消存储在一个基数中。 由于值位置不同, 区块内推数的差异很小, 因此抵消需要少得多的位数来代表推算。 实质上, ReFloat 使得浮动点代表方式的当地有原则性调整。 基于这个想法, 我们定义了灵活的 ReFloat 格式, 以指定矩阵块大小, 和 缩放分数 。 为了确定每个区块的基数, 我们提议了一个优化方法, 以尽可能减少块格式转换区块格式与浮动模型的原始转换方式之间的平时, 。