2014-10-01 3 views
2

오버플로가 새로 추가되어 내가 겪고있는 문제에 접근하는 방법에 대한 조언을 얻을 수 있기를 바랍니다. 어셈블리 경험이 거의 없기 때문에 나는 각각의 코드의 성능 특성을 추론하는 데 어려움을 겪고있다. 이 코드는 PowerPC 아키텍처 (구형 Apple G5)에서 C로 작성되었습니다. O3 및 일부 다른 최적화 코드를 실행하면 코드는 실제로 O3보다 약 30 % 느리게 실행됩니다. 어셈블리 코드의 차이점은 몇 가지 지침 (예 : 3-4)과 그 배치에 달려 있습니다.어셈블리 코드 성능 분석

내 문제는 내 경험으로 인한 것입니다. 어셈블리 출력이 다른 경우에 성능이 저하되는 이유를 이해하는 데 어려움이 있습니다. oprofile과 같은 도구는 여기서는별로 도움이되지 않습니다. 공식 IBM 지침 문서를 보면 perticular 명령의 성능 특성에 대한 통찰력은 없습니다. 이런 종류의 분석 문제에 어떻게 접근하나요? 언급했듯이 어셈블리 및 파이프 라인 분석에 대한 경험이 거의 없으므로 이런 종류의 문제에 일반적으로 접근하는 방법에 대한 제안을 감사하게 생각합니다. 저를 도울 수있는 도구가 있습니까?

또한 컴파일러에서 코드를 생성 한 이유 (실제로는 원래의 C 코드가 어떻게 작동하는지에 대해서는별로 관심이 없습니다)에 관심이 없습니다. 어셈블리 성능 분석.

업데이트

난 그냥 문제에 대한 간략한 업데이 트를 제공 할

- 파이프 라인에서 정확히 무슨 일이 있었는지 볼 수 있었고, 따라서 그것은 훨씬 더 이해하기 쉽게되었다 IBM하여 파워 파이프 라인 시뮬레이터를 사용하여 문제 (이슈 큐가 가득 차 있고 디스패치 그룹이 형성되는 것과 관련된 문제로 밝혀졌다). 파이프 라인 시뮬레이터를 사용하는 비슷한 문제를 보는 사람이라면 프로그램의 성능을 이해하는 데 많은 도움이 될 것입니다. 강력한 기계의 복잡성으로 인해 파이프 라인 시뮬레이터를 사용하지 않고 프로그램의 성능 특성을 분석하는 것은 매우 어려워 보입니다. 이것은 아마도 프로그램이 성능에 어떤 영향을 미치는지 진정으로 이해하려면 코드가 실행되는 아키텍처를 이해해야합니다.

+2

이 큰 될 수 있으며, 질문이로 StackOverflow에 대한 너무 광범위 : 그들은 IBM POWER7 (+)를 기반으로하고 있지만, 아이디어와 설명은 몇 가지 상황이 줄 수도 스탠드 - 작은 특정 예제를 선택하고 소스 코드와 어셈블리 코드를 게시하고 매우 구체적인 질문을하십시오. –

+0

저는 그것이 광범위하고 광범위한 주제라는 것을 이해합니다. 그러나 문제를 해결하는데 도움이 될만한 어떤 조언도 환영합니다. 나는 예제 어셈블리 코드를 내일 추가하려고 시도 할 것이다. – YoungPadawan

+0

느린 지시는 무엇인가? – Dko

답변

1

[...] 언급했듯이 어셈블리 및 파이프 라인 분석에 대한 경험이 거의 없으므로 이러한 문제에 대해 일반적으로 어떻게 접근하는지에 대한 제안을 감사하게 생각합니다. [...]

다음 자료와 사용 예가 좋습니다.

"Commonly Used Metrics for Performance Analysis – POWER7" [0] 
    (First, this paper briefly covers the POWER7 execution pipeline and the PMU hardware. ...) 

"Comprehensive PMU Event Reference – POWER7" [0] (Performance Monitor 
Unit instrumentation. These events can be measured using tools 
like...) 

"Evaluate performance for Linux on POWER" (developerWorks) (Learn to evaluate Linux on POWER® performance issues that focus on compiled language (such as C or C++) environments...) 

"Java performance improvements seen on POWER7+" (PowerLinux Community) 
    (The processors feature a built-in Performance Monitoring Unit (PMU), designed to provide instrumentation for performance monitoring, workload characterization, and code analysis....) 

Source