자 네번째 키워드인 GPU를 알아보겠다.
GPU는 생소한듯 아닌듯한 단어이지만, 컴퓨터 게임을 해봤다 하면
대부분 알고 있는 그래픽 카드에 달려있는 장치 라고 생각하면 된다.

위 사진은 그냥 구글에 있는 이미지를 가져왔다.
보면 어떤게 연상이 될지 모르겠지만, 나 같은 경우엔 CPU칩이 생각난다.
왜 이 이야길 하냐, CPU와 많은 연관이 있다는 의미 이다.
사전적 의미를 풀자면 'Graphics Processing Unit' 그래픽을 처리할 수 있는 장치이다. 컴퓨터에 들어가는 그래픽 작업을 처리하게 되며, 시각적인
데이터를 생성하고 표시하는 데 특화되어 있다.
CPU는 일반적인 계산 작업을 담당하고, 메모리와 같은 다른 하드웨어와 통신하여 시스템의 전반적인 작동을 조정한다고 한다.
GPU는 그래픽 작업을 처리하는 데 특화된 하드웨어로, 병렬 처리를 통해 고성능의 시각적인 데이터 처리를 가능케 한다.
이를 통해 게임, 영화, 디자인 및 기타 그래픽 관련 작업에서 뛰어난 성능을 발휘한다고 한다.
그래서 연산하는 양이 많아지면 세세한 표현과 다양한 표현이 가능해지니,
고사양 게임이 높은 그래픽사양을 요구하는 것이다.
GPU가 연산하는 방식은 크게 두가지가 있다고 한다.
레스터라이제이션은 가장 일반적으로 사용되는 그래픽 처리 기술 중 하나 이다. 이 기술은 3D 모델을 평면화하여 화면에 표시하는 과정이다.
기하 처리: 3D 모델의 정점(vertex)들을 변환하여 화면 공간으로 매핑
클리핑: 화면 공간에 벗어난 부분을 잘라내어 제거
투영: 화면에 정점을 투영하여 2D 이미지로 만듦
래스터화: 2D 이미지를 픽셀(pixel) 단위로 분할하고, 각 픽셀에 대한 정보를 생성
셰이딩: 픽셀에 대한 색상, 질감, 그림자 등의 정보를 계산하여 최종 이미지를 생성
위와 같은 단계로 구성된다.
여러가지 장단점이 있겠지만, 각각 두개씩 알아보았다.
GPU의 장점
1. 병렬 처리: GPU는 많은 수의 코어를 가지고 있어서, 병렬 처리에 뛰어나다.
2. 고성능 연산: GPU는 그래픽 작업을 처리하는 데 특화되어 있어서, 고해상도의 이미지나 복잡한 3D 모델을 빠르게 처리할 수 있다.
GPU의 단점
1. 메모리 한계: GPU는 대개 CPU보다 메모리 용량이 작다.
따라서 대규모 데이터를 처리해야 할 경우 메모리 한계에 부딪힐 수 있다.
2. 프로그래밍 복잡성: GPU를 사용하여 병렬 계산을 수행하려면 별도의 프로그래밍 모델 및 언어를 사용해야한다.
이는 일반적인 프로그래밍 방법론과는 다소 다르며, 복잡성이 있을 수 있다.
컴퓨터를 맞출때나, 아니면 노트북을 볼 때 그래픽카드의 사양이 좋은것만
골랐고 봐왔었다. 그런 그래픽카드들이 어떻게 구성이 되고 왜 필요한지 이번
기회를 통해 알게 되었다. 사실 CS를 공부하며 새롭게 알게되는 지식들이 많아지고 있다. 그만큼 까먹은 것도 있겠지만, 새롭게 알게된 지식이 많다.
모두 머리속에 집어 넣을 순 없겠지만 꾸준히 하여 머리에 넣겠다.