DCC: Data-Centric Compilation of Machine Learning Kernels for Processing-In-Memory Architectures
본 논문은 메모리 접근 불일치를 극복하기 위해 데이터 재배치와 연산 코드를 공동으로 최적화하는 최초의 메모리 내 연산 (PIM) 시스템용 데이터 중심 컴파일러인 DCC 를 제시하며, 이는 다양한 PIM 아키텍처에서 머신러닝 커널과 대규모 언어 모델 추론에 상당한 속도 향상을 달성합니다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
거대한 도서관(머신러닝 모델)을 운영한다고 상상해 보세요. 여기서 특정 책들(데이터)을 찾아 질문들에 답해야 합니다.
문제: 두 가지 다른 사서 스타일
전통적인 컴퓨터에서는 거대한 중앙 사무실에서 일하는 초고속 사서 (GPU) 가 있습니다. 이 사서가 빠르게 일하려면 책들이 특정 방식으로 배열되어야 합니다. 책 1, 책 2, 책 3 은 서로 다른 선반에 있어야 사서가 다른 통로에서 동시에 모두 꺼낼 수 있습니다.
하지만 책장 바로 옆에서 일하는 새롭고 매우 효율적인 보조 직원 (PIM 장치) 도 있습니다. 이 보조 직원은 읽는 속도가 놀라울 정도로 빠르지만, 자신의 특정 선반에 있는 책들만 건드릴 수 있습니다. 책들이 서로 다른 통로에 흩어져 있으면, 보조 직원은 왔다 갔다 해야 하므로 속도가 느려집니다.
이 새로운 보조 직원을 사용하려면 책들을 가져와서 책 1, 2, 3 을 모두 보조 직원을 위해 같은 선반에 재배치한 뒤, 보조 직원이 작업을 수행하게 한 다음, 다시 책들을 중앙 사무실 형식으로 재배치하여 주 사서에게 돌려줘야 합니다.
옛날 방식: 수동으로 처리하기
과거에는 프로그래머들이 이 책들을 어떻게 가장 잘 섞을지 수동으로 찾아내야 했습니다. 그들은 추측해야 했습니다. "이 선반에 책 10 권을 놓을까, 아니면 20 권을 놓을까?" 만약 그들이 잘못 추측하면, 보조 직원이 책을 읽는 시간보다 책을 섞는 데 더 많은 시간을 보내게 됩니다. 이는 시계가 계속 흐르는 동안 수동으로 도서관을 정리하려는 것과 같았습니다. 느리고 실수가 많았으며, 서로 다른 도서관 (서로 다른 하드웨어) 에는 완전히 다른 섞기 규칙이 필요했습니다.
해결책: DCC (현명한 사서의 보조자)
이 논문은 이 도서관을 위한 마스터 플래너 역할을 하는 새로운 "스마트 시스템"인 DCC를 소개합니다. DCC 는 보조 직원에게 무엇을 읽을지 말하는 것뿐만 아니라, 책을 배열하는 최선의 방법과 보조 직원에게 읽게 하는 최선의 방법을 동시에 파악합니다.
간단한 비유를 들어 DCC 가 작동하는 방식을 살펴보겠습니다:
범용 번역기 (다중 계층 추상화):
도서관마다 레이아웃이 다릅니다 (4 개의 통로가 있는 곳도 있고 8 개의 통로가 있는 곳도 있습니다). DCC 는 범용 언어를 구사합니다. 삼성 도서관을 사용하든 SK 하이닉스 도서관을 사용하든 상관없이, "책 배열 규칙"을 이해할 수 있는 형식으로 번역하여 어떤 하드웨어와도 작동할 수 있게 합니다."만약에" 시뮬레이터 (데이터 중심 스케줄 생성기):
추측하는 대신 DCC 는 머릿속에서 수천 번의 시뮬레이션을 실행합니다. "A 선반에 책 4 권을 놓으면 어떨까? 8 권을 놓으면 어떨까?"라고 묻습니다. 그리고 섞는 시간 더하기 읽는 시간을 포함한 전체 과정을 살펴봅니다.- 옛날 방식: "읽는 속도를 엄청나게 빠르게 만들자!" (섞는 데 시간이 무한히 걸린다는 점은 무시하고).
- DCC 방식: "읽는 계획을 약간만 바꾸면 섞는 시간을 절반으로 줄일 수 있다. 그것이 진정한 승리다." DCC 는 책을 옮기는 것과 읽는 것 사이의 완벽한 균형을 찾습니다.
속도 예측기 (결합 성능 예측기):
DCC 는 수천 번의 경기를 지켜본 베테랑 코치와 같습니다. 어떤 계획이 승리할지 알기 위해 모든 시뮬레이션을 실행할 필요가 없습니다. DCC 는 "학습 모델"을 사용하여 즉시 가장 빠른 계획을 예측합니다. 이는 나쁜 아이디어를 테스트하는 시간을 낭비하지 않는다는 것을 의미합니다.교통 통제관 (코드 최적화기):
DCC 가 최선의 계획을 선택하면, 교통을 정리합니다. 보조 직원이 책을 꺼낼 때, 다음 책을 기다리는 시간 없이 완벽한 배치 (한 번에 책 더미 전체를 꺼내는 것처럼) 로 꺼내도록 보장합니다.
결과: 얼마나 더 빠른가?
이 논문은 대규모 언어 모델 (텍스트를 쓰거나 질문에 답하는 AI) 실행과 같은 실제 세계 작업에서 이 시스템을 테스트했습니다.
- 속도 향상: 한 종류의 하드웨어 (AttAcc) 에서 DCC 는 주 컴퓨터 (GPU) 만 사용할 때보다 AI 를 13 배 더 빠르게 만들었습니다. 다른 종류 (HBM-PIM) 에서는 7.7 배 더 빠르었습니다.
- 실제 세계 테스트: AI 와의 전체 대화 (GPT-3 또는 LLaMA-2 와 같은) 를 실행할 때, DCC 는 전체 과정을 평균 4.5 배 더 빠르게 만들었습니다.
- "마법" 같은 트릭: 가장 큰 놀라움은 기존 방법들이 "읽기" 부분만 빠르게 만드는 데 집중했다는 점이었습니다. DCC 는 "섞기" 부분이 실제로 병목 현상임을 깨달았습니다. "섞기"와 "읽기"를 함께 고침으로써 막대한 속도 향상을 unlocked 했습니다.
요약하자면
DCC 를 붐비는 도시의 궁극적인 교통 통제관으로 생각하세요. 과거에는 교통 신호등이 차가 얼마나 빠르게 달릴 수 있는지에만 기반하여 설정되었고, 교차로의 교통 체증은 무시되었습니다. DCC 는 전체 지도를 살펴보고 체증이 문제임을 깨닫고, 교통 신호등 타이밍과 도로 레이아웃을 동시에 변경하여 도시 전체가 훨씬 더 빠르게 움직이도록 합니다.
이 논문은 이러한 새로운 메모리 장치에 대한 AI 작업을 위해 이 "결합 최적화"를 수행하는 최초의 시스템이라고 주장하며, 이를 통해 AI 의 미래를 위해 실용적이고 놀라울 정도로 빠른 시스템을 만들었다고 합니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.