GPGPU - CUDA [정의] GPU를 CPU가맡고있는응용프로그램들의계산에사용할수있도록활용하고자하는기법
[목적] 그래픽연산, 데이터병렬연산
[장점] 부동소수점연산빠름, 문맥교환속도빠름, 다수쓰레드사용
[단점] 흐름제어기능빈약,프로그래밍기법의제약, Core 당클럭이 CPU에비해느림
[플랫폼]
1. [CUDA-NVIDIA] 프로그램모델제공, 병렬처리, SM/SP 구성, 제한된호환성
2. [OpenCL-크로노스그룹] 이기종시스템지원, C,런타임API, 애플/AMD/IBM
3. [OpenACC-NVIDA] CUDA의추상화모델, 컴파일러지시문기반, 플랫폼독립
4. [C++ AMP-MS] Visual studio에추가된이기종지원, 람다표현, 병렬반복문
HAS(Heterogeneous System Architecture) 고려: OpenCL, OpenACC, C++ AMP
플랫폼독립성: OpenCL, OpenACC
 
토픽 이름 () GPGPU(General Purpose Graphic processing unit)
분류 CA > 컴퓨터 구조 > GPGPU
키워드(암기) PCI express bus, 연동부, SIMD 코어, 그래픽 메모리, 캐시 메모리
CUDA, OpenCL, C++ AMP, OpenACC, SM, SP
암기법(해당경우)  

 

기출문제

번호 문제 회차
1 12. CPU(Central Processing Unit)GPGPU(General-Purpose computing on Graphics Processing Units) 120.정보관리.1교시
2 GPGPU(General Purpose Graphics Processing Units) 111.정보관리.1교시
3 CPU GPU 비교 설명하고, 모바일 GPU 아키텍처와 GPGPU(General-Purpose GPU)기술에 대해 설명하시오 합숙_2014.07.응용.D5
4 5. 인공지능,빅데이터 4차 산업혁명으로 대변되는 새로운 기술의 발전이 대용량의 데이터를 효율적으로
처리하는 GPU 성장을 견인하고 있고 최근 국내에서 금융산업에서도 GPU기반의 아키텍처 도입되고 있다. 다음 아래의 질문에 대하여 설명하시오.
. GPU GPGPU 개념
. GPU CPU 차이점
모의_2018.05.응용.3교시
5 6. GPGPU 프로그래밍 모델 모의_2016.04.응용.1교시
6 3. GPGPU 개념을 설명하고, GPGPU기반 컴퓨팅 플랫폼의 종류를 2 이상 제시하시오. 모의_2015.11.관리.1교시
7 14. GPGPU기반 프로그래밍 모델의 종류에 대하여 설명하시오. 합숙_2019.01.응용

 

1. GPU 수행능력 확대, GPGPU(General Purpose Graphics Processing Units) 개요

. GPGPU(General Purpose Graphics Processing Units) 개념

- GPU(Graphics Processing Unit) 그래픽 연산 아니라 일반 컴퓨팅 영역에도 활용하는 것을

목적으로, 중앙처리장치(CPU)가 맡았던 응용 프로그램들의 계산에 GPU 사용하는 기술

. GPGPU(General Purpose Graphics Processing Units) 등장배경 주요특징

구분 내용 내용 상세 설명
등장
배경
기계학습 성장 - 기계학습기반 딥러닝 폭발적 성장 기인

빅데이터 처리 - 단순비정형 고성능 아니어도 GPU 처리 충분
주요
특징
초병렬 SIMD/SIMT구조 - Control, Cache 부분 간소화한 코어집적/병렬처리

플랫폼 지원 - CUDA, OpenCL GPGPU 플랫폼기반 구현 가능

-  초병렬 SIMD 처리에 의한 강력한 연산능력으로 딥러닝, 인공지능, 빅데이터 처리에 활용확대

 

2. GPGPU(General Purpose Graphics Processing Units) 구성도/구성요소 플랫폼/비교

. GPGPU(General Purpose Graphics Processing Units) 구성도 구성요소

구분 상세 설명
구성도

구성
요소
PCI express bus
연동부
- CPU 통신하거나 CPU 메모리 접근위한 버스
  (PCI Controller, Host Memory, CPU 연동)

SIMD 코어 - 병렬 연산 처리를 위한 스레드 프로세서들 집합

그래픽 메모리 - GPU에서 사용하는 고속의 메모리
 (DDR Memory Controller, DDR5 Memory Module)

캐시 메모리 - 코어 /외부 공유메모리와 메모리와의 정합수행

- AMD HD5870 GPUSIMD코어와 그래픽 메모리, 캐시 컨트롤러 등으로 구성

 

. GPGPU(General Purpose Graphics Processing Units) 플랫폼 비교

구분 플랫폼 유형 플랫폼 설명 관련社
GPGPU
플랫폼
CUDA - 프로그램 모델 제공 병렬처리
- CUDA Runtime APIDriver API 구성
- 제한된 호환성(Geforce8급 이상지원)
* Compute Unified Device Architecture
NVIDIA

OpenCL - Heterogeneous 이기종 시스템 지원
- C, 런타임, API로 구성
- 애플최초개발, AMD, IBM 공동참여
* Open Computing Language
크로노스그룹
(Khronous Group)

C++ AMP - Visual Studio 추가된 이기종 지원
- 람다(Lamda)표현과 병렬반복문 결합
- VS 2012, Windows 8, DirectX 11이상
* C++ Accelerated Massive Parallelism
마이크로
소프트

OpenACC - CUDA 추상화시킨 프로그래밍 모델
- 컴파일러 지시문(Directive)기반
- 플랫폼 독립, Cross-Platform, C/포트란
* for Open Accelerators
NVIDIA
GPGPU
플랫폼
비교








- 제어측면 : HAS(Heterogeneous System Architecture) 고려한 3가지 이용
            à OpenCl, OpenACC, C++ AMP
- 플랫폼 종속성 : 플랫폼 독립적인 2가지기반 구현
à OpenCL, OpenACC


- 기술 사용목적 난이도 고려한 플랫폼 선택 중요하며, CPUGPU 연계 기술 활용 가능

 

3. GPGPU 효율을 위한 CPUGPU 연계, HAS(Heterogeneous System Architecture)

구분 세부 설명
HSA
개념
- CPUGPU 하나의 연산체로 간주하는 추상계층을 생성하여 GPU 연산
보조용으로 사용하는 이기종 아키텍쳐 (Heterogeneous System Architecture)
GPGPU
활용





- 로보어드바이저, 핵심시스템융합관제 GPGPU 기반 구축시 HAS 연계로 효율성 도모 “끝”

 

[참고] CUDA

I. CUDA 개념

개념 -그래픽 처리 장치(GPU)에서 수행하는 병렬 처리) 알고리즘을 C 프로그래밍 언어를 비롯한 산업 표준 언어를 사용하여 작성할 수 있도록 하는GPGPU 기술
특징 G8X GPU 구성된 지포스 8 시리즈급 이상에서 동작한다. CUDA CUDA GPU 안의 명령셋과 대용량 병렬 처리 메모리를 접근할 수 있도록 해 준다.
목적 GPU 이용함으로써 커다란 성능 향상을 기대

 

2. CUDA 데이터 처리 절차

. CUDA 데이터 처리 흐름도

- GPU Memory 에서 동시 병렬 처리를 통한 연산 속도 향상

. CUDA 데이터 처리 설명

순서 설명 영역
1   PC -> GPU
2   CPU 에서 명령
3   GPU 에서 처리
4   GPU -> Main Memory

 

III. CUDA SM(Stream Multiprocessor)& SP 개념

 . CUDASP(Streaminng Processor) 설명

  

 

. CUDA 프로그래밍 함수 예시

 

 

 

[참고]

 

반응형

'정보관리기술사 > CA_OS' 카테고리의 다른 글

집합연관사상  (1) 2023.11.12
연관사상(Associative Mapping)  (0) 2023.11.11
직접사상(Direct Mapping)  (0) 2023.11.10
Cache 일관성 유지방법  (0) 2023.11.09
매니코어 프로세서  (0) 2023.11.08

+ Recent posts