"그래픽처리장치"의 두 판 사이의 차이
(→GPU 단점) |
|||
38번째 줄: | 38번째 줄: | ||
* 복잡한 식을 입력하면 도리어 CPU 연산 속도보다 느려 진다. | * 복잡한 식을 입력하면 도리어 CPU 연산 속도보다 느려 진다. | ||
* GPU는 자신이 할 수 있는 연산에 대해서만 빠르고 그 외의 복잡한 연산이 들어오면 오히려 느려진다.<ref name="크로"></ref> | * GPU는 자신이 할 수 있는 연산에 대해서만 빠르고 그 외의 복잡한 연산이 들어오면 오히려 느려진다.<ref name="크로"></ref> | ||
− | * 초기에 알고리즘을 하드웨어에 병렬로 부여해 주어야 한다.<ref> | + | * 초기에 알고리즘을 하드웨어에 병렬로 부여해 주어야 한다.<ref>〈[https://buttercoconut.xyz/157/ 간단하게 보는 CPU와 GPU의 연산 차이]〉,《코코넛》, 2018.03.29 </ref> |
===CPU와 GPU 차이점=== | ===CPU와 GPU 차이점=== |
2019년 7월 23일 (화) 17:47 판
그래픽처리장치 또는 GPU(Graphics Processing Unit, 지피유)란 컴퓨터의 그래픽 부분을 처리하는 장치를 말한다. 모니터에 영상신호를 출력하기 위해서는 많은 연산이 필요한데 이 연산을 빠르게 처리하는 부품이 GPU이며, 연산한 결과값들을 모니터에 출력한다. 그래픽과 관련된 연산을 할 때, 중앙처리장치(CPU)보다 처리 속도가 빠르다. 컴퓨터의 그래픽 카드 또는 비디오 카드에 부착하거나 스마트폰, 게임기 등에 설치한다. GPU는 그래픽과 관련된 연산을 할 때에 CPU의 부담을 크게 줄일 수 있다. macOS는 10.6부터 최초로 운영 체제 수준에서 GPU를 사용하기 시작했다.[1]
목차
작동방식
GPU가 연산하는 방식에 대해서 알아보자. GPU는 작고 단순한 연산 코어를 CPU보다 훨씬 많이 가지고 있다. 예를 들어 CPU가 10개의 코어를 가지고 있다면, 최신 GPU는 1000개 이상의 코어를 가지고 있다. GPU의 코어 각각의 능력은 CPU의 코어만큼의 능력을 갖추고 있는 것은 아니지만, 단순 연산을 GPU가 담당한다면 그 능력은 극대화된다. GPU 효율의 핵심은 '병렬연산'이다. GPU의 무수히 많은 코어를 한 번에 많은 일을 시켜야 한다는 이야기이다. CPU는 연산을 처음부터 마지막까지 순차적으로 진행하지만, GPU는 연산을 일정한 묶음으로 바로바로 처리할 수 있다.
등장배경
- CPU나 램, HDD 등은 영상신호를 모니터에 출력할 수 있는 기능이 없기 때문에 개별적인 장치가 필요하다. 그렇기 때문에 그래픽카드가 만들어진 것이다.
- 우리가 현재 쓰고 있는 그래픽카드의 뿌리라고 볼 수 있는 VGA(Video Graphics Array)가 1987년에 개발되었다.
역사
- 1970년 : 특화된 그래픽 칩을 사용했다. 초기 비디오 게임의 하드웨어를 이해하는 실마리는 프레임 버퍼에 사용되는 램이 매우 비쌌기에 비디오 칩은 화면이 모니터에 주사되어 출력되고 있을 때에 데이터를 모아 합성했고, 후지쯔의 MB14241 영상 표시 제어기는 아케이드 게임에서 스프라이트 그래픽의 출력 속도를 가속화하기 위해 사용되었다.
- 1981년 : MDA, CGA가 있다.
- 1982년 : 최대 720x348 해상도의 흑백 그림을 출력할 수 있는 허큘러스(Hercules)가 개발되었다.
- 1984년 : 640x350 해상도의 16색을 표현할 수 있는 EGA(Enhanced Graphics Adapter)가 개발되었다.
- 1987년 : 우리가 현재 쓰고 있는 그래픽카드의 뿌리라고 볼 수 있는 VGA(Video Graphics Array)가 개발되었다.이는 640x480 해상도에서 16색, 320x200 해상도에서 256색을 출력할 수 있는 성능을 가 지고 있었다. VGA를 그래픽카드라고 부르는 것은 정확한 표현은 아니지만 이미 널리 일반화되었으며 문제가 되지 않는다.
- 1990년 : 2D 그래픽 가속기능은 계속 발전하기 시작하였고, 제작 성능이 좋아짐에 따라 추가적인 API들(마이크로소프트 WinG, 윈도 3.X를 위한 그래픽 라이브러리, 윈도 98을 지원하는 DirectDraw
등)도 많이 개발되기 시작하였다. 초중반에는 CPU가 실시간 3D그래픽을 구현해 냈지만 게임의 수요가 높아짐에 따라 그래픽 카드의 3D처리가 요구되었고, 따라서 3D API프로그램 들이 등장하기 시작했는데 OpenGL, DirectX 등이 그것이라고 할 수 있겠다. 이런 API 프로그램들이 등장하면서 자연스레 전문가용 3D 그래픽카드가 등장하였지만, 주목할만한 일반 사용자 용 3D 그래픽 카드는 엔비디아 지포스 256(NV10 이라고도 알려짐) 이라고 한다.
- 1999년 : 엔비디아(NVIDIA)사에서‘지포스(GeForce)’라는 이름의 새로운 그래픽 컨트롤러(Graphics Controller: 그래픽카드용 칩)을 내놓으며 처음 제창한 것이다. 지포스는 CPU의 도움 없이 자체적으로 폴리곤(Polygon: 3D 그래픽을 구성하는 도형)의 변형(Transform) 및 광원(Lighting)효과를 구사하는 기능, 이른바 ‘하드웨어(Hardware) T&L’을 갖추고 있었다. [2]
- 2000년 : GPGPU등 여러가지 기능이 추가되어 CPU의 기능도 일부 담당할 수 있다.[1]
제조사
대표적으로 엔비디아사의 지포스(Geforce) 시리즈와 AMD사의 라데온(Radeon) 시리즈가 있다. 세계 최초의 그래픽처리장치(GPU)는 1999년 엔비디아(nVIDIA)가 제작한 지포스(GeForce) 256 제품이다. 인텔(INTEL) 사는 내장형 그래픽(인텔 HD 그래픽스)에 집중해왔지만 2020년도에는 외장형 그래픽카드 분야에 진출할 예정이라고 밝혔다.
특징
GPU는 외장형의 개별적인 부품으로 되어있는 형태와 CPU에 내장되어있는 부품으로 나뉘고, 여러 명령어를 동시에 처리하는 병렬 처리 방식을 이다. 캐시 메모리 비중이 크지 않고 연산을 할 수 있는 ALU 개수가 많고, 1개의 코어에는 수백, 수천개의 ALU가 장착돼 있다. 그리고 동일하게 개별 스레드가 서로 다른 명령을 실행해도 병렬적이기에 성능에 부정적인 영향을 미치지 않는다.[3]
- 외장형 GPU : 고화질 동영상, 고사양 3D 게임에 알맞고, 빠르지만 전력소모량이 많다는 특징이 있다.노트북은 충분한 양의 RAM과 충분히 강력한 중앙 처리 장치(CPU)가 있을 수 있으나 강력한 그래픽스 처리 장치가 없고 에너지에 더 효율적이면서 성능이 더 낮은 온보드 그래픽스 칩을 장착한 경우가 있고, 온보드 그래픽스는 최신 게임을 플레이하는데, 또 영상 편집처럼 그래픽에 크게 의존하는 작업에 충분히 강력하지 않은 경우가 있다. 그래서 노트북의 일부 외부 버스에 GPU를 장착하는 것이 선호될 수 있다.[1]
- 내장형 GPU : 인터넷, 동영상, 저사양 3D 게임에 알맞고, 느리지만 적은 전력소모량을 가지고 있다. 칩셋의 일부로서 메인보드에 내장할 수 있으며, 아니면 AMD, APU, 인텔 HD 그래픽스처럼 CPU와 동일한 다이에 장착될 수 있고, 특정 메인보드 에서 AMD의 IGP는 전용 사이드포트 메모리를 사용할 수 있다.[1]
- 하이브리드 그래픽스 처리 : 로우엔드 데스크톱 및 노트북 시장의 내장 그래픽과 경쟁한다. 그리고 가장 일반화된 구현체는 ATI의 하이퍼메모리와 엔비디아의 터보캐시이다.[1]
- GPGPU : 전통적으로 중앙 처리 장치(CPU)가 맡았던 응용 프로그램들의 계산에 사용하는 기술이다.
GPU 장점
- 그래픽과 관련된 연산을 할 때에 CPU의 부담을 크게 줄일 수 있고, 수많은 그래픽 기본 기하 명령을 담고 있어 호스트 CPU를 통해 화면에 표시하는 것보다 훨씬 더 빠르게 그리기를 처리할 수 있다.
- 최신 그래픽 처리 장치들은 픽셀 셰이더, 버텍스 셰이더, 수퍼샘플링, 색 공간 변환 등의 복잡하고 다양한 명령을 지원하고, 디지털 영상의 재생을 가속하는 기능도 포함하고 있다.
- 비트맵 변환기 – 프래그먼트를 만들고 꼭지점 당 상수 (텍스처 좌표와 색상-를 내삽한다)
GPU 단점
- 복잡한 식을 입력하면 도리어 CPU 연산 속도보다 느려 진다.
- GPU는 자신이 할 수 있는 연산에 대해서만 빠르고 그 외의 복잡한 연산이 들어오면 오히려 느려진다.[3]
- 초기에 알고리즘을 하드웨어에 병렬로 부여해 주어야 한다.[4]
CPU와 GPU 차이점
CPU와 달리 GPU는 코어가 아주 많기 때문에 간단한 계산식을 병렬적으로 빠르게 처리가 가능하다.예를들면 1000개의 덧셈식을 한번에 병렬로 처리가 가능하다.그래서 GPU가 비트코인 채굴에서 CPU보다 더 강력하다. 처리해야 할 명령어와 데이터의 성격에 따라 때로는 CPU, 때로는 GPU가 빠를 수가 있다. GPU는 아주 많은 수의 프로세싱 코어와 여러개의 ROP가 동시에 동작하므로 CPU보다 훨씬 높은 메모리 대역폭을 필요로 한다.[3]
하이브리드 GPU 기술
하이브리드 GPU 기술이란 간단히 말해서 CPU와 GPU의 이종 디바이스 간에 메모리 통신을 통해 메모리를 교환하고 병렬 계산에 특화된 GPU에서 계산에 관련된 작업을 처리를 하고 결과를 CPU로 반환하는 기술이다. 따라서 이 기술의 핵심은 이종 디바이스 간에 데이터 통신과 계산 처리 기술이다.
- 입력과 출력에 사용할 데이터를 PC 메모리에 할당한다.
- 입력과 출력에 사용할 데이터를 그래픽 메모리에 할당한다.
- 처리하고자 하는 값을 PC 메모리에 입력한다.
- PC 메모리에 있는 입력 데이터를 그래픽 메모리로 복사한다.
- 데이터를 분할하여 GPU로 가져온다.
- 수천 개 이상의 스레드를 생성하여 커널 함수로 병렬 처리를 한다.
- 처리된 결과를 병합한다.
- PC 메모리에 결과를 전송한다.
- 그래픽 메모리를 해제한다.
- PC 메모리를 해제한다. [5]
종류
- 그래픽 칩셋 : 핵심 장치로 영상 신호와 수평및 수직 동기 신호를 발생 하여 모니터로 출력한다.
- 비디오 메모리 : CPU가 처리한 그래픽 정보를 CRT가 처리 하기 위한 임시 저장공간으로 프레임 버퍼 라고 한다.
- D-sub : 모니터와 그래픽카드를 아날로그로 연결하기 위한 인터페이스 이다.
- DVI : 모니터와 그래픽카드를 디지털로 연결하기 위한 인터페이스 가 된다.
사용처
가정에서 고화질 동영상 시청이나, 고사양게임에 주로 이용되며 최근 비트코인, 이더리움 등의 암호화폐를 채굴하기 위해 고성능 GPU를 여러 개 장착한 전문 채굴기를 사용하기도 한다.
전망
최근 고사양의 게임이 많이 출시됨에 따라 고사양의 그래픽카드가 있어야 하는 사람들이 증가했다. 고해상도와 고사양 게임을 즐기려면 짧은 시간에 많은 연산을 할 수 있는 고가의 그래픽카드가 필요한데 이러한 수요를 그래픽카드 제조사가 충족시켜주고 있다. 최근에는 VR(Virtual Reality)컨텐츠의 등장으로 고가의 그래픽카드는 점점 일반 소비자들에게도 선택의 대상이 되었다.
고사양 그래픽카드의 채굴능력(연산능력)을 이용해 여러개의 고성능 그래픽카드를 채굴기에 묶어 비트코인을 채굴하게 되는데 이것이 그래픽카드에 가격상승에 한몫했지만 최근 비트코인의 거품이 꺼지는 바람에 그래픽카드 시장도 주춤한 추세이다.
각주
참고자료
- 〈그래픽 처리장치〉, 《위키백과》
- 프로그래밍, 〈그래픽카드 구조 간략한 설명 정리〉, 《티스토리》, 2018.07.29
- ikfluencer, 〈컴퓨터 그래픽스 GPU GPGPU〉, 《티스토리》, 2014.01.15
같이 보기