내 응용 프로그램에서는 한 시점에서 메모리 데이터의 큰 연속 블록 (100s)에서 계산을 수행해야합니다. 내가 생각한 것은 내 프로그램이 앞으로 만질 블록의 부분을 계속 프리 페칭하는 것이었기 때문에 그 부분에 대한 계산을 수행 할 때 데이터는 이미 캐시에 저장되어 있습니다.x86-64 용 캐시에 대한 데이터 프리 페치
gcc로이 작업을 수행하는 방법에 대한 간단한 예를 누군가 줄 수 있습니까? 어딘가에 _mm_prefetch
을 읽었지만 제대로 사용하는 방법을 모릅니다. 또한 멀티 코어 시스템을 가지고 있지만 각 코어는 다른 메모리 영역에서 동시에 작업 할 것입니다.
메모리 액세스가 순차적이면 하드웨어 프리 페처가 이미 수행합니다. 따라서 수동 프리 페칭을 사용하면 많은 개선이 없을 것입니다. – Mysticial
프리 페칭이 실제로 도움이되는 예제에 대한이 질문을 참조하십시오. http://stackoverflow.com/questions/7327994/prefetching-examples – Mysticial
하드웨어 프리 페처가 메모리의 인접 영역을 어떻게 든 인식하고 캐시에서 해당 부분을 가져 오는 것을 의미합니다 ? – pythonic