3

MSDN の自動ベクトル化ページを読んだだけですが、どのループがベクトル化されるのか正確にはわかりません。

MSDNブログでは、自動ベクトル化できるループの例を以下に示します。

const int N = 1000;
float a[N], b[N];
// Initialize a[i] = i; b[i] = 100 + i
int main() 
{
  for (int n = 0; n < N; ++n) a[n] += b[n];
}

私は通常、n != Nイディオムをn < N;とは対照的に使用します。それは OpenMP のように重要ですか? または、自動ベクトル化は関係なく機能しますか?

4

1 に答える 1

3

すべての自動ベクトル化がどのように機能するかについてすべてを知っていない限り、すべてのループが何をするかを予測するのに苦労するでしょう。これが重要な場合は、ここ/Qvec-report:2で定義されているように使用する方が良いと思います。これにより、特定のループが自動ベクトル化されているかどうかとその理由がわかります。

于 2013-11-05T23:27:22.670 に答える