对于mandelbrot生成器,当您放大时,我想使用定点算术,范围从32到1024位。
现在普通的SSE或AVX在这里没有帮助,因为缺少带进位的加法运算,并且进行普通的整数运算会更快。但就我而言,我实际上有数百万个像素,需要全部计算。因此,我有一个巨大的值向量,所有这些值都需要经过一百万次以上的相同迭代公式。
因此,我不是在针对单个值进行定点加/减/ mul,而是针对庞大的向量进行此处理。我的希望是,尽管缺少带有进位的本机加法,但对于此类矢量操作,AVX / AVX2仍可用于提高性能。
任何人都知道在矢量或某些示例代码上进行定点运算的库,如何通过随身AVX / AVX2进行加法仿真。
对于mandelbrot生成器,当您放大时,我想使用定点算法,范围从32到1024位。现在,由于缺少带进位和执行加法功能,因此正常情况下,SSE或AVX在这里没有帮助...
FP扩展精度可在每个时钟周期提供更多位(因为double
FMA吞吐量为2 /时钟,而32x32 => 64位在Intel CPU上为1或2 /时钟);考虑使用Prime95与FMA用于整数数学的相同技巧。小心使用FPU硬件进行位精确整数运算是可能的。