我正在尝试为最有可能在 FPGA 上实现的高效平方根算法找到更多信息。已经找到了很多算法,但哪一种是来自英特尔或 AMD 的?高效是指它们要么非常快,要么不需要太多内存。
编辑:我可能应该提到这个问题通常是一个浮点数,因为大多数硬件都实现了 IEEE 754 标准,其中数字表示为:1 个符号位、8 位偏置指数和 23 位尾数。
谢谢!
不是一个完整的解决方案,而是几个指针。
我假设您正在使用浮点数,所以第 1 点请记住浮点数存储为尾数和指数。由于对数,平方根的指数大约是原始数字的指数的一半。
然后可以使用查找表来近似尾数,然后您可以使用几个牛顿拉夫森轮来为 LUT 的结果提供一些准确性。
我已经有大约 8 年没有实施过这样的事情了,但我认为我就是这样做的,并且能够在 3 或 4 个周期内得到结果。
这是一个很好的快速反平方根。
看看这里。请注意,这几乎是关于最初的猜测,相当惊人的文件:)