【问题标题】:Does VS2010 SP1 support only part of the AVX instruction set?VS2010 SP1 是否只支持部分 AVX 指令集?
【发布时间】:2011-12-12 02:18:07
【问题描述】:

微软表示 VS2010 支持全套 AVX 指令:

http://blogs.msdn.com/b/vcblog/archive/2009/11/02/visual-c-code-generation-in-visual-studio-2010.aspx

... 在 VS2010 版本中,所有 AVX 功能和指令都通过内在和/arch:AVX 得到完全支持。 ...

但我找不到任何融合乘加运算的内在函数

http://software.intel.com/sites/products/documentation/studio/composer/en-us/2011/compiler_c/intref_cls/common/intref_bk_avx_fma.htm#intref_bk_avx_fma

我需要使用_mm256_fmadd_ps 函数,但“immintrin.h”标头中缺少它。我真的很坚持。

【问题讨论】:

    标签: c++ visual-studio-2010 sse avx fma


    【解决方案1】:

    Fused-Multiply Add 内在函数不是 AVX 的一部分。英特尔在后来的 AVX 版本中去掉了它。所以 FMA 是独立的指令集。

    更糟糕的是,其中会有两个 FMA3(Intel - Haswell),FMA4(AMD - Bulldozer)。

    VS2010 SP1 支持 FMA4 - AMD 的版本。

    这两款处理器系列都尚未发布(AMD - Interlagos 除外,它是 Bulldozer 的服务器部分)。

    英特尔 FMA 内在函数适用于 FMA3。由于还没有处理器实现它,因此您还不能使用/测试它。

    【讨论】:

    • 哦,我不知道这个命令不是AVX的一部分。看来我对当前硬件的要求太多了 :) 好的,我将使用 _mm256_mul_ps + _mm256_add_ps 代替。谢谢!
    • 你不是唯一一个想要更多的人...... :) 我热切地等待 AVX 大约一年才出来。现在我急切地等待 FMA3、FMA4/XOP 和 AVX2。 XD
    • FMA4 原本是 Intel 的,但在开发过程中改为 FMA3。
    猜你喜欢
    • 2016-09-25
    • 2023-03-03
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 2016-08-12
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多