Computer Vision

OpenCL Architecture

GUNDAM_IM 2014. 3. 15. 18:03

OpenCL에서 사용되는 개념은 아래와 같다.

Host 즉 CPU에서 Command와 Data를 Device로 보낸다.

이는 Command Queue로 저장된다.





Code의 실행은 순차적으로 진행되다가 Parallel하게 진행되는 방식으로 이루어진다.




Host에서 Serial하게 진행하고 parallel code는 Device에서 실행하게 된다.


Work Item은 N Dimension Work Item으로 만들어진다.

Global Domain으로 1024 x 1024로 만들어진다.


이 Global Domain에서 32x32로 Local Dimension으로 나누어서 한번에 실행된다.


Work Item : OpenCL Device상에서 계산이 이루어지는 기본 유닛

Kernel      : Work Item을 구동시키는 code

Program    : Work Item 을 구동시키는 Kernel과 기타 함수들의 모음


Context     : 

Command Queue : Host에서 Device로 보내지는 work의 pipeline



메모리 모델은 아래와 같다.


Private Memory는 각 Work Item별로 할당된 메모리이다.

Local Memory는 Work Group별로 할당된 메모리를 의미한다.

Global / Constant memory는 모든 Work Group에서 보여지는 메모리를 의미한다.

Host Memory는 당연히 Host용 메모리를 의미함.


Host -> Global -> Local -> Private 순으로 메모리의 데이터를 옮길 수 있다.