임베디드 개발 여정의 제대로 된 시작!
요약
C++ 개발 경험을 바탕으로 LLM과 GPU의 작동 원리에 관심을 갖게 되면서, 행렬 곱셈이라는 핵심 연산에 주목하게 되었다. 이 글은 AlphaTensor 논문 발견부터 시작하여, Google TPU, NPU, Nvidia GPU 등 하드웨어 가속기들이 내부적으로 어떻게 구축되고 최적화되는지 깊이 탐구하는 여정을 기록하고 있다.
핵심 포인트
- AI의 핵심 연산은 행렬 곱셈(GEMM)이다.
- AlphaTensor는 RL을 이용해 효율적인 행렬 곱셈 알고리즘을 발견했다.
- GPU, TPU, NPU 등 가속기는 BLAS, 시스톨릭 배열 등으로 최적화된다.
C/C++로 코딩한 지 1년이 넘었기 때문에 C++에서 몇 가지 수학 문제를 풀어보며 작게 시작하기로 결정했습니다. 지금까지 두 개를 풀었습니다.
대학교 시절에 LLM을 접했고, 약 1년 후에 Ollama를 알게 되었습니다. 제 PC의 GPU가 요청 하나를 로컬에서 처리하는 데 얼마나 걸릴지 궁금했습니다. 그래서 더 깊이 파고들었고, GPUs, TPUs, NPUs를 만났습니다. 그러다가 예상치 못한 것을 발견했는데, 이 모든 것이 거대한 규모로 단 하나의 일, 즉 행렬 곱셈을 수행하도록 설계되었다는 것입니다.
그것은 저로 하여금 표준 $O(N^3)$ 접근 방식보다 더 빠르게 행렬을 곱하는 방법을 찾아보게 했습니다. 놀랍게도 저는 ChatGPT가 AI를 주류 현상이 되기 전에 발표된 Google DeepMind의 2022년 논문인 AlphaTensor를 발견했습니다. 이 팀은 강화학습 (RL)을 사용하여 인간이 찾았던 최고의 방법보다 적은 곱셈 횟수가 필요한 행렬 곱셈 알고리즘을 발견했습니다. 예를 들어, Strassen의 49번 곱셈 대신 47번의 곱셈으로 $4 imes 4$ 행렬(모듈러 산술에서)을 곱했습니다. 솔직히 처음에는 놀라웠습니다. 그러다가 깨달았습니다. 그들은 ML 알고리즘이 가장 많은 시간을 보내는 바로 그 일을 가속화하는 데 ML 알고리즘을 사용했다는 것입니다. 농담하시는 거죠, 그렇죠?
오늘 저는 Google TPU, NPU, 그리고 강력한 Nvidia GPU가 내부적으로 어떻게 구축되었는지 파헤치기로 결정했습니다. 거기서 GEMM, BLAS, 시스톨릭 배열 (systolic arrays), XLA, MXUs, 뉴로모픽 칩 (neuromorphic chips), cuDNN, CUTLASS에 대해 배웠습니다.
오늘부터 제가 배우는 모든 것을 여기에 공개적으로 기록할 예정입니다.
제대로 된 시간. 지금 바로.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기