GPU (Graphic Processing Unit, 그래픽 처리 장치)

2025. 5. 8. 20:11·Software Engineering/Software Development Principles

GPU란? (Graphic Processing Unit, 그래픽 처리 장치)

그래픽 처리 장치(GPU)는 다양한 장치에서 컴퓨터 그래픽 및 이미지 처리 속도를 높이도록 설계된 전자 회로입니다. 이러한 장치에는 비디오 카드, 시스템 보드, 휴대폰, 개인용 컴퓨터(PC)가 포함됩니다. GPU는 수학적 계산을 빠르게 수행하고 여러 코어들이 동시에 (또는 병렬로) 연산을 수행하기에 대형 데이터나 컴퓨터 그래픽, 영상 처리에 CPU (중앙 처리 장치) 보다 더 효과적으로 사용되며 현재에는 머신 러닝, 인공 지능 및 블록체인과 같은 기술의 필수적 요소가 됩니다.

GPU가 등장하기 전까지 PC나 콘솔 게임들의 그래픽은 컴퓨터의 CPU에 의존하여 작업을 실행하였습니다. 하지만 개인 게임과 컴퓨터 지원 설계(CAD)의 등장과 게임에 대한 수요가 높아졌습니다. 물론 CPU가 실시간 3D 그래픽을 구현해 냈지만 CPU 만으로 그래픽을 처리하기에는 부하가 심해졌기에 그래픽 카드의 3D처리가 요구 되었습니다. 따라서 3D API프로그램들이 등장하기 시작했는데 OpenGL, DirectX 와 같은 프로그램이라고 볼 수 있겠습니다.

2007년에 Nvidia는 CUDA(Compute Unified Device Architecture)를 개발하였고 이는 개발자에게 GPU 병렬 계산 능력에 직접 액세스할 수 있는 소프트웨어 플랫폼이자 API로 이전보다 더 다양한 기능을 위해 GPU 기술을 활용할 수 있게 되었습니다.

이러한 발전으로 GPU는 현재 카메라에서 나오는 빛의 방향을 추적하여 컴퓨터 이미지를 생성하는 기술인 레이 트레이싱이나 딥 러닝, AI 기술 프로세서에서 중요한 역할을 수행하고 있습니다.


GPU와 CPU의 차이점

CPU는 더 적은 수의 코어를 개별 작업에 집중하여 작업을 신속하게 처리합니다. 프로그램이나 소프트웨어 애플리케이션으로부터 작업과 관련된 일반적인 지침 또는 요청을 수신합니다. CPU는 더 적은 코어를 사용하고 선형적인 순서로 작업을 수행하는 경향이 있습니다. 그러므로 단일 프로세서에서 한 번에 하나의 작업만 실행되는 직렬 작업부터 데이터베이스 실행까지 다양한 작업에 비길 데 없이 적합합니다.

GPU는 그래픽 처리 또는 머신 러닝과 같은 특정한 단일 컴퓨팅 작업에 집중하는 경향이 있습니다. 고해상도 이미지와 동영상을 빠르게 처리하는 것처럼 구체적인 작업을 수행하며 작업을 수행하기 위해 그래픽 렌더링 또는 기타 기능에 필요한 복잡한 수학적 계산을 지속적으로 수행합니다. GPU는 게이밍과 같은 그래픽 및 3D 렌더링 작업 가속화 같은 특수 목적을 위해 설계되었지만 시간이 지나면서 활용성이 높아지고 여전히 그래픽과 사실적 게이밍 비주얼이 주요 기능이지만 많은 코어를 가지고 병렬 처리를 가능하게 하고 이를 통해 빠른 처리 능력을 발휘하게 되었습니다.

병렬 프로세싱 또는 병렬 컴퓨팅은 전체 컴퓨팅 작업의 서로 다른 하위 작업을 수행하기 위해 둘 이상의 프로세서를 사용하는 방식의 한 종류이며 GPU 이전의 예전 세대의 컴퓨터는 한 번에 하나의 프로그램만 실행할 수 있었기 때문에 작업을 완료하는 데 많은 시간이 걸리는 경우가 많았습니다. GPU의 병렬 처리 기능은 많은 계산 또는 작업을 동시에 수행하므로 구형 컴퓨터의 CPU보다 빠르고 효율적일 수도 있습니다.

  CPU GPU(그래픽 처리 장치)
함수 서버의 주요 처리 연산을 하는 일반화된 구성 요소 병렬 프로세싱에 탁월한 구성 요소
처리 방식 직렬 명령 처리를 위해 설계 병렬 명령 처리를 위해 설계
설계 코어 수는 더 적지만 코어 성능은 더 뛰어남 CPU보다 코어 수는 많지만 성능이 떨어짐
적합한 용도 범용 컴퓨팅 애플리케이션 고성능 컴퓨팅 애플리케이션

최근 GPU 사용 사례

시간이 지나면서 GPU가 발전함에 따라 더 많은 프로그래밍이 가능해졌고 여러 프로세서에 작업을 분할할 수 있는 능력 덕분에 PC게임, 3D렌더링 워크스테이션, 등 다양한 분야에서 필요한 존재가 되었습니다.

  • 인공지능
  • 머신 러닝(ML) 및 딥 러닝(DL)
  • 블록체인
  • 게임

GPU의 종류

GPU에는 다음과 같이 세 가지 유형이 있습니다.

  • 개별 GPU
    개별 GPU는 장치의 CPU와 분리된 그래픽 프로세서로, 여기에서 정보를 받아들이고 처리하여 컴퓨터가 작동할 수 있도록 합니다. 개별 GPU는 일반적으로 편집, 콘텐츠 제작 또는 고사양 게임과 같은 특별한 요구 사항을 가진 고급 애플리케이션에 사용되며 가장 널리 사용되는 GPU중 하나 입니다.

  • 통합 GPU
    통합 GPU는 컴퓨터나 장치의 인프라에 내장되어 있으며 일반적으로 CPU 옆에 슬롯에 장착됩니다. 

  • 가상 GPU
    가장 GPU는 하나의 물리GPU를 여러 컴퓨터에서 나눠쓰게 해주는 기술이며 클라우드에 설치된 진짜 GPU를 소프트웨어로 나눠서 각 사용자에게 마치 본인의 GPU처럼 사용할 수 있게 합니다.

 

'Software Engineering > Software Development Principles' 카테고리의 다른 글

RAM (Random-Access Memory, 랜덤 액세스 메모리)  (0) 2025.05.13
FSM (Finite State Machine, 유한 상태 기계)  (0) 2025.05.12
CPU (Central Processing Unit, 중앙 처리 장치)  (0) 2025.05.07
동적 연결 라이브러리 (DLL, Dynamic Link Library)  (0) 2025.04.28
의존성 주입(DI, Dependency Injection)  (1) 2025.03.05
'Software Engineering/Software Development Principles' 카테고리의 다른 글
  • RAM (Random-Access Memory, 랜덤 액세스 메모리)
  • FSM (Finite State Machine, 유한 상태 기계)
  • CPU (Central Processing Unit, 중앙 처리 장치)
  • 동적 연결 라이브러리 (DLL, Dynamic Link Library)
Mr.Vulpes
Mr.Vulpes
여우비가 내리는 시간입니다.
  • Mr.Vulpes
    여우비 개발실
    Mr.Vulpes
  • 전체
    오늘
    어제
    • Browse All Categories (45) N
      • Unreal (10)
        • Core Concepts (7)
        • Unreal For C++ (3)
      • C++ Programming (4)
        • C Basic (4)
      • DirectX (5)
        • Basic (3)
        • DirectX - Class (2)
      • Math & Physics (3)
        • Vectors (3)
      • Software Engineering (23) N
        • Software Development Princi.. (20) N
        • Design Pattern (3)
  • hELLO· Designed By정상우.v4.10.3
Mr.Vulpes
GPU (Graphic Processing Unit, 그래픽 처리 장치)
상단으로

티스토리툴바