相关疑难解决方法(0)

在x86上做水平浮点矢量和的最快方法

你有一个三(或四)个浮点数的向量.总结它们的最快方法是什么?

SSE(movaps,shuffle,add,movd)总是比x87快吗?SSE4.2中的水平加法说明值得吗?移动到FPU的成本是多少,然后是faddp,faddp?什么是最快的特定指令序列?

"尝试安排事情,这样你可以一次总结四个向量"将不被接受作为答案.:-)

floating-point optimization x86 assembly sse

41
推荐指数
4
解决办法
2万
查看次数

memset()比C中的循环效率更高吗?

memset比for循环更有效.所以,如果我有

char x[500];
memset(x,0,sizeof(x));
Run Code Online (Sandbox Code Playgroud)

要么

char x[500];
for(int i = 0 ; i < 500 ; i ++) x[i] = 0;
Run Code Online (Sandbox Code Playgroud)

哪一个更有效率,为什么?是否在硬件中有任何特殊指令来进行块级初始化.

c performance memset

34
推荐指数
4
解决办法
2万
查看次数

优化的memcpy

在C++中有没有更快的memcpy()替代品?

c++ optimization memcpy

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

优化内存读取和写入的长时间运行

我有一个名为reorder.cc的源文件,如下所示:

void reorder(float *output, float *input) {
  output[56] = input[0];
  output[57] = input[1];
  output[58] = input[2];
  output[59] = input[3];
  output[60] = input[4];
  ...
  output[75] = input[19];
  output[76] = input[20];
  output[77] = input[21];
  output[78] = input[22];
  output[79] = input[23];
  output[80] = input[24];
  ...
  output[98] = 0;
  output[99] = 0;
  output[100] = 0;
  output[101] = 0;
  output[102] = 0;
  output[103] = 0;
  output[104] = 0;
  output[105] = input[1];
  output[106] = input[2];
  output[107] = input[3];
  output[108] = input[4];
  output[109] = input[5];
  output[110] = …
Run Code Online (Sandbox Code Playgroud)

c++ memory assembly compiler-optimization

4
推荐指数
2
解决办法
203
查看次数