Graphics Processing Units & MIMD Systems

강병우·2023년 9월 25일
0

병렬프로그래밍

목록 보기
7/24

GPU

실시간 그래픽 어플리케이션 프로그래밍 인터페이스 혹은 점, 선 그리고 삼각형과 같은 표면형 물체를 표현하는 API에 사용된다.
화면의 픽셀 하나하나를 계산하기 때문에, 병렬처리가 쉽다.

이러한 파이프라인의 Several Stages(shader functions)는 프로그래밍이 가능하다(C코드로 개발됨).

Shader functions은 그래픽 스트림 안의 다수 요소들을 적용될 수 있는 시점부터 병렬처리된다.

GPGPU(General Purpose computing on GPU) programming : Cuda, OpenCL과 같은 녀석들이 최근에 개발됨..

단점

작은 문제에선 안 좋은 퍼포먼스를 보여준다.

MIMD

여러 개의 데이터스트림에서 작동되는 다수의 명령체계를 처리할 수 있다. 독립된 프로세싱 유닉이나 코어에서 따로따로 구동된다.

Shared Memory System

각각의 어플리케이션은 공용 메모리에 접근할 수 있다. 각 프로세서들은 공유된 데이터 체계에 접근하므로써 암묵적으로 서로에게 통신할 수 있다.

UMA Multicore System

모든 프로세서가 모든 메모리에 접근하는 시간은 모든 코어에서 시간이 똑같다.

NUMA Multicore System

프로세서 위치에 따라, 메모리에 접근하는 시간이 달라진다.

Distributed Memory System

각 프로세서는 각자의 개인 메모리를 갖고 있다. 프로세서-메모리 쌍은 Interconnection network를 통해 통신해야 한다. 이 통신은 암묵적으로 프로세서 사이에 메세지가 송수신됨으로써 실행된다.

예시

  • Clusters
    범용 컴퓨터이 모여있는 시스템
    컴퓨터 하나는 노드를 뜻하며, 독립적인 컴퓨터이지만 서로 통신할 수 있다.

0개의 댓글