組み込み関数を使用して、SIMDベクトルの要素をインクリメントする必要があります。AVX/AVX2のベクトルをインクリメントする方法
(注:vec_inc
は前に1に設定されている)最も簡単な方法は、このように、各要素に1を追加することであるように思わ
vec = _mm256_add_epi16 (vec, vec_inc);
が、ベクトルをインクリメントする特別な指示はありますか? inc
のようにthis page?または他の簡単な方法?
組み込み関数を使用して、SIMDベクトルの要素をインクリメントする必要があります。AVX/AVX2のベクトルをインクリメントする方法
(注:vec_inc
は前に1に設定されている)最も簡単な方法は、このように、各要素に1を追加することであるように思わ
vec = _mm256_add_epi16 (vec, vec_inc);
が、ベクトルをインクリメントする特別な指示はありますか? inc
のようにthis page?または他の簡単な方法?
INC
命令はSIMDレベルの命令ではなく、整数スカラーで動作します。 あなたとPaulがすでに提案したように、最も簡単な方法は、1
のベクトルを追加することで、各ベクトル要素に1
を追加することです。あなたはIntel's Intrinsics GuideでインテルISAの組み込み関数のコレクションを見つけることができ、将来的にはx86の組み込み関数で同様の質問について
inline __m256i _mm256_inc_epi16(__m256i a)
{
return _mm256_add_epi16(a, _mm256_set1_epi16(1));
}
:あなたは本質的にシミュレートしたい場合は
私は 'Intel Instrinsics Guide'を食べました。ところで、私は答えを受け入れるでしょう – Martin
インテルイントリンシックスガイドを食べた後でもまだ空腹であれば、[tag:x86]タグwikiのリソースをチェックしてください。 :-) @fac将来のユーザーのための答えにもそれを加えました。 –
@CodyGray:[SSEタグwiki](http://stackoverflow.com/tags/sse/info)には、SSE/AVX組み込み関数のチュートリアルタイプのものがいくつかあります。 x86タグwikiはこれを(上の)言及していますが、私はほとんどの人がそれに気付かないと思っています。 –
はありません、特別な指示がない - あなたは上記の提案としてだけで、1秒のベクトルを追加します。 –