효율적으로 256 비트 벡터의 요소에 액세스하려면 어떻게해야합니까? 예를 들어256 비트 ps 벡터의 구성 요소에 액세스하는 방법
c = _mm256_dp_ps(a, b, 0xff);
으로 내적을 계산 한 다음 어떻게 값을 액세스 할 수 있습니까? 나는 높은 부분과 낮은 부분 모두를 얻을 필요가 내가 처음과 같은 128 개 비트 부품을 추출 할 필요가 있음을 제대로 이해하지 :
r0 = _mm256_extractf128_ps(c,0);
r1 = _mm256_extractf128_ps(c,1);
만 다음 추출 수레 :
_MM_EXTRACT_FLOAT(fr0, r0, 0);
_MM_EXTRACT_FLOAT(fr1, r1, 0);
return fr0 + fr1;
단일 점 제품에 대해 많은 패킹/압축 풀기를 수행하는 경우 해당 데이터를 최소한으로 유지하려면 관련 코드를 다시 설계하는 것이 좋습니다. – Mysticial
제안을 환영합니다. 16 개의 부동 소수점 벡터에 대해 내적을 계산해야합니다. AVX 경로가 나에게 최선의 선택 인 것 같지만 실제로 코드에 만족하지 않습니다. –
각 벡터가 메모리에서 연속적입니까? – Mysticial