【问题标题】:Why GLM_CONSTEXPR_SIMD?为什么选择 GLM_CONSTEXPR_SIMD?
【发布时间】:2017-11-16 01:33:29
【问题描述】:

OpenGL mathematics library 定义了一个宏GLM_CONSTEXPR_SIMD,它使vec3(1.0f, 0.0f, 0.0f, 1.0f) 之类的表达式在生成平台无关代码时成为constexpr ,即仅当GLM_ARCH 为@ 987654326@.

我认为这样做是出于性能原因,但为什么非constexpr 会提高性能? SIMD 如何在决策中发挥作用?

【问题讨论】:

    标签: performance c++11 simd constexpr glm-math


    【解决方案1】:

    这很可能与 SIMD 内在函数未定义 constexpr 的事实有关。当您生成与平台无关的代码时,它不使用内在函数,因此可以将其声明为 constexpr。但是,只要您确定一个平台,例如对于 SSE/AVX,为了从这些 SIMD 函数中受益,必须剥离 constexpr。

    更多信息请访问Constexpr and SSE intrinsics

    【讨论】:

      猜你喜欢
      • 2018-07-28
      • 2014-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-13
      • 2013-04-22
      • 1970-01-01
      相关资源
      最近更新 更多