~시연이의 우주~
2025-2 캡스톤디자인과창업프로젝트A 기술블로그 본문
*이 글은 이전에 꾸준히 작성했던 기술블로그 컨텐츠들을 편집하여 하나로 묶은 것입니다.(URL 링크 1개 제출을 위해)
1.졸업프로젝트...뭐하지?: 중간발표 이전까지 준비한 것들
운이 좋게도 예전부터 관심분야가 같았던 같은 과 언니들과 졸업프로젝트를 함께 하게 되었다. 시스템 최적화, OS, 자원분배에 관심이 있었던 우리는 연구트랙으로, 어떤 주제를 할지 고민했다.
1차 연구 주제 리스트가 나왔고 교수님께 피드백을 받았다. 이에 대해
1.관심분야와의 일치
2.연구의 현실성
3.분야의 전망
을 고려해서 최종 연구주제를 정했다.
그렇게 해서 정해진 우리의 연구주제는
'VM 별 AI 워크로드 에너지 사용량 예측모델 설계 및 개선 방안'
이다.
우리의 Project Brief는 아래 깃헙에서 자세히 볼 수 있다.
https://github.com/Team37-OptimusPrime/optimusprime
GitHub - Team37-OptimusPrime/optimusprime: This is a team repository for Optimus Prime team.
This is a team repository for Optimus Prime team. Contribute to Team37-OptimusPrime/optimusprime development by creating an account on GitHub.
github.com
중간중간 연구 scope을 재정의했고, 나는 우선 전통적인 워크로드와 AI 워크로드 간 에너지 소모 패턴 분석을 맡아 진행하기로 했다.
2.[문제해결]서버 드라이버 이슈 해결
사실 연구트랙을 하면서 가장 우려스러웠던 것은 실험에 필요한 자원을 확보하는 것이었다. 우선 학교에서 GPU 등 기자재를 대여해줄 수 있는지부터 알아봤는데, 우리가 필요한 사양이 없었고 대여기간이 한정되어 있어서 사용이 어려울 것 같았다.
다행히도 지도교수님의 연구실에서 서버를 제공해주셔서 실험을 시작할 수 있었다.
서버계정을 받아서 기본적인 세팅을 완료하려고 했는데 로그에 비정상적인 정보가 찍혀나왔다.
분명 GPU가 부착된 서버를 받았는데 GPU를 전혀 인식하지 못 하고 있었다.
문제의 원인은 VM 환경을 위한 드라이버였다. 이전에 실험을 하고 원복해놓지 않아 VM환경 드라이버가 그대로 설치되어 있어 GPU를 인식하지 못 하는 문제가 생겼던 것이었다.
이를 해결하기 위해서
1.새로운 드라이버 설치
2.grub 파일 업데이트
3.업데이트 내용 적용을 위해 서버 재부팅
과정이 필요했다.

새로운 드라이버를 설치하려고 하니 이전 버전의 드라이버들 때문에 저장용량이 부족해서 우선 버전 지난 몇개를 지웠다.

그리고 필요한 드라이버(삭제한 드라이버들의 가장 최신 버전)을 설치했다. 설치하는 중에도 저장용량이 부족해서 설치과정이 몇번 중단됐고 용량확보-설치를 무한히 반복했다.
필요한 용량보다 조금 더 비워놔야했기 때문에 애초에 지울 수 있는걸 다 지워서 용량을 충분히 확보해두는게 좋을 것 같다.

변경된 내용을 업데이트 해줬는데, 그 중에도 계속 오류가 생겨서 캐시 삭제도 해보는 등, 서버를 청소(?) 하는 작업을 계속 했다.
청소-업데이트 시도-청소-업데이트 시도-..의 무한 반복...
그리고 마침내! grub 파일을 업데이트하고 sudo reboot 명령어로 서버를 재부팅해줬다.
이전에도 update 명령어를 쓰고나서 재부팅이 필요해서 몇번 재부팅을 했었는데, 보통 2-3분 뒤면 다시 서버에 접속할 수 있다.
그런데 이번에는 한참이 지나도 서버에 접속이 되지 않는것...!
다음날 바로 학교에 가서 연구실에 문의드렸다. 박사님께서 자초지종(VM 드라이버가 왜 설치되어 있었는지)을 말씀해주시고는 재부팅 과정에서 멈춘 서버를 살려주셨다.
몇분 뒤에 서버에 정상적으로 접속할 수 있었고, 드라이버 이슈도 해결되었다.
문제를 스스로 해결해보는 시도는 좋으나, 꼭꼭 담당자에게 사정,설명을 듣도록 하자....
3.[튜토리얼]Github 디렉토리 서버로 가져오기
NVML,RAPL 을 이용하여 전력을 측정해서 idle 상태의 전력, 즉 유휴 전력을 측정해보았다.

이제 전통적인 워크로드에서 소모되는 전력을 측정해보겠다.
전통적인 워크로드를 주는 데는 대표적으로 3가지 방법이 있다.
1.언어로 프로그램 작성해서 실행하기
2.터미널 명령어 입력하기(stress 등)
3.타연구, 연구에서 보편적으로 쓰이는 프로그램 사용하기
나는 이중에서도 3번, 프로그램 중에서도 parsec을 사용하기로 했다. 많은 개발자, 연구자들이 약간씩 변형해서 깃헙의 공개 레포지토리에서 clone해서 쓸 수 있도록 해뒀기 때문에 사용하기도 쉽고, 실험에도 용이하며, 꽤나 정확한 방법이라고 판단했기 때문이다.
정확한 방법이라는 것은, 내가 준 부하를 오차없이 Tracking할 수 있다는 뜻이다.
내가 사용한 parsec 버전은 아래 링크의 것이다.
https://github.com/connorimes/parsec-3.0
GitHub - connorimes/parsec-3.0: PARSEC 3.0 benchmark suite
PARSEC 3.0 benchmark suite. Contribute to connorimes/parsec-3.0 development by creating an account on GitHub.
github.com
이걸 이제 로컬이 아니라, 사용중인 서버컴퓨터로 가져와야 한다.
1.서버에서 SSH key 생성하기
이메일은 실제 사용중이지 않아도 괜찮다. 개인 식별용이기 때문이다.
서버에 접속해서 아래 명령어를 입력하면 ssh key를 발급받을 수 있다.
ssh-keygen -t ed25519 -C "your_email@example.com"
2.Github에 SSH key 등록하기

발급받은 키를 복사해서 github의 Settings->SSH and GPG keys 에 접속, NEW SSH key 버튼을 클릭해 붙여넣기 한다.
이렇게 하면 내 github 계정에 서버에서 발급받은 ssh key를 등록할 수 있다.
3.잘 연결되었는지 확인하기
이제 다시 서버에 접속해서
ssh -T git@github.com
위의 명령어를 입력해서 아래와 같이 (uoehisx는 등록한 github 레포지토리의 계정이름, 여기서는 내 계정 이름이다.) 찍혀나오면 연결이 됐다는 것이다.

이제 git clone 명령어를 사용해서 필요한 레포지토리를 clone해서 사용하면 된다.
parsec으로 이것저것 부하를 주다보니 앞으로 무얼 해야할지가 좀 윤곽이 잡혔다.
1.현재는 단발성 부하인데, 일정시간 이상 부하를 줄 수 있도록 해야함.
2.부하와 에너지 소모량을 둘 다 logging해서 비교해봐야함.
이를 위해서는 백그라운드에서 에너지 측정 프로그램을 돌리면서 parsec 역시 터미널 명령어로 부하를 주는 것이 아니라, 백그라운드에서 에너지 측정 프로그램 실행하면서, 주어진 parsec을 커스터마이징해서 긴 시간 부하 주고, 두가지 모두 logging 되도록 하나의 프로그램을 짜야겠다는 생각이 들었다.
아무것도 모르는 상태에서 우선 이것저것 만져보니까 뭘 해야하는지 좀 뚜렷해진 것 같다.
'프로젝트 > 졸업프로젝트' 카테고리의 다른 글
| AI 워크로드는 전력을 '다르게' 먹는다 - CPU·GPU 전력 비선형성 측정 시스템 Track A 구현기 (0) | 2026.05.25 |
|---|---|
| [개발일지] github 디렉토리 서버로 가져오기 (0) | 2025.11.20 |
| [문제해결]서버 드라이버 이슈 해결 (0) | 2025.11.18 |
| 졸업프로젝트...뭐하지? : 중간발표 이전까지 준비한 것들 (0) | 2025.10.22 |