현재 코드를 병렬화하기 위해 AVX Intrinsics를 조사 중입니다. 지금은 벤치 마크를 작성하여 얼마나 빠른 속도를 낼 수 있는지보고 싶습니다.AVX 레지스터에 정수 배열로드
void randomtable (uint32_t crypto[4][64])
{
int k = 1;
for (int i=0;i<4;i++)
{
k++;
for (int j=0;j<64;j++)
{ crypto[i][j]= (k+j)%64; }
}
}
int main (void)
{
uint32_t crypt0[4][64];
randomtable(crypt0);
__m256i ymm0 = _m256_load_si256(&crypt0[0][0]);
}
내 문제는 어떻게 배열의 처음 8 개 요소를 ymm0에로드합니까?
내가 GCC로 컴파일하고 -mavx -march = 기본 -g -O0 -std = C99
컴파일 오류 : 오류 : 호환되지 않는 유형의 유형을 사용하여 유형 '__m256i를'초기화 'INT'
'_mm256_load_si256' (분명히 오타를 제외하고)으로 이미 이것을하고있는 것처럼 보입니다. 실제 문제에 대해 더 구체적으로 설명 할 수 있습니까? –
잘 컴파일 오류가 발생합니다. GCC 사용. -mavx 및 -march = native가 CFLAGS로 설정되었습니다 ...... 오류 : 'int'유형을 사용하여 '__m256i'유형을 초기화 할 때 호환되지 않는 유형 – raddirad
OK - 아래 답변보기 ... –