내장 함수를 사용하여 SIMD 벡터의 요소를 증가시키고 싶습니다. 가장 간단한 방법은 다음과 같이 각 요소에 1을 추가하는 것 같다 :AVX/AVX2에서 벡터를 증가시키는 방법
(참고 : vec_inc
전에 1로 설정되어있다)
vec = _mm256_add_epi16 (vec, vec_inc);
하지만 벡터를 증가하기 위해 특별한 지시가? inc
과 같이 this page? 아니면 다른 쉬운 방법?
내장 함수를 사용하여 SIMD 벡터의 요소를 증가시키고 싶습니다. 가장 간단한 방법은 다음과 같이 각 요소에 1을 추가하는 것 같다 :AVX/AVX2에서 벡터를 증가시키는 방법
(참고 : vec_inc
전에 1로 설정되어있다)
vec = _mm256_add_epi16 (vec, vec_inc);
하지만 벡터를 증가하기 위해 특별한 지시가? inc
과 같이 this page? 아니면 다른 쉬운 방법?
INC
명령어는 SIMD 레벨 명령어가 아니며 정수 스칼라에서 작동합니다. 여러분과 Paul이 이미 제안한 것처럼 가장 간단한 방법은 1
s의 벡터를 추가하여 각 벡터 요소에 1
을 추가하는 것입니다. 당신이 Intel's Intrinsics Guide에서 인텔 ISA의 내장 함수의 컬렉션을 찾을 수 있습니다, 앞으로 86 내장 함수에 비슷한 질문
inline __m256i _mm256_inc_epi16(__m256i a)
{
return _mm256_add_epi16(a, _mm256_set1_epi16(1));
}
: 당신이 고유을 시뮬레이션하려면
, 당신은 당신의 자신의 기능을 구현할 수 있습니다 . 또한 x86 및 sse 태그 정보를 원하시면 아래에 설명되어있는 광범위한 리소스를 참조하십시오
나는'인텔 인트 루 인 식 안내서 '를 먹었습니다. 그런데 대답을 받아 들일 것입니다 – Martin
Intel Intrinsics Guide를 먹은 후에도 여전히 궁금하다면 [tag : x86] 태그 위키에서 리소스를 확인하십시오. :-) @fac 나는 미래 사용자를위한 대답에도 그것을 추가했다. –
@CodyGray : [SSE tag wiki] (http://stackoverflow.com/tags/sse/info)에는 몇 가지 SSE/AVX 내장 함수 튜토리얼 유형이 있습니다. x86 태그 위키는 이것을 (맨 위에) 언급하지만, 대부분의 사람들이 그것을 알아 채지 못할 것이라고 생각합니다. –
아니, 특별한 지시가 없다 - 당신이 위의 제안으로 단지 1의 벡터를 추가합니다. –