【问题标题】:Explicit simd code in DD 中的显式 simd 代码
【发布时间】:2012-12-22 12:45:10
【问题描述】:

现在是否可以在开箱即用的 D 中做到这一点?如果有帮助,我正在使用 LDC2 编译器。 我对使用 AVX 内在函数很感兴趣。

【问题讨论】:

    标签: d simd avx


    【解决方案1】:

    目前 DMD 没有 AVX 内在函数。考虑到所有 D 编译器都使用 DMD 前端,以及 druntime 和 phobos,我想说,做你想做的唯一方法是使用 BCS 建议的内联汇编。

    我建议您不时检查 core.simd 模块,看看是否添加了 AVX 内部函数。

    【讨论】:

      【解决方案2】:

      有内联 ASM。我认为 DMD 支持 SIMD 指令。不知道 LDC 的故事是什么。

      【讨论】:

      • 内联 ASM 是完全不可行的,因为是手动分配寄存器。
      • 如果你不想要asm,那么你想要什么'explicit'?可以放心使用它们的东西吗?我假设您已经检查了内在函数列表?剩下的就是编译器承诺在数组操作中使用它们。
      • 显式我的意思是使用像_mm256_load_ps这样的内在函数并声明__m256变量等,就像你使用gcc或clang一样。还是谢谢你。
      【解决方案3】:

      对于 LDC,模块 ldc.gccbuiltins_x86 包含 GCC 样式的内置函数,例如 __builtin_ia32_vfnmaddps256

      (还有ldc.gccbuiltins_arm,和ldc.gccbuiltins_ppc,...)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-22
        • 2012-08-06
        • 2011-08-14
        • 2017-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多