다이나믹 캐싱의 설명을 위해선 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(다이나믹캐싱)
*전공자도 아닌 본인 역시 이해하기 쉽게 간단하게 설명한 것이라 정확하지 않은 부분이 있을 수 있다. '메모리를 효율적으로 관리하기 위한 방법이구나'라고 생각하면 될 듯하다.
'과학과 공학 이야기 > 반도체와 디스플레이' 카테고리의 다른 글
삼성 갤럭시 24 공개. 삼성이 말하는 'AI 반도체'와 '온디바이스 AI'란? (0) | 2024.01.21 |
---|---|
SSD와 HDD의 차이 : SSD 종류 SLC, MLC, TLC, QLC (0) | 2024.01.08 |
전기는 어떻게 생성하는 걸까? *전하, 전위차, 전기장 쉬운 정리 요약 (0) | 2023.12.17 |
커패시턴스와 커패시터의 차이 : 커패시터의 원리는? (1) | 2023.12.05 |
아이폰 고스트 현상 원인은? 스마트폰에서 나타나는 고스트, 포그 현상 이유가 뭘까? (0) | 2023.10.07 |
댓글