본문 바로가기
논문

효율적인 GPU 메모리 컨트롤러 설계를 위한 GPU 메모리 성능 분석 연구

by Lizardee 2023. 8. 31.
요약

CPU와 GPU의 동작 특성이 다르기 때문에 각각이 메모리 컨트롤러에 요구하는 특성은 다르다. 
CPU는 메모리의 latency가 중요하고, GPU는 대역폭이 중요하다.
 
따라서 이 논문에서는 GPU 메모리 컨트롤러의 효율적인 설계 방향을 제시하기 위해 CPU와 GPU 메모리의 동작 특성을 비교 분석하였다. 
실험 결과 latency는 Row Buffer Locality(RBL)에 의존하고, 대역폭은 Bank Level Parallelism(BLP)에 의존함을 밝혔다.
 
따라서 대역폭이 중요한 GPU 메모리는 높은 Bank Level Parallelism(BLP)가 의미하는 뱅크간 높은 병렬성을 갖도록 하는 설계가 필요하다.
 


1. 서론

GPU의 수행능력을 요구하는 응용 프로그램은 CPU와는 다르다.

  • CPU: 적은 수의 코어, 비순차적 명령어 처리, 분기 예측, 많은 용량의 캐시 메모리 등을 기반으로, 적은 쓰레드를 이용하여 고속으로 응용프로그램을 실행한다. 따라서 CPU에서는 latency가 중요하다.
  • GPU: 다량의 코어를 기반으로 수많은 쓰레드들을 동시에 수행한다. 따라서 GPU에서는 대량의 병렬 연산을 위한 대역폭이 강조된다.

 


gpu에서 대역폭이 중요한 이유가 뭐니?

GPU에서 대역폭(bandwidth)은 중요한 요소입니다. 대역폭은 GPU와 그래픽 메모리(GPU 메모리) 간의 데이터 전송 속도를 나타내는 지표로, GPU의 성능과 작업 처리 능력에 큰 영향을 미칩니다. 이에 대한 몇 가지 이유는 다음과 같습니다:

  1. 데이터 이동 및 처리 속도: GPU는 매우 복잡한 계산 작업을 빠르게 수행할 수 있지만, 이러한 작업은 대량의 데이터를 필요로 합니다. 대역폭이 높을수록 GPU와 메모리 간 데이터 이동이 빠르게 이루어지며, 이는 계산 작업을 더 빠르게 수행할 수 있게 해줍니다.
  2. 대량의 데이터 처리: 그래픽 작업, 과학적 모의실험, 딥 러닝과 같은 작업들은 대량의 데이터를 처리해야 합니다. 대역폭이 낮으면 데이터를 메모리에서 GPU로 이동시키는 시간이 증가하므로 작업의 전반적인 처리량이 제한될 수 있습니다.
  3. 효율적인 병렬 처리: GPU는 많은 코어를 가지고 있어 병렬 처리에 탁월한 성능을 보입니다. 그러나 이러한 병렬 처리 능력은 데이터를 신속하게 공유하고 처리해야만 발휘될 수 있습니다. 대역폭이 높을수록 병렬 처리된 작업의 성능 향상이 눈에 띄게 됩니다.
  4. 고해상도 그래픽 및 3D 작업: 대역폭이 높을수록 고해상도 그래픽 및 3D 모델링 작업에서 필요한 대량의 텍스처나 버퍼 데이터를 원활하게 처리할 수 있습니다. 이는 게임 개발자나 디자이너에게 중요한 요소입니다.
  5. 머신 러닝 및 딥 러닝: 딥 러닝 모델 학습은 많은 계산과 데이터 이동을 포함하며, 대역폭이 낮으면 GPU가 모델 학습에 필요한 데이터를 충분히 공급하지 못하여 학습 속도가 느려질 수 있습니다.
  6. 가상 현실 및 Augmented Reality: VR 및 AR 애플리케이션은 높은 프레임 속도와 낮은 지연 시간을 필요로 합니다. 대역폭이 충분하지 않으면 현실적인 경험 제공이 어려울 수 있습니다.

따라서 대역폭은 GPU 성능의 중요한 구성 요소 중 하나로, 다양한 응용 분야에서 빠른 데이터 이동과 처리를 지원하여 작업의 효율성과 성능을 향상시킵니다.


 
따라서 CPU로부터의 메인 메모리의 접근을 제어하기 위한 메인 메모리 컨트롤러와는 다른 GPU 메인 메모리 컨트롤러 설계가 필요하다.
본 논문에서는 GPU 메모리 컨트롤러의 효율적인 설계를 위하여 CPU와 GPU 메모리 동작특성을 비교 분석하고 GPU 메모리 컨트롤러 설계방향을 제시한다.
 
 

2. 본론

CPU와 GPU의 성능 지표는 latency와 대역폭이다. Latency와 대역폭은 주로 메인 메모리로 사용되는 DRAM(Dynamic Random Access Memory)에게 오는 일련의 요청들이 얼마나 지역성을 갖느냐, 얼마나 병렬적이냐에 따라 다를 것이다.
 
▶ RBL(Row Buffer Locality)
: DRAM의 요청들이 지역성을 나타내는 수치

  • 현재 저장되어 있는 DRAM 행 버퍼와 같은 행 주소를 갖는 요청이 올 확률
  • 행 접속 제한 횟수(활성화된 행 버퍼를 접속할 수 있는 요청 수를 제한하고 있는 값)와 상관이 있다.

 
▶ BLP(Bank Level Parallelism)
: DRAM의 요청들이 병렬성을 나타내는 수치

  • 동시에 얼마나 많은 뱅크가 사용되고 있는지 나타내는 지표
  • 주소 맵핑 scheme와 상관이 있다. 뱅크 주소가 물리주소에서 어디에 위치하는지에 따라 일련의 요청들이 DRAM의 지역성에 의해 서로 같은 뱅크 주소를 가질지 아니면 서로 다른 뱅크 주소를 가질지 결정되기 때문이다.

--> 따라서 본 논문에서는 높은 대역폭을 요구하는 GPU 메모리 컨트롤러의 설계 방향을 제시하기 위해, 주소 매핑 scheme와 행 접속 제한 횟수를 변수로 CPU와 GPU 메모리의 RBL, BLP와 latency, 대역폭과의 상관관계를 비교분석하였다.
 
▷결론

  • BLP(Bank Level Parallelism)가 매우 낮은 경우를 제외하면, 메모리 대역폭은 BLP에 의존한다.
    --> GPU가 높은 대역폭을 갖기 위해서는 뱅크 간 높은 병렬성(BLP; Bank Level Parallelism)가 필요하다. 
  • 행 접속 제한 횟수가 증가할수로고 RBL(Row Buffer Locality)는 증가하고, latency는 감소한다. 즉, 메모리 성능 지표인 latency는 RBL(Row Buffer Locality)가 증가하면 향상된다.
    --> CPU 메모리 컨트롤러는 낮은 latency를 위해서는 높은 행 버퍼 지역성(RBL; Row Buffer Locality)을 목표로 가져야 한다.

 
 

3. 결론

메모리 대역폭이 중요한 GPU에서 GPU 대역폭을 높이기 위해 GPU 메모리 컨트롤러는 높은 BLP 즉, 뱅크 간 높은 병렬성을 목표로 설계되어야 한다.
 
 
 
 

효율적인 GPU 메모리 컨트롤러 설계를 위한 GPU 메모리 성능 분석 연구 | DBpia

이민규, 전동익, 정기석 | 한국통신학회 학술대회논문집 | 2015.01

www.dbpia.co.kr