[[분류:GPU]] [목차] == Graphics Processing Unit == [include(틀:전기전자공학)] [include(틀:컴퓨터공학)] 말 그대로 컴퓨터 그래픽을 처리하는 장치로, [[그래픽 카드]]를 구성하는 가장 중요한 핵심 요소이다.[* 그 다음으로 중요한 요소는 당연히 GPU 외부에 탑재된 메모리이다. 규격 이름이 [[보통명사화]]된 비디오 메모리의 약자인 'VRAM'으로 가장 많이 통용되며, '그래픽 DRAM'도 많이 통용되는 편이다. 일반적이지 않지만 프로그래밍 분야에서는 '글로벌 메모리' 또는 '전역 메모리'로 많이 통용된다. 현세대에는 대부분 GDDR 계열의 SGRAM 규격이 채택되기 때문에 SGRAM이 그나마 정확한 표현에 가깝지만 거의 거론되지 않는다.] [youtube(ZdITviTD3VM)] 그래픽카드는 어떻게 작동할까? (bRd3D 영상) 과거 그래픽 가속기, 그래픽 칩을 비롯해서 3D카드, 3D가속기, DP(Display Processor), 디스플레이 가속기, VP(Video Processor), 비디오 가속기, 그래픽 프로세서 등의 여러 명칭으로 불렸고, 3D가 아닌 그래픽 카드 시절에는 단순히 CPU가 기록한 비디오 램의 데이터를 베이스로 화면을 출력하거나, 렌더링까지 관여해주는 정도였고, 3D 그래픽 카드 초창기에는 텍스처링 및 렌더링까지만 해주거나, 삼각형 셋업 및 클리핑까지만 해주는 경우가 전부였다. 때문에 GPU라기 보다는 '그래픽 칩' 정도로 불리는 것이 보통이었다. GPU라는 말 자체는 플레이스테이션1이 나올 때 [[소니]]가 그래픽장치의 이름을 [[https://www.computer.org/publications/tech-news/chasing-pixels/is-it-time-to-rename-the-gpu|SONY GPU]](made by toshiba) 라고 소개한 것이 최초라 할 수 있으다. 현대의 GPU처럼 정점 연산 기능이 하드웨어로 내장된 것은 아니지만 대신 CPU에 코프로세서인 GTE(Geometry Transformation Engine)로 별도 내장되어 있다. PS2 시대에도 벡터연산유닛 VPU를 GPU가 아닌 CPU쪽에 탑재한다. 또한 비슷한 시기 Tritech와 3DLabs가 Geometry Processor Unit을 의미하는 GPU를 제품으로 내놓지만 묻혀지고 말았다. 이때까지 3D 계산 처리는 아케이드 게임 머신이나 가정용 게임기에서는 일반적이었으나 PC에서는 CPU가 처리하고 있었다. 부동소수점 연산 능력이 강조되었던 것도 그때문이다. 그러나 1999년 [[NVIDIA]]는 '하드웨어 T&L[* Transform, clipping, and lighting]'이라고 일컫는 3D 지오메트리 연산과 조명 연산을 그래픽 프로세서에서 하드웨어적으로 처리하는 '세계 첫번째 GPU'인 [[GeForce 256]]을 발표하면서 GPU라는 말을 통일, 대중화시킨다. 이는 컨슈머 레벨에서 단일 그래픽 칩에 통합된 조건이라면 틀리지는 않다. 라이벌 회사였던 [[ATI]]는 당시 VPU(Video Processing Unit)라고 말했었는데 그래서 VPU 리커버리라는 오류 메시지가 있다. 다만 언제부터인가 ATi도 그냥 GPU로 통칭하기 시작했다. GPU의 성능을 짐작하려면 요즘 나오는 대작 게임들의 그래픽 수준을 보자. 머리카락 하나까지 재현하는 [[모델링]] 정밀도에 각종 물리엔진, 파티클 엔진, 광원 효과 등 온갖 것들을 초당 60프레임, 못 해도 초당 30프레임 이상으로 구현해 내야 한다. 그래픽 카드가 1920×1080 해상도에 60FPS를 실행하려면 이론적으로 1초에 1920×1080×60(= 124,416,000)개의 [[픽셀]]을 그려내는 성능, 1프레임으로 따지면 1920×1080(= 2,073,600)개의 픽셀들을 늦어도 0.016초 안에 다 그려내야 한다. 단순히 픽셀 채우고 출력하는 정도는 현대의 로우엔드 그래픽카드도, 심지어 그래픽 감속기라고 욕먹는 [[인텔 내장그래픽]]만으로도 충분히 소화할 수 있는 성능이다. 4배([[UHD|3840×2160]]) 해상도라도 디스플레이 출력 단자가 4K UHD 출력을 미지원하지 않는 한, 단순 픽셀 채우기 및 출력은 소화할 수 있는 성능이다. 허나, 단순 픽셀 채우기 속도(필레이트)는 GPU의 성능을 결정해주는 지표들 중 하나에 불과하며, 3D 그래픽을 표현하기 위한 복잡한 절차인 '그래픽 [[파이프라인]]'을 거쳐야 하는데, 이것들을 모두 수행하려면 단순 픽셀 채우기랑은 비교가 안 될 정도의 요구 사양으로 치솟는다. 그렇다 보니 GPU의 기능이 복합적일 수밖에 없고, CPU의 명령을 받아서 발행하는 커맨드 프로세서, 명령들을 각각의 연산 코어들에게 적절하게 스케줄링 및 분배해줄 디스패치, 지오메트리 처리를 위한 버텍스 인출, 버텍스 셰이딩 연산, 카메라 변환, 투영, 조명, 클리핑, 뷰포트 변환, 스트림 출력, 픽셀 단위로 바꿔줄 래스터라이제이션, 텍셀 단위로 매핑/어드레싱하고 필터링해줄 텍스처링, 픽셀 단위로 색을 연산해줄 픽셀 셰이딩 연산, 블렌딩이나 [[안티에일리어싱]] 및 기타 후처리에 관여해줄 렌더링까지 모두 GPU 안에 들어 있다. 2020년 12월 기준 NVIDIA, AMD 양사 최신 GPU 마이크로아키텍처의 비교는 [[https://www.techspot.com/article/2151-nvidia-ampere-vs-amd-rdna2/|Nvidia Ampere vs. AMD RDNA 2: Battle of the Architectures]]에서 확인할 수 있다. 현재 [[컴퓨터]]의 부품 중 FP32 (단정밀도의 부동소수점 실수) 연산과 벡터 연산에서 CPU를 초월하는(10배 이상) 성능을 가지고 있다. 이러한 이유로 각종 업체들은 2000년대 후반부터 GPU를 3D 그래픽 이외의 컴퓨팅 분야에 사용하기 시작했는데 이것이 'GPU의 범용 연산'의 약자인 [[GPGPU]]이다. 물론, FP32 연산 성능만으로 3D 그래픽 처리에 필요한 모든 기능을 다 수행할 수 있는 것은 아니고, 3D 그래픽 처리의 경우에는 셰이딩이 주로 활용되며, 나머지 필수 기능들은 전부 전용 하드웨어들이 처리하는 방식을 취하고 있다. 그리고, 3D 그래픽 처리에 부가적인 기능들 중에 FP32 연산으로 수행 가능하지만 성능이 부족하거나 효율성이 떨어지는 기능일 경우에도 별도의 전용 회로로 분리되어 가속하는 방식을 취하고 있는데, 대표적으로 동영상 디코딩, [[동영상 인코딩]], [[테셀레이션]], 비동기 연산, [[딥 러닝]], [[레이 트레이싱]]이 있다. FP32 연산 방식으로 통합할 수 있으면 통합하고, 어렵거나 불가능하면 별도의 전용 하드웨어로 분리하는 셈이다. 디스플레이 출력의 경우는 FP32 연산으로 대체 불가능한 기능이라 초창기부터 별도의 전용 하드웨어로 처리해왔으며, 물리 연산의 경우는 CPU의 부담을 줄이기 위해 셰이딩에 써먹었던 FP32 연산을 활용하거나, CPU 성능 자체가 충분히 높아져서 반대로 그래픽 카드의 부담을 줄이기 위해 CPU가 전담하기도 한다. === CPU vs GPU === [youtube(1BAZf3PsjWA)] 전형적인 CPU의 순차 연산과 GPU의 병렬처리를 극적으로 보여준다. === 관련 기업 === * [[3dfx Interactive]]: 2000년에 NVIDIA에 흡수되고 2002년에 해체. * [[NVIDIA]] * [[ATI|AMD]] * [[ARM Mali GPU|ARM Holdings]] * [[퀄컴 Adreno GPU|퀄컴]] * [[Apple/AP|Apple]]: 2017년 A11 Bionic부터 자체 설계 GPU를 쓰기 시작함. * [[인텔 HD 그래픽스|인텔]] * [[PowerVR|이매지네이션 테크놀로지스(Imagination Technologies)]]: 애플이 자사 모바일 기기에서 주로 사용하던 GPU. 다만 애플이 17년도부터 자체 설계로 노선을 변경한 후 주가가 반토막나기도 했다.[* [[파일:IMG_0858.png|width=500]]] * [[S3 Graphics]] * Tseng Labs * SiS * [[VIA]] == Ground Power Unit(지상 동력 장치) == [[파일:external/www.guinault.com/Vign4_982_Compact-28Vdc-GPU.jpg|width=600]] [[노란색]] [[카트]]가 바로 GPU.[* 경비행기의 경우 [[수레]] 형태로 만들어놓기도 한다.] [[APU]]의 독립 버전. 차량 위에 설치되어 필요시 이동하여 전원 공급을 할 수 있다. 물론 비행기 후미에 있는 APU를 사용할 수도 있지만 배기 가스 및 소음 등의 문제로 GPU가 있는 공항에서는 대개 GPU를 사용한다. [[파일:external/www.airport-technology.com/1-glass-jetway.jpg|width=600]] 대형 [[공항]]의 경우, 사진처럼 아예 [[탑승교|보딩브릿지]] 하단에 GPU를 장비해 놓고 사용한다. (오른쪽 보딩브릿지 하단에 달린 상자 모양 커다란 물건이 바로 GPU) 또한 이런 경우 기내 에어컨 가동을 위하여 에어컨도 같이 연결해 줄 수 있다.(사진의 노란 파이프) 대개 이런 장비들이 있는 큰 공항들은 도착 직후나 출발 전에만 APU를 30분 이내로만 가동하도록 하는 규정이 있는데, 그 이상으로 전원이 필요한 경우 탑승교에 붙은 GPU로부터 전원을 공급받는다. === 유사 장비 === [[파일:external/www.omegaaviation.com/air_conditioner_40_ton_2.jpg]] 항공기에 장착된 여러 모듈(LRU)들 중 냉각이 필요한 모듈의 냉각을 위한 외장 에어컨도 존재하며, [[파일:external/www.aerospecialties.com/AERO-Specialties-Aircraft-Air-Start-Units.jpg|width=400]] 엔진 시동을 위한 압축공기 공급장치도 존재한다. 이런 건 Air Start Unit, 즉, ASU라고 부른다.