相关疑难解决方法(0)

iPhone上的Double vs float

我刚刚听说iphone不能原生地加倍,从而使它们比常规漂浮慢得多.

这是真的?证据?

我对这个问题很感兴趣,因为我的程序需要高精度计算,而且我必须在速度上妥协.

iphone floating-point cocoa-touch ieee-754

47
推荐指数
3
解决办法
1万
查看次数

浮点运算中的flush-to-zero行为

虽然,据我所知,IEEE 754没有提及关于刷新到零的模式来更快地处理非规范化数字,但是一些架构提供了这种模式(例如http://docs.sun.com/source/806-3568/ncg_lib .html).

在本技术文档的特定情况下,非规范化数字的标准处理是默认值,并且必须明确激活flush-to-zero.在默认模式下,非规范化数字也在软件中处理,这比较慢.

我在嵌入式C的静态分析器上工作,试图预测在运行时可能发生的值的正确(如果有时不精确)范围.它的目的是正确的,因为它可用于排除在运行时出现错误的可能性(例如对于关键的嵌入式代码).这需要在分析期间捕获所有可能的行为,因此在浮点计算期间产生所有可能的值.

在这方面,我的问题是双重的:

  1. 在嵌入式架构中,是否存在仅提供从零到零的架构?他们可能没有权利将自己宣传为"IEEE 754",但可以提供足够接近IEEE 754风格的浮点运算.

  2. 对于在嵌入式环境中提供两者的体系结构,可能不会被系统激活为零,以使反应时间更可预测(这些嵌入式系统的常见约束)?

在我用于浮点值的区间运算中处理flush-to-zero非常简单,如果我知道我必须这样做,我的问题是我是否必须这样做.

c embedded floating-point ieee-754

13
推荐指数
1
解决办法
4278
查看次数

在评估和比较ARM处理器中的浮点性能时,我应该为mfpu指定哪个[neon/vfp/vfp3]?

我想评估一些不同的ARM处理器浮点性能.我用的是lmbench和pi_css5我迷惑的浮动测试.

从cat /proc/cpuinfo(下面),我猜有3种类型的浮动功能:neon,vfp,vfpv3?从这个问题和答案看来,这似乎取决于编译器.我仍然不知道我应该在compille flag(-mfpu=neon/vfp/vfpv3)中指定哪个,或者我应该用每个编译程序,或者只是不指定-mfpu?

cat /proc/cpuinfo               
Processor       : ARMv7 Processor rev 4 (v7l)
BogoMIPS    : 532.00
Features    : swp half thumb fastmult vfp edsp neon vfpv3 tls 
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x2
CPU part    : 0xc09
CPU revision    : 4
Run Code Online (Sandbox Code Playgroud)

performance arm

4
推荐指数
1
解决办法
3212
查看次数

性能损失:非规范化数字与分支错误预测

对于那些已经测量过或对此类注意事项有深入了解的人,假设您必须执行以下操作(仅选择任何示例)浮点运算符:

float calc(float y, float z)
{ return sqrt(y * y + z * z) / 100; }
Run Code Online (Sandbox Code Playgroud)

哪里y和z可能是非正规数,让我们假设两种可能的情况,其中只有 y,只有 z,或者两者,以完全随机的方式,可以是非正规数

  • 50%的时间
  • <1% 的时间

现在假设我想避免处理非正规数的性能损失,我只想将它们视为 0,然后通过以下方式更改该段代码:

float calc(float y, float z)
{
   bool yzero = y < 1e-37;
   bool zzero = z < 1e-37;
   bool all_zero = yzero and zzero;
   bool some_zero = yzero != zzero;

   if (all_zero)
      return 0f;

   float ret;

   if (!some_zero) ret = sqrt(y * y + z * z);
   else if (yzero) …
Run Code Online (Sandbox Code Playgroud)

c++ floating-point x86 micro-optimization branch-prediction

1
推荐指数
1
解决办法
455
查看次数