【问题标题】:Multiplying different types in AVX512在 AVX512 中乘以不同的类型
【发布时间】:2020-11-29 13:12:19
【问题描述】:

我目前正在尝试将 __m512d 值与 __m512i 值相乘。 __m512d 的值为 ln(2),因此结果保存在另一个 __m512d 变量中。 但是,我无法在 avx512 中找到任何用于将双精度与整数相乘的内在函数。 当我在 __m512i 上使用 _mm512_castsi512_pd 内在函数时,我得到了错误的值,所以我猜内在函数也没有多大帮助。

我很高兴得到任何帮助或解决方法。 提前致谢。

【问题讨论】:

  • 您想要转换,而不是强制转换。 SIMD 转换只是重新解释位模式。

标签: c++ c sse avx avx512


【解决方案1】:

感谢@Peter Cordes 指出关于转换和转换之间差异的错误。 以下代码允许乘法:

__m512d a;
__m512i b;
_mm512_muld_pd(a,_mm512_cvtepi64_pd(b));

【讨论】:

    猜你喜欢
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    相关资源
    最近更新 更多