안녕하세요.
현재 Fastmodel, QEMU과 같은 Emulator을 사용해서 Profiling을 하고 있습니다.
ARM에서 제공하는 Fastmodel의 경우에는 H/W Platform(arm sgcanvas를 사용하여 확인)이 있는 것 같습니다.
QEMU의 경우에는 emulator이다보니 Streamline을 사용해서 profiling할때, CPU activity, Memory Utilization정도만
나오고 cache, disk I/O등은 따로 나오지 않는 것 같습니다.(제가 따로 xml파일을 만들어서 넣지는 않아서 정확하게는 모르겠습니다.)
혹시 이런 부분 관련해서 Profiling해보신 분이 있다면, Fastmodel을 가지고 Profiling하셨을 때,
CPU관련 데이터들이 제대로 출력되는지 알고 싶습니다.
ARM Fastmodel의 내부 Block Diagram을 확인했을 때는 Interface나 Pin들이 빠져나와 있어서, CPU내부에
코드로 어느정도 구현이 되어있을 것 같은데요.
혹시 Fastmodel에서 다른 Profiling Data들이 나오는가요?
아니면 QEMU를 가지고 다른 Profiling Data를 얻으신 분 계신가요?
댓글 2
-
조성진
2014.07.10 11:24
질문에 대해 원하시는 답변은 드릴 수 없겠지만, 혹여나 조금이라도 도움이 될까하여 남깁니다.(그전에 streamline과 fastmodel은 유료툴이라 구매하신 곳에 문의하면 더 쉽게 답변을 얻으실 수 있을 것 같습니다.)1. streamline본문의 내용으로만 보면 streamline에서 콜 그래프나 스택 추적이 아닌, profiling 기능에 집중하시는 것으로 보여집니다.xml을 언급하시는 것 보니 이미 아실 수도 있지만 streamline은 OS에서 수집하는 proc폴더의 profiling정보와,Performance Monitors Extension을 지원하는 프로세서의 경우 gator driver를 통해서 하드웨어의 event 및 count 정보를 얻어옵니다. (A.R.M C12:The Performance Monitors Extension 참조, A15 T.R.M Ch. 11: Performance Monitor Unit 참조)(gator의 경우 최근 업데이트 된 ultimate 5.18 부터는 user mode에서 가능, 5.17까지는 driver를 통해서 얻어옴)언급하시는 cache의 miss/refill, TLB, Branch prediction 등의 정보는 Performance Monitors Extension을 지원하는 프로세서에서 제공해 주기 때문에, QEMU나 Fastmodel에서 이 기능이 있는지 확인하는 것이 우선이라고 생각됩니다.2. fastmodelfastmodel은 ARM에서 밀고 있는 ESL툴이고 전 프로파일링은 안해서 잘은 모르겠습니다만, 고가의 툴이기에 ARM 대리점에 문의하면 언제든지 달려와서 궁금한 내용 및 전반적인 내용에 대해서 강의를 해주시니, 직접 문의하시는게 아마 정확하고 빠른 답변을 얻을 수 있을 것 같습니다.3. QEMUQEMU는 오래 사용하지 않아서 잘 모르겠지만, 학회에서 QEMU를 이용하여 여러 하드웨어 정보를 얻는 논문을 많이 보긴 했습니다. fastmodel이나 QEMU나 Dynamic Binary Translation을 이용하여 시뮬레이션 하기 때문에 굳이 하드웨어 PMU값을 읽지 않더라도 상식적으로는 원하시는 프로파일링 정보를 얻을 수 있을것이라 생각됩니다.이 부분은 확실하지 않기에 QEMU를 잘 아시는 분이 설명해 주시면 좋겠네요.덧> 일이 목적이신지, 스터디가 목적이신지 잘 모르겠지만, 스터디 용이시라면 현재 학계에서 자주 사용하는 Full system simulator 툴인 GEM5(http://www.gem5.org/)도 하나의 방법이 될 것 같습니다. -
jmkim0726
2014.07.10 22:18
답변 매우 감사드립니다.
제가 회사에서 일하면서 의문나는 부분과 스터디하면서 궁금한게 조금 섞기게 된것 같습니다.
QEMU를 통해서 event를 trace한다던지 profile을 하는 기능은 있기는 한 것 같은데, 아무래도 instruction을
수행해서 하는 부분이라 H/W의 의존적인 부분이 어느정도 적용됐는지 조금 의문입니다.
(솔직히 그정도만 얻는다고 해도 감사합니다.^^)
time base interrupt관련 부분이 매우 중요할 것 같은데 아무래도 emulator라 정확도의 의문이 큽니다.
QEMU를 잘아시는 분이 profiling관련 부분을 좀 알려주셨으면 저도 매우 좋을 것 같습니다.
다시 한번 답변 감사드립니다.
.