문제

새로운 팔로 프로세서를 포함 PLD 및 PLI 다.

쓰 꽉 안 루프(C++)가 아닌 순차 메모리 액세스 패턴 있지만,패턴 자연스럽게 내 코드를 완벽하게 이해하고 있습니다.내가 예상 상당한 시간 단축할 수 있다면 prefetch 다음 위치에 처리하는 동안 현재의 메모리 위치,그리고 내가 기대하는 것이 빠른 충분히 시도 가치가 있기 위하여 실험!

내가 사용하는 새로운 비싼 컴파일러에 팔고,그것은 보이지 않는 것을 포함하여 PLD 지침 어디서나,혼자서 이 특정한 루프는다.

어떻게 포함시킬 수 있는 명시적 prefetch 지침에 내 C++코드?

도움이 되었습니까?

해결책

이 있어야한 컴파일러 특정 기능을 갖추고 있습니다.표준 방법이 없을 위해 그것을 할 수있는 C/C++.체크아웃을 컴파일러를 컴파일러를 참조 설명서를 참조하십시오.위치가 제대로 이루어지지 않을 컴파일 참조 .

다른 팁

는 경우 추출하기 위해 노력하고 진정한 최대 성능에서 이러한 루프,내가 추천하는 것보다 쓰기 전체 반복 구성에서 어셈블러.당신이 사용할 수 있어야 어셈블리는 인라인에 따라 데이터 구조에 관련된 루프.더할 수 있는 경우 풀 어떤 부분의 반복(과 같은 부분에서 참여 만 액세스 비 sequential).

에서의 위험을 묻는 분명:을 확인했 컴파일러의 대상이 포함되어 있을 수 있습니다예를 들면 다음과 같습니다(유머)나에게는 경우 기본적으로 컴파일러를 대상으로 ARM7,당신 가 보 PLD 명령입니다.

그의 영역 밖에 없는 가능성과 같은 다른 최적화 소프트웨어 파이프라인루프의 푼 수도 동일한 효과를 얻을 당신의 미리 아이디어(숨기기의 대기 시간을 로드 중복하여 이와 유용한 계산),그러나 없이 추가 지침-캐시 압력에 의해 발생하는 추가 지침.나는 것으로 말하는 이 경우가 더 자주하지 않고,단단한 안전하는 경향이있는 몇 가지 지침 및 조 제어 흐름입니다.귀하의 컴파일러리고 이러한 유형의 전통적인 최적화 대신 합니다.그렇다면,그것을 가치가있을 수 있습을 보고는 파이프라인 다이어그램을 개발하는 더 상세한 비용의 모델이 어떻게 귀하의 프로세서의 작동을 평가 더 정량적으로 여리 도움이 될 것이다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top