gpt4 book ai didi

gcc - 通过将 double 复制到整数来执行时间长

转载 作者:行者123 更新时间:2023-12-02 00:08:07 26 4
gpt4 key购买 nike

我正在实现一个过滤器,我需要尽可能地优化实现。我意识到有一条指令需要很多周期,但我不明白为什么:

bool filters_apply(...)
{
short sSample;
double dSample;
...
...
sSample = (short) dSample; //needs a lot of cycles to execute
...
...
}

我正在使用 de GCC 选项:-mcpu=arm926ej-s -mfloat-abi=softfp -mfpu=vfp我尝试使用 FP ABI“硬”编译以查看是否存在差异,但编译器未实现它。

谁能解释一下为什么这条指令需要这么多周期?

非常感谢!!

最佳答案

只要查看您提供的信息,这可能是因为当您将数据从浮点寄存器传输到 arm 寄存器时发生了停顿。

Debian page on arm floating modes据称,此类操作可能需要大约 20 个周期。

尽量使用浮点型变量,例如将sSample转为浮点型。你的arm926ej-s (vfpv2) 应该提供 32 个单精度(16 个 double )寄存器。

关于gcc - 通过将 double 复制到整数来执行时间长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17084032/

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