OpenCL 코드 플랫폼 설정 방법

grmanet 2018.04.04 15:08 조회 수 : 227

OpenCL 코드 구동 관련 문서입니다.

 

OpenCL의 경우에는 여러 디바이스(장치)에서 구동가능하면서, 기기에 맞춰서 코딩을 하여야 합니다.

 

때문에 플랫폼을 정하고 그에 해당하는 디바이스를 찾고 그 장치에 맞는 커널을 수행하도록 OpenCL 코드를 작성합니다.

 

만일 예제 코드가 구동되지 않는다면, 아래의 방법대로 플랫폼과 디바이스를 확인 해야 합니다.

 

예제 코드의 경우 플랫폼과 디바이스를 확인할 수 있는 코드가 있습니다.

 

이미지 1.png

 

show_OpenCL_platform 함수는 OpenCL을 사용할 수 있는 플랫폼과 그에 속하는 디바이스를 출력합니다.

 

과제 1을 채점할 컴퓨터는 다음과 같이 구성되어 있습니다.

 

이미지 2.png

 

플랫폼 0번은 NVIDIA CUDA 플랫폼이며,

플랫폼 0번의 디바이스 0번은 GPU 타입 입니다.

 

플랫폼 1번은 Intel OpenCL 플랫폼이며,

플랫폼 1번의 디바이스 0번은 CPU 타입 입니다.

 

때문에,

clGetPlatformIDs 함수를 통해 플랫폼 정보를 얻어내고,

clGetDeviceIDs 함수를 통해 해당 플랫폼에 있는 디바이스 정보를 얻어내야 합니다.

 

위의 경우라면, 플랫폼이 2개이기 때문에

clGetPlatformIDs(2, platforms, NULL)로 플랫폼을 얻어내고

 

사용할 디바이스가 있는 플랫폼을 이용하여, (여기서 INDEX_GPU는 0번)

clGetDeviceIDs(platform[INDEX_GPU], CL_DEVICE_TYPE_GPU, 1, devices, NULL)과 같이 GPU 디바이스 정보를 가져옵니다.

 

만약에 원하는 장치가 목록에 표시가 되지 않았다면, 자신의 장치에 따라 드라이버를 설치해야 합니다.

 

자신의 개발환경에 맞게 플랫폼과 디바이스를 설정하였다면, 원하는 장치에서 OpenCL을 구동할 수 있을 것입니다.

 

댓글 0

번호 제목 글쓴이 날짜 조회 수
공지 수치 컴퓨팅 및 GPU 프로그래밍 - 과제 4 (2018/06/26 18:30 수정) grmanet 2018.06.12 192
공지 수치 컴퓨팅 및 GPU 프로그래밍 - 과제 3 (2018/06/26 17:00 수정) grmanet 2018.06.04 354
공지 수치 컴퓨팅 및 GPU 프로그래밍 - 기말고사 grmanet 2018.06.04 68
공지 수치 컴퓨팅 및 GPU 프로그래밍 - 과제 2 (2018/05/19 21:30 수정) grmanet 2018.05.03 480
공지 수치 컴퓨팅 및 GPU 프로그래밍 - 중간고사 grmanet 2018.04.09 163
공지 수치 컴퓨팅 및 GPU 프로그래밍 - 과제 1 (2018/04/12 19:50 수정) grmanet 2018.03.29 459
공지 2018 1학기 수치 컴퓨팅 및 GPU 프로그래밍 게시판입니다. grmanet 2018.03.29 103
2 OpenCL Workgroup 구성과 데이터 접근 (2018.04.12 16:40 수정) file grmanet 2018.04.12 126
» OpenCL 코드 플랫폼 설정 방법 file grmanet 2018.04.04 227