'Dynamic caching(다이나믹캐싱)'이란?
본문 바로가기
과학과 공학 이야기/반도체와 디스플레이

'Dynamic caching(다이나믹캐싱)'이란?

by 학식과 구내식당 사이 2023. 12. 27.
반응형

 

 

 

 다이나믹 캐싱의 설명을 위해선 GPU가 간단히 뭔지 살펴볼 필요가 있다.

 

✅그래픽 처리는 대규모 단순 연산이 필요한데, CPU에게 대규모 단순 연산을 맡기면 정작 중요한 일은 후순위로 밀린다. 이를 방지하기 위해 개발됐던 것이 GPU였다.

 

CPU가 천재 1명이라면, GPU는 평범한 사람 1,000명이 있는 것과 같다. 1+1을 천 번 계산하라고 하면 CPU는 1명이 천 번을 빠르게, GPU는 천 명이 동시에 한 번에 계산하는 것과 같다.


단순 그래픽 처리를 위한 GPU는 암호화폐 채굴 때 단순작업을 위해서 몸값이 확 올라갔었다. 현재는 AI(인공지능)을 위해 필수적인 칩이 됐는데, AI는 간단히 말하면 수많은 데이터를 확보하고 연산작업 처리를 한 후에 가장 적절한 대답을 내놓는 것인데 이를 위한 작업에 GPU가 딱이기 때문이다.

출처 : 애플

 

 

 GPU는 가장 용량이 큰 메인 메모리 외에 작고 효율이 좋고 빠른 On-chip memory들이 있다.

 

✅On-chip memory는 그래픽 처리, 데이터 이동과 같은 작업을 처리할 때 컴퓨터가 효율적으로 처리하기 위한 장치이며 크게 3가지로 나뉜다.

 

✔️Register file(레지스터 파일)

- 컴퓨터가 작업 처리를 빠르게 하기 위해 일시적으로 데이터를 저장하는 곳이다.

 

✔️Threadgroup and tile memory(스레드 그룹과 타일 메모리)

- 스레드란 작업을 수행하는 가장 작은 단위이다. 보통 코어의 개수 = 스레드의 개수로 보며, 하이퍼스레딩 기술로 늘릴 수가 있다. 예를 들어 듀얼코어에 하이퍼스레딩이면 가상 코어가 생겨 4스레드가 된다. 물리적인 코어가 많은 것보단 성능은 떨어지지만, 성능 향상을 이끌 수 있다.

 

- GPU는 일반적으로 모든 픽셀을 한 번에 렌더링을 하려고 하는데, 타일 형식으로 나눠서 처리하면 더 낮은 전력으로 처리할 수 있다. 그리고 타일 렌더링의 메모리가 타일 메모리다.

 

✔️Buffer and stack cache

- '버퍼'란 정보를 다른 곳으로 이동할 때 사용하는 단기 저장 공간과 같다.

 

- '스택'은 가장 최근에 들어온 데이터가 가장 먼저 빠져나가는 것이다. 예를 들어 책 10권을 쌓는다고 하자. 그리고 다시 이 책들을 원래 자리로 놓을 때 보통 가장 맨 위에 있는 책부터 치울 것이다. 왜? 그게 가장 효율적이기 때문. 이러한 방식이 '스택'이다. 

 

출처 : 애플

 

 

 'Dynamic caching(다이나믹 캐싱)'이란?

 

 위 정보를 하나로 합쳐보자. 

 

GPU는 용량이 큰 메인 메모리 외에 코어 안에 작고 빠른 온 칩 메모리들이 있음


온 칩 메모리 용량이 부족하면 GPU 코어가 능력을 100% 활용하지 못 함


한정된 자원에서 온 칩 메모리를 무조건 늘리면 나머지 비중이 줄어들음


들어가는 자원 대비 그에 비한 성능 향상이 낮음

여기저기 나뉜 온 칩 메모리를 한 군데로 모아서 관리함

그러면 상황에 따라 효율적인 관리 실제로 쓰는 만큼만 사용하게끔 하며, 온칩메모리 용량 때문에 활용을 못 하던 상황을 방지함

 

즉, 메모리를 보다 효율적으로 처리하는 방식이 Dynamic caching(다이나믹캐싱)

 

*전공자도 아닌 본인 역시 이해하기 쉽게 간단하게 설명한 것이라 정확하지 않은 부분이 있을 수 있다. '메모리를 효율적으로 관리하기 위한 방법이구나'라고 생각하면 될 듯하다.

출처 : 애플

반응형

댓글