OpenCL Architecture
플랫폼 모델
실행 모델
메모리 모델
프로그래밍 모델
OpenCL 프레임워크
플랫폼 모델(Platform Model)
- 호스트(host) + 하나 이상의 계산 디바이스
- 계산 디바이스(compute device)
- OpenCL 디바이스
- 하나 이상의 계산 유닛으로 구성
- 계산 유닛(compute unit, CU)
- 하나 이상의 Processing Element로 구성
- Processing Element (PE) (Core와 비슷)
- 디바이스 내에서 실제 계산을 수행
- 가상 스칼라 프로세서
- 계산 디바이스(compute device)
OpenCL 애플리케이션
- 호스트 프로그램 + OpenCL 프로그램
- 호스트 프로그램(host program)
- 호스트 프로세서에서 실행
- OpenCL 프로그램의 실행을 조정
- 일반 프로그래밍 언어로 작성
- C, C++ 등
- 디바이스의 실행을 관리
- 커맨드 단위
- 메모리, 계산, 동기화 등
- OpenCL 프로그램
- OpenCL 커널의 집합
- OpenCL 디바이스에서 실행
- 디바이스 : CPU, GPU 등
- 호스트 프로그램(host program)
- 커널(kernel)
- OpenCL C로 작성
- 디바이스에서 실행되는 코드의 기본 단위
- 많은 인스턴스가 디바이스에서 실행됨
- 데이터 병렬성 이용
- 호스트와 디바이스의 병렬 실행
- 호스트 프로그램과 커널은 병렬로 실행 가능
- 여러 디바이스를 동시에 사용 가능
OpenCL C
- 커널 작성을 위한 프로그래밍 언어
- 별도의 #include 사용 X
- 제약
- 표준 C99 헤더파일 지원 X
- 함수 포티인터, 재귀함수, 가변길이 배열(ex : int a[N]), 비트 필드 지원 X
- 확장
- 벡터 타입
- ex) char2, int4, float8
- 이미지 타입
- ex) image2d_t
- 주소 공간 한정자
- ex) __global, __constant, __local
- 동기화
- 많은 빌트인 함수
- 벡터 타입
반응형
'멀티코어 프로그래밍 > OpenCL' 카테고리의 다른 글
OpenCL Architecture(4) (42) | 2022.04.13 |
---|---|
OpenCL Architecture(3) (41) | 2022.04.12 |
OpenCL Architecture(1) (11) | 2022.04.10 |
OpenCL 프로그래밍(3) (2) | 2015.08.06 |
OpenCL 프로그래밍(2) (0) | 2015.07.25 |
댓글