gpt4 book ai didi

c++ - 使用 SSE 指令

转载 作者:IT老高 更新时间:2023-10-28 12:46:31 27 4
gpt4 key购买 nike

我有一个用 C++ 编写的循环,它针对一个大整数数组的每个元素执行。在循环内部,我屏蔽了整数的一些位,然后找到最小值和最大值。我听说如果我对这些操作使用 SSE 指令,与使用按位 AND 和 if-else 条件编写的正常循环相比,它将运行得更快。我的问题是我应该去找这些 SSE 说明吗?另外,如果我的代码在不同的处理器上运行会发生什么?它仍然可以工作还是这些指令是特定于处理器的?

最佳答案

  1. SSE 指令是特定于处理器的。您可以在 wikipedia 上查找哪个处理器支持哪个 SSE 版本。
  2. SSE 代码是否会更快取决于许多因素:首先当然是问题是内存限制还是 CPU 限制。如果内存总线是瓶颈,SSE 将无济于事。尝试简化你的整数计算,如果这样可以让代码更快,它可能是 CPU 密集型的,你很有可能加快它的速度。
  3. 请注意,编写 SIMD 代码比编​​写 C++ 代码要困难得多,而且生成的代码也更难更改。始终保持 C++ 代码是最新的,您会希望它作为注释并检查您的汇编代码的正确性。
  4. 考虑使用像 IPP 这样的库,它实现了针对各种处理器优化的常见低级 SIMD 操作。

关于c++ - 使用 SSE 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/586609/

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