GPU 최적화를 배우다, 2026 가속기 프로그래밍 여름학교
2013년 시작된 2026 가속기 프로그래밍 여름 학교가 올해로 14년째를 맞았습니다. 서울대학교 천둥연구실과 매니코어소프트 (대표 박정호) 가 지난 8월 24일부터 28일까지 4박 5일간 진행한 여름 학교는 GPU 아키텍처의 기초부터 실전 최적화까지, 참가자들이 직접 코드를 고치며 배우는 방식으로 진행됐습니다.
매니코어소프트 연구원이자 이번 여름학교 고급반을 맡은 고병현 강사를 만나 교육이 어떤 내용으로 구성됐는지 들어보고, 참가자들이 남긴 후기도 함께 살펴봤습니다.
왜 CUDA를 배우나
가속기 프로그래밍 여름학교는 2013년 정부과제로 시작됐습니다. GPU를 다룰 줄 아는 프로그래머의 저변을 넓히자는 취지였습니다. 정부과제가 끝난 뒤에도 지식의 보편화를 위해 교육은 계속 이어졌습니다. 2013년 당시만 해도 시장의 사실상 표준은 OpenCL이었습니다. 이후 수년에 걸쳐 시장이 CUDA로 재편됐고, 코로나 이후로 가속기 프로그래밍 여름학교에서는 CUDA를 메인으로 엔비디아 GPU를 다루는 법을 가르치고 있습니다. 그 기간동안 천둥연구실은 GPU 여러 장을 하나인 것 처럼 쓸 수 있게 도와주는 SNU-CL, SNU-RHAC 같은 연구도 이어왔고, 이는 GPU사용의 허들을 낮춘다는 하나의 흐름과 맞닿아 있습니다.
AI 에이전트가 코드를 대신 짜주는 시대에, 이 교육이 필요한 이유를 묻자 고병현 강사는 이렇게 답했습니다. "AI 에이전트가 GPU 코드를 짜주는 시대에서도 그 코드가 GPU 성능을 제대로 끌어냈는지 판단하고, 더 나은 성능을 끌어내려면 GPU가 어떻게 동작하는지 아는 사람이 필요합니다. 이 여름학교는 4박 5일이라는 짧은 시간 안에 그 판단력을 기르는 자리입니다."
기본반: GPU를 "쓰는 법"
기본반은 GPU 아키텍처와 CUDA 호스트·커널 프로그래밍을 다룹니다. 처음 CUDA 프로그램을 접하는 참가자들이 가장 낯설어하는 지점은 병렬성 자체입니다. CPU를 사용하는 프로그래밍에도 100개 내외의 코어를 활용하여 병렬성을 활용할 수 있지만 이는 필수적이지 않습니다. 하지만 GPU 프로그래밍은 코어가 수천 개이고 이를 한 번에 모두 사용하는 것을 기본적인 전제로 합니다. 이 요구치의 차이에서 오는 낯섦 때문에, 왜 이렇게 프로그래밍해야 하는지부터 이해하지 못하는 경우가 많습니다.
실제로 기초 지식 없이 참가했다가 어려움을 겪었다는 솔직한 후기도 있었지만, 이 과정을 통해서 가속기에 대한 기초적인 토대를 쌓을 수 있었고, 더 나아가 최적화를 통해서 프로그램의 실행 시간이 줄어드는 것에 흥미를 느끼며 더 몰입하게 됐다는 의견도 있었습니다.
고급반: GPU를 "더 잘 쓰는 법"
고급반은 본격적인 GPU 성능 최적화, 디버깅, 프로파일링, Multi-GPU 프로그래밍으로 범위를 넓힙니다. 최적화 기법 하나하나가 왜 생겼는지 맥락과 함께 설명하는 강의 방식에 대한 호평이 특히 많았습니다.
커리큘럼 구성 방식도 최근 달라졌습니다. 예전에는 고급반에 기본반 내용을 최대한 압축해서 함께 넣었지만, 프로그래밍 중 막히는 부분을 AI 에이전트에게 바로 물어볼 수 있는 시대가 되면서 기본반 내용 비중을 줄이고 고급 최적화 내용을 더 채우는 쪽으로 개편되었습니다.
프로젝트: 배운 것을 증명하는 시간
2인 1조로 진행되는 팀 프로젝트는 이번 교육의 핵심이었습니다. 첫날 과제가 공개되고, CPU 순차 코드로 짜인 소형 언어모델의 추론 프로그램을 GPU 병렬 코드로 전환해 최적화하는 방식으로 진행되었습니다. 토큰을 얼마나 빨리 생성하는지, 즉 실행 시간(wall-clock time)을 기준으로 순위를 매기는 경진대회 형식이었습니다. 모든 참가자가 같은 문제를 자기만의 방식으로 풀어내기 때문에 자연스럽게 경쟁 구도가 만들어지고 짧은 시간 안에 실력을 높일 수 있는 원동력이 되었습니다. 우수한 성적을 거둔 팀에는 1등 아이패드, 2등 에어팟이 상품으로 주어졌습니다.
매년 참가자들은 이 프로젝트에서 많은 것을 얻을 수 있었다고 합니다. "GPU 프로그래밍을 하면서 애플리케이션 실행 속도가 150배 빨라지는 경험을 했다"는 후기가 그중 하나입니다. 새벽까지 최적화에 매달리며 나흘 밤을 몰입해서 보냈다는 참가자도 여럿 있었습니다.
고병현 강사가 그리는 다음 단계
이 프로그램이 14년째 한결같이 이어지는 힘은 결국 사람에 있다고 고병현 강사는 말합니다. 연구실 구성원들은 매년 열과 성을 다해 준비하고, 참가자들도 해마다 꾸준히 이 자리를 찾아옵니다. 가르치는 사람과 배우는 사람 모두가 정해진 시간 이상의 애정과 진심을 쏟아붓는 모습에서, 이 프로그램이 오래 사랑받아 온 이유를 자연스럽게 느낄 수 있었습니다.
앞으로의 방향을 묻자 고병현 강사는 확장에 대한 기대를 내비쳤습니다. 이 과정의 이름이 'CUDA 학교'가 아니라 '가속기 프로그래밍 학교'인 만큼, 엔비디아 GPU에 국한하지 않고 다양한 가속기를 폭넓게 다루는 기회로 키워가고 싶다는 바람입니다.
현업의 시선으로 본 가속기 프로그래밍 학교
이번 여름학교에는 매니코어소프트 인프라R&D팀 최형원 팀장도 함께했습니다. 최 팀장은 "고객이 어떤 모델을 돌리고 싶어 하는지 파악해 스펙을 산정하거나, 원하는 문제를 해결해주는 데 이번 경험이 많은 도움이 되었다"고 소감을 전했습니다.
가속기 학교의 14년, 그 다음은
가속기 프로그래밍 여름학교는 GPU 인프라를 만드는 일과 이를 다룰 사람을 키우는 일을 나란히 이어온 프로그램입니다. 후기 게시판에는 겨울학교도 참가하고 싶다는 반응도 있었습니다. 14년째 이어진 이 프로그램이 다음 회차에는 또 어떤 이야기를 만들어낼지 지켜볼 일입니다.