한이음 ICT 공모전
활동: CNN 가속기를 설계하여 FPGA 상에서 YOLO v3 Tiny를 구현하고자 하였다.
결과적으론 실패...
논문을 투고하는 결과를 내긴 했으나, 구현에는 실패하였다.
팀장이였던 나의 역량 부족이 한 99%쯤 된다고 생각한다.
근데 공모전 끝나도 계속 만들것 같다.
역량 부족 내용
1. BUS를 알고 있었으면 프로젝트가 좀 더 빨리 진행되었을 것이다.
근데 내가 몰라도 다른 팀원에게 역할을 할당하여 그 팀원이 BUS 관련 처리를 담당할 수 있게 했으면 좋았을 것 같다.
그랬다면 나와 팀원들 모두 BUS 공부도 되고 프로젝트 성공률도 올라갔을 것 같다.
2. 레퍼런스 코드를 너무 대충 짰다.
그냥 github에 돌아다니는 YOLO 코드 보고 바로 HW 설계에 들어갔는데, 레퍼런스 코드를 좀 더 low level까지 표현 할 수 있게, 좀 더 가독성이 좋게, 좀 더 탄탄하게 코딩하였어야했다.
실제로 프로젝트 초~중반까지 HW 가속에 대한 직관적 이해가 부족한 팀원도 있었는데, 레퍼런스 코드가 더 탄탄했다면 훨씬 쉽고 빠르게 이해했을 것이다.
레퍼런스 코드의 중요성을 깨달았고, SW 코딩 공부도 절대 등한시하면 안되겠구나 생각했다...
3. 노력 부족
기한내에 실패한 프로젝트에 더 할말이 있는가.
노력 부족이라고 생각한다. 물론 팀원들은 최선을 다해주었다.
좋았던 점
1. 공부 및 역량 향상
관심 있는 분야를 여러 사람들과 프로젝트를 하며 필요한 지식을 공부하고 공유하는 과정이 좋았다.
나 혼자 공부할 때보다 여러 사람들과 내용을 공유하니 더 많은 지식을 빠르게 쌓을 수 있었다.
프로젝트를 하기 전과 지금 즈음의 설계 실력은 하늘과 땅만큼 차이가 생겼다고 생각한다.
(다른 활동도 많이 영향을 주긴 했으나...)
2. 리더십 함양
마지막 회의에서 전체적인 프로젝트 리마인드를 하였는데, 나는 좀 찡찡댔다 ㅋㅋ
내가 더 잘했더라면 훨씬 성공 확률이 높았을 거라고 부족했던 부분을 나열했다.
다른 팀원들은 나를 응원해주었고, 너무 감사했다.
또한 멘토님께서 뼈아픈 통찰을 하였다고 하셨다. 그럼에도 나를 칭찬해주셨다.
리더십에 대해 좀 더 성장하는 계기가 되었다.
3. 문제 해결 능력
사실 모든 프로젝트가 이 능력을 기른다고 생각하는데, 식상하지만 분명히 문제 해결 능력을 길렀으므로 작성한다.
진짜... 진짜 많은 문제가 있었다...
레퍼런스 코드는 Python에서 돌고 돌아 최종적으로는 내가 MATLAB으로 코딩하였고,
리눅스 버전 문제 등으로 github repo를 제대로 구현하지도 못했고...
batchnorm 연산 문제, 타이밍 문제 등등
그래도 팀원들과 힘을 합쳐 이겨냈다!!
4. 성과
ACK2024 정보처리학회에 논문을 개제하였다.
내 첫 논문!!!
4. 물질적 이득
PYNQ-Z2 보드 + 512GB SSD를 얻었다 후후....
마치며
정말 좋은 경험이였다. 팀워크, 리더십, 역량, 논문등 장점을 끊임없이 나열할 수 있다. 그래서 더 아쉬움이 많이 남았다. 디시설 교수님께서 말씀해주신 "레퍼런스 코딩이 중요하다. 레퍼런스 보고 RTL 설계하는건 일도 아니다." 라고 하는 내용을 떠올렸다. 다음에 하는 프로젝트는 좀 더 탄탄하고 완성도 있는 프로젝트가 될 수 있길!