카이본과 쿤레와 함께하는 병렬 프로그래밍, 프로세서, 그리고 캐시
Moscow Institute of Physics and Technology
스탠포드의 한 학생이 카이본 파타할리안(Kayvon Fatahalian)과 쿤레 올루코툰(Kunle Olukotun)이 가르친 병렬 프로그래밍 강좌를 회고하며, AI를 위한 하드웨어 전문화, CPU 아키텍처, 캐시 일관성 프로토콜을 다룹니다. 이 글은 전문화된 하드웨어가 에너지 효율과 성능을 어떻게 향상시키는지 설명하고, 캐시와 MESI 프로토콜을 설명합니다. (참고: MESI 프로토콜은 캐시 일관성 프로토콜의 하나로, 약어는 첫 언급 시 원문 그대로 사용했습니다.)
저자는 스탠퍼드대학교 4학년 학생으로, 병렬 프로그래밍(Parallel Programming) 강의를 들으며 마이크로프로세서 아키텍처에 대해 눈을 뜨게 된 경험을 소개한다. 이 강의를 담당한 교수진은 그래픽스 및 성능 분야의 전문가인 케이본 파타할리안(Kayvon Fatahalian)과 멀티코어 프로세서 분야의 선구자인 쿤레 올루코툰(Kunle Olukotun)으로, 모두 이 분야 최고의 권위자들이다. 이 글은 크게 세 가지 주제, 즉 하드웨어 특화(hardware specialization), CPU의 기본 구조, 그리고 캐시 일관성(cache coherence)을 다룬다.
하드웨어 특화는 AI가 요구하는 에너지 효율성과 성능이라는 두 가지 요구에서 비롯된다. 데나드 스케일링(Dennard scaling, 트랜지스터 크기가 줄어들어도 전력 밀도가 일정하게 유지된다는 법칙)은 2005~2007년경에 한계에 도달했으며, 이후로는 병렬 산술 연산을 처리하는 데 있어 가속기(accelerator)와 같은 특수 목적 하드웨어가 훨씬 더 에너지 효율적이라는 점이 부각되었다.
CPU는 제어 장치(Control Unit), 산술논리연산장치(Arithmetic Logic Unit, ALU), 그리고 레지스터(register)로 구성되며, 이 모든 구성 요소는 트랜지스터로 만들어진다. 캐시(cache)는 임시 저장 공간으로서 프로그램의 정확성에는 영향을 주지 않으면서 성능을 향상시키는 역할을 하며, MESI와 같은 캐시 일관성 프로토콜은 여러 캐시에 걸쳐 데이터의 일관성을 보장해 준다.
저자는 또한 이 강의에서 SIMD(Single Instruction, Multiple Data, 단일 명령 다중 데이터), SPMD(Single Program, Multiple Data, 단일 프로그램 다중 데이터), GPU, CUDA(Compute Unified Device Architecture), 락(lock), 트랜잭셔널 메모리(transactional memory) 등은 다루지 않았다고 언급하면서, 마이크로프로세서 제조 공정을 설명하는 영상과 모스크바 물리기술대학교(Moscow Institute of Physics and Technology, MIPT)의 강유전체 메모리(ferroelectric memory) 관련 연구 논문에 대한 링크를 함께 소개한다.
출처: Habr — хаб ИИ —
원문
