0

サイクルがあります:

 long a* = new long[32];
 long b* = new long[32];
 double c* = new double[32];
 double d = 3.14159268;
  //set a, b and c arrays
  //.....
  for(int i = 0; i < 32; i ++){
    d+= (a[i] % b[i])/c[i];
  }

インテル C++ のベクトル化機能 (例: #pragma simd または sse- instruction) を使用してこのサイクルを実装するにはどうすればよいですか?

私が書く場合:

  #pragma simd reduction(+:c)
  for(int i = 0; i < 32; i ++){
    d+= (a[i] % b[i])/c[i];
  }

その後、速度は上がりません:(

4

1 に答える 1