gpt4 book ai didi

c++ - 有没有办法加快对以下表达式的评估?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:06:07 26 4
gpt4 key购买 nike

<分区>

我分析了我的程序,它花费了 20% 的 CPU 时间来计算以下表达式:

abs(x) > abs(y)

其中 x,y 是 double 浮点变量。

有没有办法将表达式重构为更快的变体?

以下行(在两个不同的地方调用)每行占用 CPU 时间接近 10%:

(这是函数 Image_3::TestGradientAtPoint 的一个片段)

       if (abs(maxx[ch]) < abs(a)) maxx[ch] = a; 
01187AC9 mov eax,dword ptr [ch]
01187ACC sub esp,8
01187ACF fld qword ptr [ebp+eax*8-68h]
01187AD3 fstp qword ptr [esp]
01187AD6 call abs (11305F9h)
01187ADB fld qword ptr [ebp-70h]
01187ADE fstp qword ptr [esp]
01187AE1 fstp qword ptr [ebp-0F8h]
01187AE7 call abs (11305F9h)
01187AEC add esp,8
01187AEF fcomp qword ptr [ebp-0F8h]
01187AF5 fnstsw ax
01187AF7 test ah,41h
01187AFA jne Image_3::TestGradientAtPoint+176h (1187B06h)
01187AFC mov eax,dword ptr [ch]
01187AFF fld qword ptr [ebp-70h]
01187B02 fstp qword ptr [ebp+eax*8-68h]

探查器指出对 abs() 的调用占用了 20% 的 CPU 时间。我按 10^8 次迭代的顺序调用该方法 - 我正在处理大图像。

编辑

我忘记说了,但是代码是在 Debug 模式下运行的,我需要在这里稍微优化一下,因为我希望仍然能够在合理的时间内使用 MSVC 调试器。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com