EE Major/Semiconductor Field

[시스템 반도체 개론] GPU 구조 및 동작 원리

nabee 2024. 11. 29. 15:58
  •  GPU ?
    Graphcs Processing Unit
    컴퓨터 시스템에서 그래픽 연산을 빠르게 처리하여 결과값을 모니터에 출력하는 연산장치
    종류) 소비자용, 전문용, 통합용, 모바일용

  • CPU VS GPU
CPU GPU
직렬연산처리 (병렬도 가능) 병렬연산처리
속도 빠름 CPU 대비 속도 느림
소량 코어 수 코어 수 대량
GPU 보다 병렬 처리 성능 저조 그래픽 처리 등 병렬 연산에 적합

 

  • GPU 대략적 역사
    - 1999, NVIDIA 가 GPU 발명 & 그래픽 표현을 위한 부동소수성능 및 프로그램화 프로세서 진화
    - 2003이후, 비그래픽 발달 & OpenGL, DirectX 등 데이터 병렬 알고리즘 포팅
    - GPGPU 프로그래밍, 한계점으로 CUDA 아키택쳐 등장
    - CUDA로 C프로그래밍

  • GPU 주요 구성 요소
    - SP (Streaming Processor)
    특정 작업을 병렬로 실행, 데이터에 대한 수학적 연산수행, CUDA core
    - SM (Streaming Multiprocessor)
    명령어 처리 단위, Fetch/Decode를 처리, SP와 Cache, SFU, 공유메모리를 묶어서 말함
    SP를 제어, 명령어 캐시 및 데이터 캐시를 가짐
    공유 메모리는 SM 내에 SP들이 서로 데이터를 공유하고 빠르게 사용할 수 있는 메모리
    - TPI (Texture Processor Cluster)
    그래픽 처리 단위, SM과 텍스처유닛집합으로 구성
    텍스쳐 유닛 : 3D를 객체로 변환, 음영처리하는 텍스처 매핑 및 필터링, 색상 보정 등 사실적으로 보이는 최종 생성
    - ROP (Raster Operation Unit)
    픽셀작업을 처리, 프레임 버퍼에 최종 이미지 데이터 기록, 초당 처리할 수 있는 픽셀수인 최대 픽셀 채우기 속도결정
    - 메모리 인터페이스
    GPU의 메모리와 통신하는 역할, 전반적인 GPU 성능에 중요한 역할, 초당 진동할 수 있는 데이터의양을 결정
    최대 메모리 대역폭을 결정

출처 : ANANDTECH, https://www.anandtech.com/show/2977/nvidia-s-geforce-gtx-480-and-gtx-470-6-months-late-was-it-worth-the-wait-/3

 

  • GPU 성능 기준
    1. 클럭속도 : CPU코어가 동작하는 속도, GHz단위로 측정, 속도 높을 수록 성능 향상
    2. 메모리 대역폭 : GPU 초당 메모리 간 전송할 수 있는 최대 데이터 양, G/B/s로 측정, 클수록 성능 향상
    3. 텍스처 충전률 : GPU 초당 처리할 수 있는 텍스쳐 수
    4. 픽셀 채우기속도 : GPU 초당 처리할 수 있는 픽셀 수
    5. 셰이더성능 : 그래픽 셰이더를 처리하는 GPU 성능 측정, 3D렌더링 방법을 계산하는 프로그램

  • GPU 기술
    1. Ray Tracing : 빛의 행동을 시뮬레이션 3D 그래픽 렌더링 기술
    2. Tensor core : 머신러닝 작업 가속화하는 특수 유닛, 매트릭스 작업 최적화
    3. VRAM : 그래픽 처리에 사용하는 메모리 한 종류
    4. GDDR : 그래픽 처리를 위해 설계된 메모리
    5. HBM : 그래픽 처리를 위해 설계된 메모리, GDDR에 비해 하이엔드 GPU에 사용

  • GPU 동작 원리
    - GPGPU (General Purpose computing on Graphic Processing Unit)
    GPU를 CPU가 맡았던 응용프로그램 계산에 사용하는 기술
    - 병렬 처리, 비그래픽
    GPU는 그래픽 처리 목적으로 만들어졌으나
    데이터 형식을 그래픽 처리되는 형태로 바꾸어줘야 하기에 CUDA, OpenCL 프로그램 개발됨
    SIMD(하나의 명령어로 여러개의 데이터), SIMT(같은 명령어로 여러개의 스레드)
    - CUDA (Computer Unified Device Architecture)
    병렬처리를 위한 애플리케이션 프로그래밍 인터페이스 모델
    그래픽스 API 사용하지 않고 병렬 컴퓨팅 가능
    - Multi-threading
    Latency (지연시간) 을 줄이기 위해 번갈아가며 코어에서 실행하는 방식

https://youtu.be/ZdITviTD3VM?si=2z2i9P7JVZ25HrbR