티스토리 뷰

컴퓨터과학/GPU

GPU 메모리 구조

Teus 2022. 3. 3. 03:48
728x90
반응형

본 포스팅은 "머신러닝과 블록체인을 떠받치는 GPU의 모든 기술" 책을 읽고, 글쓴이의 생각을 정리하는 포스팅 입니다.

https://book.naver.com/bookdb/book_detail.nhn?bid=13499076 

 

머신러닝과 블록체인을 떠받치는 GPU의 모든 기술

이 책은 GPU의 기본 구조와 기술 동향에 초점을 맞춘 해설서입니다. 3D 그래픽, 게임, 모바일, VR/AR, 과학 기술 계산, 그리고 인공지능/딥러닝에 이르기까지 폭넓은 분야에서 GPU/병렬 계산의 중요도

book.naver.com

 

1. 메모리 구조

지난 포스팅 마지막에 "동일한 Data를 공유해야하는 Work가 다른 CU(혹은 SM)에 할당된 경우 CU(혹은 SM)끼리의 데이터 교환(다른 CU, SM의 Cache의 데이터 조회)이 발생하고, 이 때문에 불필요한 오버헤드가 발생할 수 있습니다."

 

라고 언급했습니다.

 

아래 Nvidia GPU의 간단한 메모리 구조를 예시로 보시겠습니다.

Nvidia GPU의 block Diagram 추상화 이미지

GPU의 경우 CPU와 다르게 L1 Cache부분이 조금 다릅니다.

 

GPU는 L1 Cache를 명령어/Data용도로 나눠놓고, 두가지 모두 Read Only 메모리로 사용됩니다.(Const와 비슷)

 

이때 Shared Memory라는 녀석이 특별하게 존재합니다.

 

A당이나 N당 모두 Work(Thread)를 Group화 하고, 이 Group을 각 CU(SM)에 할당하여 연산하는 기능이 존재합니다.

 

이때 이 묶음 단위의 Thread끼리는 데이터를 공유할 일이 발생합니다.

 

Work(Thread) Group끼리는 모두가 접근이 가능한 빠른 Cache를 Shared Memory를 사용합니다.

 

때문에 Thread를 굳이 Group단위로 묶어서 동일한 CU(SM)에 배치하게 됩니다.

 

만약 다른 CU와 데이터 교환을 할 경우 최악의경우 GDDR 메모리까지 데이터를 확인하게 됩니다.

(Nvidia의 경우 이 과정을 replay라고 부르며 4바이트 의 주소 32개를 버퍼에 저장하고, 필요한 주소가 이 버퍼에 없을 경우 필요한 주소를 포함하여 정렬 32개의 주소(128바이트)에 해당하는 데이터를 읽어들입니다)

728x90
반응형

'컴퓨터과학 > GPU' 카테고리의 다른 글

GPU프로그래밍_1(개념)  (0) 2022.03.03
GPU의 Thread(Work) 처리 방법  (0) 2022.03.03
GPU구조와 Thread(Work)의 단위  (0) 2022.02.26
GPU 성능지표와 메모리 대역폭  (0) 2022.02.25
SIMD와 SIMT  (0) 2022.02.24
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함