🎈 여는 글 지난 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..
들어가며 이 책은 딥러닝 가속기를 연구하는 사람이나 이 분야를 업으로 삼고 있는 사람들에게는 바이블과 같은 책이다. 나도 아직 끝까지 다 읽지는 못했지만 방학(이라 읽고 연구 집중 기간이라 쓴다.) 동안 찬찬히 음미하며 읽어볼 예정. 읽으면서 블로그에 내용을 정리해보려 하는데, 업로드 순서는 책과는 다르게 중구난방이 될 수도 있다. 당장 하드웨어 설계에 필요한 부분부터 읽을 것이기 때문에, 양해를 부탁드리는 바이다. 내가 회사에서 하던 디지털 회로는 주로 filter 기반의 shallow ISP로 앞으로 연구 과정에서 설계해야 할 프로세서와는 결이 많이 다르다. 내가 설계한 IP로 입력되는 데이터는 sync 신호에 맞춰서 들어오기 때문에, 프로토콜에 맞춰서 잘(?) 설계만 하면 됐었다. 그래서 5년의 디..