众所周知,基于 Linux/BSD 的内核不支持浮点 (FP) 算法。在内核中处理 FP 寄存器的开销是多少?
最佳答案
通常的回答是,如果内核不使用 float ,则不必在进入内核时保存浮点寄存器或在退出时恢复它们。这将所有系统调用的成本削减数百个周期。
我不知道是否有人尝试将这种节省与内核可以不加选择地使用这些寄存器时可能获得的性能改进进行比较。请注意,如果您小心谨慎,您可以在内核中使用它们,并且这是在可以获得巨大速度优势的环境中完成的,例如使用 SSE 指令加速 memcpy
等。 (在 Linux 源代码中查找对 kernel_fpu_begin
的调用。)
关于linux - 在 Linux 内核中支持浮点运算的开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6397430/