매트릭스 효율을 확인하는 어플리케이션을 만듭니다. 나는 다양한 방법을 사용한다 (예를 들어 루프, 2/3 루프, openmp 등). 한 가지는 남았습니다. 데이터 프리 페치를 확인해야합니다.이 C 코드를 변경하여 일부 데이터를 미리 가져 오는 방법은 무엇입니까?
코드 : 자체 prefetch
데이터
#define SIZE 5000
for(int i=0;i<SIZE;i++)
for(int j=0;j<SIZE;j++)
mul+=tab[i][j]
일반적으로 프로세서 (우리는 단일 행에 있고 j
를 증가 할 때), 항상은 아니지만 (예를 들어 tab[0][0]
이 prefeched
결코 또는 우리가 다음 행에 갈 때 (loop i++ ,tab[i][0]
)). 우리가 그들을 계산하기 전에이 코드를 proc
prefetch
데이터 tab[0][0], tab[1][0],tab[2][0],tab[3][0]
등으로 변경하는 방법?
어떤 컴파일러/플랫폼을 사용하고 있습니까? – Hasturkun
Visual Studio와 openMP를 사용하고 있습니다. – asss