[IT토탈서비스]/AI 인공지능

그래픽처리장치(GPU)의 연산 과정 : 중앙처리장치(CPU)와 비교, 심디(SIMD)와 심티(SIMT)

이호스트ICT 2023. 12. 19. 15:15


안녕하세요, 이호스트ICT 인사드립니다. 

오늘 포스팅에서는 AI 인공지능 R&D 연구소에서 진행한 사내 스터디 자료를 공유드리고자 합니다. 

중앙처리장치인 CPU와 그래픽처리장치 GPU의 비교부터, 
GPU 장치의 연산과 발전 과정에 대하여 알 수 있는 내용이며, 
그래픽자료들을 통해 보다 알아보기 쉽도록 마련한 교육자료인데요. 
그래픽처리장치에 대하여 궁금한 사항들은 아래 내용 및 첨부되어 있는 교육 자료를 보며 이해해보시기를 바랍니다. 





1. GPU의 정의
GPU (Graphic Processing Unit)
그래픽 처리 장치 / 그래픽 처리, 특히 3D 모델링을 위한 프로세서를 말합니다.

1999년 NVIDIA사에서 GeForce 256를 판매하며 GPU라는 단어를 대중적으로 사용하기 시작하였고
1년 후인 2000년에는 AMD사에서 Radeon이라는 GPU를 출시하며 
우리가 알고 있는 NVIDIA와 AMD, 양사의 경쟁이 본격화되기 시작하죠.

2019년 기준 NVIDIA(67.9%) vs AMD(32.1%)로 시장 점유율에서 서로 경쟁하였으나,
현 시점인 2023년 2분기 기준 NVIDIA(87%) vs AMD(10%)로 시장 엔비디아가 독점하며
사실상 GPU를 사용하는 시장의 대부분의 점유율을 차지했다고 보고 있습니다.





*GPU는 그래픽 카드인가?
개인의 GPU에 대한 이해도에 따라 답이 달라집니다.

그래픽 카드는 부품을 말합니다.
그래픽 카드에는 모니터로 출력하는 포트와 발열을 잡아주는 펜, 전력을 공급하는 장치 등
여러 장치들이 모여 하나의 그래픽 카드라는 부품이 되는 것이죠. (모니터에 이미지를 표시해주는 역할)

GPU는 모니터에 화면을 표시하기 위한 연산을 하는 프로세서 or 칩셋이라고 보시면 됩니다.
(이미지를 표시를 위한 연산 작업 / 그래픽 카드의 내의 부품)

통상적으로 GPU를 편의상 그래픽 카드 라고 이해하며 부르는 곳도 있기도 합니다.

이러한 GPU는 위치한 곳에 따라서
GPU가 중앙처리장치(CPU) 안에 탑재되어 있다면 이를 ‘내장 그래픽 카드’
GPU가 중앙처리장치(CPU) 밖에 부품 형태로 존재한다면 이를 ‘외장 그래픽 카드’ 라고 부르게 됩니다.




2.GPU에 대한 이해.

(좌 : CPU 연산 과정 / 우 : GPU 연산 과정) (출처 : bRd 3D 유튜브 채널) 




CPU와 GPU의 차이점에 대해 설명하자면, 위 그래픽으로 이해하면 쉬울 것 같습니다. 
CPU는 중앙처리장치로써 어렵고 복잡한 연산도 가능하다는 특성이 있고 GPU는 단순한 병렬식 연산에 특화되어있는 장치라는 점이 가장 큰 차이점인데요. 
즉, CPU는 박사 1명, GPU는 단순 연산이 가능한 일반인 여러명이라고 비유해도 좋을 것입니다. 


(픽셀(Pixel), 이미지를 구성하는 최소 단위인 점을 뜻함) (출처 : bRd 3D 유튜브 채널)




그렇다면 GPU는 무엇을 연산해서 화면에 표현해주는걸까요?

이미지나 화면을 구성하는 최소 단위를 픽셀(pixel) 이라 합니다.
게임에서는 이를 ‘도트’라고 부르기도 하죠.

FHD 해상도는 이미지1장은 1920x1080으로 이루어져 있는데 
이는 1장의 이미지가 2,073,600개의 픽셀로 구성되어 있음을 의미합니다.

동영상은 1장의 이미지를 빠르게 표시해 움직이는 것처럼 표현하는 것이라고 정의합니다.
이때 동영상 1초에는 평균적으로 30장의 이미지가 사용되는데
우리는 이를 프레임 이라고 부릅니다.

*프레임 (Frame)
연속된 영상을 구현하는 한 장면 한 장면의 정지된 화면을 말함

정리하자면
FHD기준의 해상도에서
1장의 이미지 또는 프레임에는 2,073,600개의 픽셀이 있고
1총의 동영상에는 2,073,600X30= 62,208,000개의 픽셀이 있습니다.
=>즉, 컴퓨터가 1초에 계산(연산)해서 표시해야 할 픽셀의 수는 62,208,000개 라고 
이해하시면 되겠습니다.




3.GPU의 연산 과정.

GPU에는 Core가 있고, 이 Core안에는 연산장치인 ALU라는 것이 있습니다.
과거에는 1개의 Core안에 1개의 ALU가 있었고 이들은 1개의 픽셀을 처리했죠.
만약 16개의 Core가 있다면, 16개의 픽셀이 처리되는 셈이었습니다.

시간이 흐르고 GPU의 기술이 발전함에 따라 Core안에는 1개가 아닌 다수의 ALU가 존재하게 되어
많은 양의 연산을 할 수 있게 되었고
이를 SIMD(심디)라는 처리 방식을 통해 한번의 명령어로 여러 데이터를 처리할 수 있게 되었습니다.

심디 (SIMD)
한 개의 명령으로 동시에 
여러 개의 데이터 항목을 처리하는 병렬 처리 컴퓨팅 처리 방식





4.GPU의 발전

이렇게 GPU의 특징을 활용한 처리 속도가 눈에 띄게 발전하자
많은 사람들이 이를 이용한 대량의 데이터를 처리하고자 하는 욕구가 생겼습니다.





하지만 문제가 있습니다.
원래 GPU는 그래픽 처리를 목적으로 만들어졌기 때문에 
일반 컴퓨터가 데이터를 처리하는 방식을 GPU는 하지 못했습니다.

그래서 컴퓨터가 처리하는 방식을 그패픽이 처리하는 방식으로 데이터를 변환해주게 된 것으로 시작한 것이
Nvidia사에서 제공하는 GPU기술인 CUDA와 OpenCL 같은 프레임워크들인 것입니다. 

이 때 CUDA에서는 기존의 SIMD 방식이 아닌 SIMT라는 방식을 활용하게 됩니다.

심티 (SIMT)
심디(SIMD)의 데이터 중심의 처리가 아닌
스레드 중심의 다중 처리 방식.  

SIMD는 데이터 중심의 처리 방식이라면 SIMT는 스레드 중심의 처리 방식 입니다.
스레드들이 모인 그룹을 워프(Warp), Core들이 모인 그룹을 코어 그룹이라고 부르게 되는데요.
코어 그룹내의 코어의 수와 워프 내의 스레드의 수를 동일하게 하여
마치 하나의 작업처럼 처리되게 하는 방식입니다.




이러한 방식은 작업과 작업간의 연산 중 필연적으로 발생하는 지연시간이 없이 바로 다음 워프 작업을 수행함으로서 지속적인 연산이 가능하다는 장점이 있습니다.

이렇게 GPU의 여러 특징들이 발전함에 따라 오늘날에는 GPU를 더 효과적으로 여러 방면에서 사용할 수 있게 되었습니다.


교육자료를 살펴보시고 싶으시다면, 아래 첨부 파일을 참고 바랍니다. 

EhostICT_GPU연산과정_교육자료_231211.pdf
3.23MB





이호스트ICT는 늘 공부하고 발전하는 IT 토탈 솔루션 기업입니다.
다음번에도 더욱 유익한 포스팅과 함께 찾아올 것을 약속드리며, 오늘 포스팅은 마치도록 하겠습니다. 
감사합니다. 


■이호스트ICT GPU 서버 컨설팅 문의하기
☎1566-8757   |   http://www.ehostidc.co.kr