1. Graphics Processing Unit
| [[컴퓨터공학|'''컴퓨터 과학 및 공학 {{{#!wiki style="font-family: Times New Roman, serif; display: inline;"]] | ||
| {{{#!wiki style="margin: 0 -10px -5px; min-height:calc(1lh + 5px)" {{{#!folding [ 펼치기 · 접기 ] {{{#!wiki style="margin: -5px -1px -11px; word-break: keep-all" | <colbgcolor=#1282d7,#1282d7><colcolor=#fff,#fff> 기반 학문 | 수학(이산수학 · 수리논리학 · 선형대수학 · 대수학(환론 · 범주론) · 정수론 · 해석학 · 미적분학 · 미분방정식) · 이론 컴퓨터 과학(튜링 머신 · 정보이론 · 재귀 이론) · 암호학 · 전자공학 · 언어학(음운론 · 형태론 · 통사론 · 의미론 · 화용론) · 인지과학 |
| 하드웨어 | SoC · CPU · GPU(그래픽 카드 · GPGPU) · ROM · RAM · SSD · HDD · 참조: 틀:컴퓨터 부품 | |
| 시스템 | 컴퓨터 구조론 · 폰노이만 구조 · 마이크로아키텍처 · 논리 회로(논리 연산 · 카르노 맵 · 가산기 · 보수기 · 플립플롭) · FPGA · 하드웨어 가속 · 바이오스 · UEFI · ACPI · LinuxBoot · 운영체제(인터럽트 · 멀티태스킹 · 프로세스 스케줄링 · 뮤텍스 · 세마포어 · 데드락 · 식사하는 철학자 문제) · 네트워크(네트워크 포트) · 대역폭 · 와이파이 · gRPC · GPS · 임베디드 시스템 · 사물인터넷 · 슈퍼컴퓨터 · 양자 컴퓨터 | |
| 소프트웨어 | 시간 복잡도(최적화) · 이진 탐색 · 난수생성 · 컴퓨터 언어 · 기계어 · 어셈블리어 · 프로그래밍 언어(타입 이론 · 어휘 분석 · 파싱 · 컴파일러(어셈블러 · JIT) · 인터프리터 · 링커 · 난해한 프로그래밍 언어) · 마크업 언어 · 프로그래밍 패러다임(절차적 프로그래밍 · 객체 지향 프로그래밍 · 함수형 프로그래밍) · 데이터베이스(DBMS · NoSQL) · 메타데이터 · 인코딩(유니코드 · MBCS) · 소프트웨어 개발 방법론(애자일 · 워터폴) · 디자인 패턴 · 행위자 모델 · 놀람 최소화 원칙 · 버전(버전 관리 시스템) · 프레임워크 · 라이브러리 · 모듈 · API · ABI | |
| 응용 | 인공지능 · 기계학습 · 인공신경망 · 딥러닝 · 자연어 처리(기계 번역 · 음성인식) · 컴퓨터 비전 · OCR · 빅데이터 · 컴퓨터 그래픽스 · OpenGL · EXIF · HCI · UI · UX · 컴퓨터 보안 · 해킹 · 리버스 엔지니어링 · 해시(SHA · salt · 브루트 포스 · 레인보우 테이블 · 암호화폐) · 디피-헬만 키 교환 · RSA 암호화 · ROT13 · 일회용 비밀번호 |
컴퓨터 분야에서의 GPU는 말 그대로 컴퓨터 그래픽을 처리하는 장치로, 특히 확장 카드 형태인 그래픽 카드를 구성하는 가장 중요한 핵심 요소이다.[1]
과거에는 그래픽 가속기, 그래픽 칩을 비롯해서 3D카드, 3D가속기, DP(Display Processor), 디스플레이 가속기, VP(Video Processor), 비디오 가속기, 그래픽 프로세서 등의 여러 명칭으로 불렸고, 3D가 아닌 그래픽 카드 시절에는 단순히 CPU가 기록한 비디오 램의 데이터를 베이스로 화면을 출력하거나, 렌더링까지 관여해주는 정도였고, 3D 그래픽 카드 초창기에는 텍스처링 및 렌더링까지만 해주거나, 삼각형 셋업 및 클리핑까지만 해주는 경우가 전부였다. 때문에 GPU라기보다는 '그래픽 칩' 정도로 불리는 것이 보통이었다.
현대의 GPU처럼 정점 연산 기능이 하드웨어로 내장된 것은 아니지만, 대신 CPU에 코프로세서인 GTE(Geometry Transformation Engine)로 별도 내장되어 있다. 거치형 게임기인 PlayStation의 경우는 벡터연산유닛 VPU를 GPU가 아닌 CPU 쪽에 탑재된 구조이며,[2] 비슷한 시기에 Tritech와 3DLabs가 Geometry Processor Unit을 의미하는 GPU를 제품으로 내놓지만 묻혀지고 말았다. 이때까지 3D 계산 처리는 아케이드 게임 머신이나 가정용 게임기에서는 일반적이었으나 PC에서는 CPU가 처리하고 있었다. 부동소수점 연산 능력이 강조되었던 것도 그 때문이다.
1999년 하반기에 NVIDIA가 '하드웨어 T&L' (Transform & Lighting)이라고 일컫는 3D 지오메트리 연산과 조명 연산을 그래픽 프로세서에서 하드웨어적으로 처리하는 '세계 첫 번째 GPU'인 GeForce 256을 발표하면서 GPU라는 말을 통일, 대중화시킨다. 이는 소비자 수준에서 단일 그래픽 칩에 통합된 조건이라면 틀린 말은 아니다. 라이벌 회사였던 ATI는 당시 VPU(Video Processing Unit)라고 말했었는데 그래서 VPU 리커버리라는 오류 메시지가 있다. 다만 언제부터인가 ATI도 그냥 GPU로 통칭하기 시작했다. 물론, 명칭만 달랐을 뿐 기능상 ATI도 2000년에 Radeon을 통해 '하드웨어 TCL' 기술을 발표하면서, GPU라는 명칭과 함께 그래픽 카드의 그래픽 프로세서는 삼각형 셋업, 클리핑, 텍스처링, 렌더링은 물론이고 변환(카메라 변환, 뷰포트 변환), 조명 처리까지 기본이 되는 시대가 되었다. 2000년 11월에 Microsoft가 그래픽 셰이딩 프로그래밍을 지원하는 DirectX 8.0을 발표하면서, 2001년에 발표된 GeForce 3와 Radeon 8500을 통해 그래픽 셰이딩 프로그래밍도 가능해졌다.
GPU의 성능을 짐작하려면 요즘 나오는 대작 게임들의 그래픽 수준을 보자. 머리카락 하나까지 재현하는 모델링 정밀도에 각종 물리엔진, 파티클 엔진, 광원 효과 등 온갖 것들을 초당 144 프레임, 못 해도 초당 60프레임, 움직임이 빠르지 않는 정적인 게임에서는 못 해도 초당 30프레임 이상으로 구현해 내야 한다. 그래픽 카드가 1920×1080 해상도에 60FPS를 실행하려면 이론적으로 1초에 1920×1080×60(= 124,416,000)개의 픽셀을 그려내는 성능, 1프레임으로 따지면 1920×1080(= 2,073,600)개의 픽셀들을 늦어도 0.016초 안에 다 그려내야 한다. 단순히 픽셀 채우고 출력하는 정도는 현대의 로우엔드 그래픽카드도, 심지어 그래픽 감속기라고 욕먹는 인텔 내장그래픽만으로도 충분히 소화할 수 있는 성능이다. 4배(3840×2160) 해상도라도 디스플레이 출력 단자가 4K UHD 출력을 미지원하지 않는 한, 단순 픽셀 채우기 및 출력은 소화할 수 있는 성능이다.
허나, 단순 픽셀 채우기 속도(필레이트)는 GPU의 성능을 결정해주는 지표들 중 하나에 불과하며, 3D 그래픽을 표현하기 위한 복잡한 절차인 '그래픽 파이프라인'을 거쳐야 하는데, 이것들을 모두 수행하려면 단순 픽셀 채우기랑은 비교가 안 될 정도의 요구 사양으로 치솟는다. 그렇다 보니 GPU의 기능이 복합적일 수밖에 없고, CPU의 명령을 받아서 발행하는 커맨드 프로세서, 명령들을 각각의 연산 코어들에게 적절하게 스케줄링 및 분배해 줄 디스패치, 지오메트리 처리를 위한 버텍스 인출, 버텍스 셰이딩 연산, 카메라 변환, 투영, 조명, 클리핑, 뷰포트 변환, 스트림 출력, 픽셀 단위로 바꿔줄 래스터라이제이션, 텍셀 단위로 매핑/어드레싱하고 필터링해 줄 텍스처링, 픽셀 단위로 색을 연산해줄 픽셀 셰이딩 연산, 블렌딩이나 안티에일리어싱 및 기타 후처리에 관여해 줄 렌더링까지 모두 GPU 안에 들어 있다.
2020년 12월 기준 NVIDIA, AMD 양사 최신 GPU 마이크로아키텍처의 비교는 Nvidia Ampere vs. AMD RDNA 2: Battle of the Architectures에서 확인할 수 있다.
현재 컴퓨터의 부품 중 FP32 (단정밀도의 부동소수점 실수) 연산과 벡터 연산에서 CPU를 초월하는(10배 이상) 성능을 가지고 있다. 이러한 이유로 각종 업체들은 2006년 GeForce 8, 2007년 Radeon HD 2000 시리즈를 통해 GPU를 3D 그래픽 이외의 컴퓨팅 분야에 사용하기 시작했는데 이것이 'GPU의 범용 연산'의 약자인 GPGPU이다. GPGPU 때문에 GPU의 개념 자체가 크게 바뀔 정도였으며, 특히 FP32 연산 때문에 2013~2014년, 2017~2018년, 2020~2022년 기간에 채굴 붐이 있었다.[3]
물론, FP32 연산 성능만으로 3D 그래픽 처리에 필요한 모든 기능을 다 수행할 수 있는 것은 아니고, 3D 그래픽 처리의 경우에는 셰이딩이 주로 활용되며, 나머지 필수 기능들은 전부 전용 하드웨어들이 처리하는 방식을 취하고 있다. 그리고, 3D 그래픽 처리에 부가적인 기능들 중에 FP32 연산으로 수행 가능하지만 성능이 부족하거나 효율성이 떨어지는 기능일 경우에도 별도의 전용 회로로 분리되어 가속하는 방식을 취하고 있는데, 대표적으로 1995년 일부 그래픽 카드부터 지원되었던 동영상 디코딩,[4] 2009년 Radeon HD 5000 시리즈, 2010년 GeForce 400 시리즈부터 대중화된 테셀레이션, 2011년 HD Graphics 3000, HD Graphics 2000, 2012년 Radeon HD 7000 시리즈, GeForce 600 시리즈부터 도입된 동영상 인코딩, 2012년 Radeon HD 7000 시리즈, 2016년 GeForce 10 시리즈부터 도입된 비동기 연산, 2017년 TITAN V부터 도입된 텐서 연산,[5] 2018년 GeForce RTX 20 시리즈부터 도입된 레이 트레이싱이 있다. FP32 연산 방식으로 통합할 수 있으면 통합하고, 어렵거나 불가능하면 별도의 전용 하드웨어로 분리하는 셈이다.[6] 디스플레이 출력의 경우는 FP32 연산으로 대체 불가능한 기능이라 초창기부터 별도의 전용 하드웨어로 처리해왔으며, 물리 연산의 경우는 CPU의 부담을 줄이기 위해 셰이딩에 써먹었던 FP32 연산을 활용하거나, CPU 성능 자체가 충분히 높아져서 반대로 그래픽 카드의 부담을 줄이기 위해 CPU가 전담(소프트웨어 방식으로 처리)하기도 한다. (대량 병렬처리)
1.1. 관련 기업
- 3dfx Interactive: 2000년에 NVIDIA에 흡수되고 2002년에 해체됨.
- NVIDIA
- ATI
- AMD/GPU
- Arm Mali GPU
- 퀄컴 Adreno GPU
- Apple Silicon: 2017년 A11 Bionic부터 자체 설계 GPU를 쓰기 시작했다.
- 인텔/GPU
- 이매지네이션 테크놀로지스(Imagination Technologies) PowerVR: 애플이 자사 모바일 기기에서 주로 사용하던 GPU. 다만 애플이 2017년도부터 자체 설계로 노선을 변경한 후 주가가 반토막나기도 했다.[7]
- S3 Graphics
- Tseng Labs
- SiS
- VIA
2. Ground Power Unit(지상 동력 장치)
노란색 카트가 GPU다.[8]
항공기 보조 동력 장치의 독립형이다. 차량 위에 설치되어 필요시 이동하여 전원 공급을 할 수 있다. 물론 비행기 후미에 있는 APU를 사용할 수도 있지만 배기 가스 및 소음 등의 문제로 GPU가 있는 공항에서는 대개 GPU를 사용한다.
그러나 이들 동력차도 터보샤프트인 APU보단 나을지언정 어찌되었든 디젤엔진을 돌리기 때문에 효율성이 떨어질뿐더러 또 다른 공회전이 일어나는 셈이 된다.
그래서 대형 공항의 경우 주기장이나 탑승교에 이 역할을 대신해주는 항공기지상전원공급장치(Air Craft-Ground Power Supply Unit)가 설치되는 추세에 있다. 이것도 GPU의 일종으로, 사용 목적과 역할은 기존 GPU와 같지만 전원을 생산하는 방식이 기존의 보조 엔진을 이용한 발전 방식과는 다르게 전동발전기[9] 또는 컨버터-인버터 모듈[10]을 사용한다.[11] 사진처럼 오른쪽 보딩브릿지 하단에 달린 커다란 상자 모양의 물건이 GPU다. 또한 여기에는 ACU가 통합되어있어 기내 에어컨 가동을 위한 외장형 공조기도 같이 연결해 줄 수 있다. 노란 파이프가 냉각된 공기를 공급하는 호스다. 대개 이런 장비들이 있는 큰 공항들은 도착 직후 이런 고정형 GPU 연결 전 전원 공급이나 출발 전 엔진 시동용 압축공기를 마련하는 용도로 APU를 30분 이내로만 가동하도록 하는 규정이 있는데 그 이상으로 전원이 필요한 경우 탑승교에 붙은 장치로부터 전원을 공급받는다.
일부 DC 타입 GPU 도 있는데, 항공기 표준 DC전압인 28.5V 출력이 가능하며 소용량의 특성을 가진다.400Hz 가 들어가지 않으면 어차피 별로 쓸 수 있는 것도 없어서[12] 용량이 높지 않아도 된다. 단, 록히드마틴의 기체들은 270V DC 를 사용하므로 이에 맞는 고출력 DC GPU가 있어야 한다.
배터리 기술의 발달로 eGPU 라는 제품도 나오는데, 엔진을 돌리지 않고 배터리 + 인버터의 조합만으로 대부분의 항공기를 커버할 수 있는 90kVA/180kVA 출력을 낼 수 있어, 초기 비용은 높을 수 있으나 장기 운용비용 면에서 엔진식 GPU 대비 절반 이하의 운용비용을 만들어 낼 수 있게 된다.
GPU의 단자는 보통 3가지다. 3P / 4P / 6P 가 그것인데, 보통 3P 커넥터는 DC 28V, 4P 와 6P 는 AC 출력용이며, 6P 는 여기서 또 1/0 형과 2/0 형으로 나누어진다. 각 규격 간 호환성은 전혀 없으나 다행히도 대부분의 민항기들은 6P 커넥터를 사용하기는 한다.
270V DC 역시 모양이 다른데, 이는 F-35 등 록히드마틴의 군용기들이 주로 사용하는 고전압 DC GPU에 쓰인다.
2.1. 유사 장비
ACU(Air Conditioning Unit)
항공기에는 여러 부품과 장치들이 있으며 이중에서는 별도의 냉각이 필요한 장치들도 있다.
물론 항공기 스스로 냉각할 수 있도록 설계되어 있으나, 지상에서 항공기의 제트 엔진에 시동이 걸려 있지 않을 때에는 이러한 모듈을 냉각하는 것이 불가능하기에, 이를 냉각하기 위해 사용하는 외장 에어컨 유닛이다.
ASU(Air Start Unit)
제트 엔진의 시동을 걸기 위해 필요한 압축공기를 공급하는 장치이다.
압축 공기를 제공하는 것은 일반적으로 APU가 담당하나 이를 사용할 수 없을 때 시동을 걸기 위한 보조 장치로서 사용한다.
[1] 그 다음으로 중요한 요소는 당연히 GPU 외부에 탑재된 DRAM 타입의 그래픽 카드 메모리이다. 규격 이름이 보통명사화된 비디오 메모리의 약자인 'VRAM'으로 가장 많이 통용되며, '그래픽 DRAM'도 많이 통용되는 편이다. 일반적이지 않지만 프로그래머들이 주로 취급하는 프로그래밍 분야에서는 '글로벌 메모리' 또는 '전역 메모리'로 많이 통용된다. 현 세대에는 대부분 GDDR 계열의 SGRAM 규격이 채택되기 때문에 SGRAM이 그나마 정확한 표현에 가깝지만 거의 거론되지 않으며, 오히려 GDDR 계열같은 세부 명칭이 VRAM 다음으로 통용될 정도.[2] 이러한 구조는 후속기인 PlayStation 2에도 채택되었다.[3] 특히, 2차 채굴 붐과 3차 채굴 붐이 NVIDIA의 GeForce 그래픽 카드에도 유용해지면서 그래픽 카드 대란이 1차 채굴 붐보다 더 심했다.[4] 3D 그래픽 카드가 아닌 2D 그래픽 카드 범위까지 따지면 1994년부터 도입되었다. 그리고 2000년대 중반까지는 CPU 의존도가 여전해서 제대로된 디코딩이라고 보기 어려웠기 때문에, CPU 의존도가 거의 없어진 진정한 동영상 디코딩은 2007년 GeForce 8600 GTS, 8600 GT, 8500 GT, 8400 GS, Radeon HD 2000 시리즈부터 해당된다.[5] 2022년 12월부터 OpenAI의 ChatGPT를 필두로 발생한 생성형 인공지능 붐으로 인해, 과거 주력 분야였던 게이밍보다 훨씬 더 많이 주목받고 있다.[6] 단, 레이 트레이싱의 경우는 그래픽 처리에 GPU 단독으로 처리할 수 없고 반드시 CPU의 명령이 필요하듯이, 레이 트레이싱 전용 하드웨어 단독으로 처리할 수 없고 기존의 FP32 연산 과정이 필요하다.[7]
[8] 경비행기의 경우 수레 형태로 만들어놓기도 한다.[9] 380v 60Hz 3phase 전원을 115v 400Hz 3phase 로 바꿀 때 동기발전기와 동기전동기를 직결시켜 회전구동하여 전기를 변환하는 장치[10] 380v 60Hz 3phase 전원을 받아 일단 DC로 바꾼 뒤, VVVF인버터를 사용해 115v 400Hz 3phase 로 변환[11] 전자의 것이 단가가 월등히 저렴하기 때문에 고정식으로 설치한 경우 보통 전자의 것이 대부분이다.[12] AC전원이 안들어가면 기본적인 식스팩도 동작하지 않는 경우가 왕왕 존재했다. 안에 들어간 모터를 빠르게 돌려야 하는 일이 많았기 때문이다.