小编pea*_*ing的帖子

我应该使用SIMD或矢量扩展还是别的?

我目前正在开发一个开源的3D应用程序框架(用).我自己的数学库的设计类似于XNA数学库,同时考虑了SIMD.但目前它并不是很快,而且它在内存中存在问题,但在另一个问题上更多.

几天前我问自己为什么要编写自己的SSE代码.编译器还可以在启用优化时生成高优化代码.我也可以使用GCC的" 向量扩展 " .但这一切都不是真正的便携式.

我知道当我使用自己的SSE代码时,我有更多的控制权,但通常这种控制是不公平的.

SSE的一个大问题是使用动态内存,这在内存池和面向数据的设计的帮助下,尽可能地受到限制.

现在问我的问题:

  • 我应该使用裸SSE吗?也许是封装的.

    __m128 v1 = _mm_set_ps(0.5f, 2, 4, 0.25f);
    __m128 v2 = _mm_set_ps(2, 0.5f, 0.25f, 4);
    
    __m128 res = _mm_mul_ps(v1, v2);
    
    Run Code Online (Sandbox Code Playgroud)
  • 或者编译器应该做脏工作吗?

    float v1 = {0.5f, 2, 4, 0.25f};
    float v2 = {2, 0.5f, 0.25f, 4};
    
    float res[4];
    res[0] = v1[0]*v2[0];
    res[1] = v1[1]*v2[1];
    res[2] = v1[2]*v2[2];
    res[3] = v1[3]*v2[3];
    
    Run Code Online (Sandbox Code Playgroud)
  • 或者我应该使用SIMD和其他代码吗?就像具有SIMD操作的动态容器类一样,需要额外的loadstore指令.

    Pear3D::Vector4f* v1 = new Pear3D::Vector4f(0.5f, …
    Run Code Online (Sandbox Code Playgroud)

c++ gcc sse simd

17
推荐指数
1
解决办法
1万
查看次数

如何在excel中使用替换字符?

我在MS excel中尝试使用替换字符时遇到了麻烦.帮助说*,?可以替换字符,但如果我尝试使用它们IF,我得不到正确的结果.例如:

A1="something"
=IF(A1="*mething";"yes";"no")
Run Code Online (Sandbox Code Playgroud)

我总是得到no......如何*正确使用?

excel replace

5
推荐指数
1
解决办法
101
查看次数

标签 统计

c++ ×1

excel ×1

gcc ×1

replace ×1

simd ×1

sse ×1