여는 글 오랜만에 블로그에 글을 남기게 되었다. 원래는 기술 블로그를 표방하고 있었으나 점점 후기나 개인글이 많아진다는 느낌은 기분 탓일까? 여하튼 성장을 위한 좋은 경험을 하고 왔기에 잊지 않도록 기록을 남겨둔다. 아이디어톤은 실제 스타트업이 아이디어를 디밸롭하고 VC 앞에서 IR 피칭까지 해볼 수 있는 행사로 1박 2일(로 적고 무박 2일이라고 읽는다.) 동안 서울대 내의 학생들이 모의 창업 경험을 해볼 수 있는 기회의 장이다. 서울대학교 밴처 투자 동아리인 SNAAC과 서울대 창업지원단이 주관한 행사로, 서울 이태원 몬드리안 호텔의 라운지에서 진행되었으며 창업과 네트워킹에 관심이 있는 학생들이 한 자리에 모였다.행사 진행 행사는 팀빌딩, 투자회사 VC의 강의, 린 캔버스 기반의 아이디어 도출..
🎈 여는 글 지난 2월 20일부터 24일까지 4박 5일 기간 동안 가속기 프로그래밍 겨울캠프에 다녀왔다. 평소 연구를 하면서 cuda 프로그래밍 및 GPU 아키텍처에 관해 갈증이 많았던 터라 모집 공지를 보자마자 꼭 참가해야겠다고 생각했다. 다만 수강료가 큰 부담이었는데, 랩에서 연구원으로 등록된 학생들은 연구비 지원을 받을 수 있었지만 나와 같이 회사에서 온 사람들은 과제를 할 수가 없기 때문에 연구원으로 등록할 수가 없고, 당연히 연구비 지원도 받을 수 없었다. 교수님께서는 지원해 줄 수 있는 방법이 없으시다며, 회사에서 교육 참가에 따른 비용을 지원해 줄 수 있는지 문의해 보라고 하셨다. 당연히 그런 것이 될 리가 없었고... 결국 나는 사비로 다녀왔다. 🎈 가속기 프로그래밍 겨울캠프 이 캠프는 서..
🎈 여는 글 언젠가부터 블로그에 글을 적는 일이 뜸해지기 시작했다. 바쁘기도 바빴지만, 방문 기록이나 인기 글과 같은 지표에 신경을 쓰기 시작하면서부터 포스팅이 점점 부담스러워지기 시작했다. 이 블로그를 주로 방문하는 사람들은 Verilog나 Digital 회로 설계 등에 관심이 있을 거라는 생각 때문에, 내가 올리고 싶은 글보다는 남이 찾아주는 글을 올려야 한다는 부담감이었을 지도 모른다. 아시다시피 이 블로그는 상업적인 이득을 취하기 위한 곳도 아니고, 애드센스와 같은 수익형 모델도 달려있지 않다. 그저 내가 원할 때 글을 쓸 수 있는 공간이었는데, 꼭 정보를 전달해야 한다는 마음에 주객전도가 되어버렸다. 다시 초심으로 돌아가서 그냥 내가 올리고 싶은 내용이라면 반응을 고려하지 않고 올려보려고 한다...
아무래도 X됐다. 그것이 내가 심사숙고 끝에 내린 결론이다. 나는 X됐다. - The Martian의 첫 세 문장 박사 과정을 시작한 지 1년 9개월째 두 번째 tape out이 어제 끝났다. 알고리즘 -> RTL -> Front End -> Back End까지 전부 혼자 수행해야 하는 대장정. 결론부터 이야기하면 마지막 문턱을 넘지 못하고 장렬히 산화했다. 신규 공정. 처음 해보는 multi voltage threshold design. 연구실 최초로 clock gating을 모든 디자인에 적용. 리스크한 도전이었기에 충분한 시간이 필요했지만 time borrowing으로 앞 단에서 시간을 너무 많이 허비했다. 결국 Back End 마지막에 발생하는 예상 못한 문제들을 해결하지 못하고 빌린 시간에 대한..
2022년 한 해 동안 최고의 문장 하나를 꼽으라면, 단연코 '중꺾마'일 것이다. '중요한 것은 꺾이지 않는 마음'이라는 문장의 줄임말인데, 카타르 월드컵에서 한국이 16강에 진출하면서 했던 세리모니를 통해 널리 알려지게 되었지만, 사실 이 말의 유래는 따로 있다. 나는 피지컬과 에임에 있어서는 두 수는 접어둘 만큼 실력이 일천하기에 AOS나 FPS 장르의 게임과는 거리가 멀었던 사람이다. 그래서 잘은 모르지만 이 말의 유래를 오랫동안 우승과는 연이 없었던 Deft라는 한국 선수가 드라마 같은 명경기를 롤드컵 결승에서 펼치면서 했던 인터뷰에서 나왔던 말이라는 정도로만 알고 있다. 어찌 됐건, 갑자기 이 말을 꺼내게 된 이유는 최근 깨달은 바가 있어서 많은 분들과 공유하고 싶어서인데, 이 이야기의 본질이 ..
좋은 DNN Accelerator의 요건은 뭘까? 낮은 전력 소모와 적은 양의 메모리를 사용하면서도 적은 latency와 높은 throughput을 가지며 병렬화가 잘 되어 높은 수준의 Processing Element (PE) Utilization을 확보해야 한다. 어떻게 이러한 목표를 달성할 수 있을지 생각해 보면 아주 보편적인 접근 방법이 도출된다. 데이터의 재사용성을 높이고, 불필요한 연산은 하지 않고 넘긴다. (Sparsity를 최대한 활용한다.) 데이터를 처리하는 순서를 잘(?) 배치한다. 본 책에서는 기존의 연구 및 양산된 제품들이 앞서 서술한 목표를 달성하기 위해 고안한 아이디어와 방법에 대해서 친절하게 설명하고 있다. 병렬로 배치되어 있는 PE를 데이터가 지나가면서, 여러 번의 MAC (..
들어가며 느려 느려도 너무 느렸다. 서버에 GPU가 8개씩 달려있으면 뭐 하니, 제대로 쓰질 못하는데. 4K 이미지를 몇 천장을 128x128 사이즈로 잘라서 데이터셋을 만들고, 조금 무거운 모델에 올려서 돌리다 보니 속도가 너무 느렸다. 1 epoch를 도는데, 2시간 가까이 걸리는데 어느 세월에 학습을 다 끝내냔 말이다. 이제는 제대로 Multi GPU를 사용해야 할 때인가 싶어, 폭풍 구글링을 통해 nn.DataParallel을 검색하여 후딱 코드에 박아 넣었다. 좀 빨라지려나 생각했으나 결과는 Fail. 이유가 뭘까? 일단 무지성으로 PyTorch 한국 공식 페이지에 들어가서 Multi GPU 관련 튜토리얼을 쭉 돌려봤다. 인터넷에 돌아다니는 아티클과 테크 리포트 등을 훑어보니, nn.DataPa..