【发布时间】:2022-01-05 00:24:24
【问题描述】:
整数除法的硬件指令历来非常缓慢。例如,对于 64 位输入,Skylake 上的 DIVQ 延迟为 42-95 个周期 [1](倒数吞吐量为 24-90)。
但是有更新的处理器,性能要好得多:Goldmont 的延迟为 14-43,Ryzen 的延迟为 14-47 [1],M1 显然具有“每分频 2 个时钟周期的吞吐量”[2],甚至 Raspberry Pico具有“每个内核的 8 周期有符号/无符号除法/模电路”(尽管这似乎适用于 32 位输入)[3]。
我的问题是,发生了什么变化?是否发明了一种新算法?无论如何,新处理器使用什么算法进行除法?
[1]https://www.agner.org/optimize/#manuals
[2]https://ridiculousfish.com/blog/posts/benchmarking-libdivide-m1-avx512.html
[3]https://raspberrypi.github.io/pico-sdk-doxygen/group__hardware__divider.html#details
【问题讨论】:
标签: performance x86 arm cpu-architecture integer-division