요약
gpuvis는 리눅스 커널 트레이스를 타임라인으로 펼쳐 GPU 성능 문제를 찾는 도구입니다.
마이크 사테인이 공개한 이 도구는 윈도의 GPUView와 비슷한 리눅스용 GPU 프로파일러(프로그램이 어디서 시간을 쓰는지 재는 도구)를 목표로 합니다. 라이선스 문서에는 2019년 밸브 소프트웨어의 저작권이 적혀 있습니다.
왜 중요한가
- 윈도 개발자에게 익숙한 GPUView 방식의 분석을 리눅스에서도 무료로 할 수 있게 해 줍니다.
- 성능 문제가 GPU 드라이버 쪽인지, 앱이나 CPU 스케줄링 쪽인지 한 타임라인에서 비교해 볼 수 있습니다.
핵심 내용
- trace-cmd(리눅스 커널의 ftrace 이벤트를 기록하는 도구)로 잡은 트레이스 파일을 읽어 타임라인으로 보여 줍니다.
- AMD(amdgpu)와 인텔(i915) GPU 드라이버 이벤트, 리눅스 스케줄러의 작업 상태를 함께 표시합니다.
- 타임라인을 옮기고 확대하며 이벤트를 걸러 볼 수 있고, 수치 변화를 그래프로 그리는 플롯 기능도 있습니다.
- 프레임 경계를 표시하는 프레임 마커, 화면에 고정하는 툴팁, 이벤트 길이 출력 기능을 갖췄습니다.
- 화면은 Dear ImGui와 SDL로 만들었고, 코드는 MIT 라이선스로 공개돼 있습니다.
HN 반응
- Perfetto가 더 현대적인 대안이라는 의견과, 커널 쪽 GPU 디버깅에는 여전히 쓸 만하며 Perfetto와 함께 쓰면 좋다는 의견이 나왔습니다.
- 크레디트의 깨진 링크를 보고 저품질 프로젝트로 의심한 댓글은, 저자가 밸브 출신이고 README가 5년 전 것이라는 설명을 듣고 철회됐습니다.
저는 perfetto [1]가 gpuvis를 대신할 만한 훌륭한 최신 도구라고 생각합니다.
[1] https://ui.perfetto.dev/
스크린샷이 안 열려서 아쉽네요.
https://github.com/mikesart/gpuvis/blob/master/images/gpuvis.jpg
URL 끝에 붙은
?raw=true가 문제인 것 같네요.이렇게 해도 안 되나요? 저는 되던데요. 어차피 거의 모든 이미지를 이렇게 열어야 하기도 하고요. [0]
[0] ...가끔은 우클릭을 막아 놓은 못된 스크립트를 피하려고 클릭할 때 Shift를 같이 눌러야 하지만요.
대체로 2021년 자료입니다.
수정: 제 댓글은 무시해 주세요.
크레딧 항목에 404 페이지로 연결되는 링크가 여럿 있어서, 이 프로젝트가 완전 날림(slop)인가 싶습니다. 제 착각이면 좋겠네요.
날림은 아닌 것 같습니다. 마이크 사르테인은 밸브에서 일한 경력을 포함해 이력이 꽤 깁니다. README 파일의 마지막 커밋이 5년 전이라서 링크 일부가 404가 뜨는 것이겠죠.
감사합니다! 위의 제 댓글을 수정했습니다.
리눅스에서 커널 쪽 GPU 디버깅을 하는 데는 여전히 손꼽히는 무료 도구입니다. ftrace/perf 이벤트를 타임라인으로 읽어 들이면 GPU 스케줄러를 볼 수 있는데, Chrome 트레이싱이나 벤더 도구로는 이만한 시야를 얻기 어렵습니다. 시스템 전체 그림을 볼 때는 perfetto와 함께 쓰면 잘 맞습니다. amdgpu/i915 이벤트 파싱도 놀랄 만큼 세월을 잘 버텼고, Mesa 작업에 유용합니다.