OpenCL 프로그램 작업을 위한 클래스

COpenCL 클래스는 OpenCL 함수 작업을 용이하게 하기 위한 래퍼입니다. 어떤 경우에는 GPU를 사용하면 계산 속도를 상당히 높일 수 있습니다.

float 및 double 값을 기반으로 한 계산을 위한 클래스 사용의 예는 MQL5\Scripts\Examples\OpenCL\ 폴더의 해당 하위 디렉토리에서 확인할 수 있습니다. OpenCL 프로그램의 소스 코드는 MQL5\Scripts\Examples\OpenCL\Double\Kernels 및 MQL5\Scripts\Examples\OpenCL\Float\Kernels 하위 디렉토리에 있습니다.

  • MatrixMult.mq5 - 전역 및 로컬 메모리를 사용한 행렬 곱셈의 예
  • BitonicSort.mq5 - GPU에서 배열 요소의 병렬 정렬 예
  • FFT.mq5 - 고속 푸리에(Fourier) 변환 계산의 예
  • Wavelet.mq5 - Morlet 웨이블릿을 사용한 데이터의 웨이블릿 변환 예.

OpenCL의 소스코드를 별도의 CL 파일에 작성하는 것이 좋으며, 이 소스 코드는 나중에 리소스 변수를 사용하여 MQL5 프로그램에 포함될 수 있습니다.

선언

   class COpenCL

제목

   #include <OpenCL\OpenCL.mqh>

클래스 메서드

Name

설명

BufferCreate

지정된 인덱스에 OpenCL 버퍼를 생성하기

BufferFree

지정된 인덱스에서 버퍼 삭제

BufferFromArray

값 배열에서 지정된 인덱스에 버퍼를 생성하기

BufferRead

지정된 인덱스의 OpenCL 버퍼를 배열로 읽기

BufferWrite

지정된 인덱스의 버퍼에 값 배열 쓰기

Execute

지정된 인덱스로 OpenCL 커널 실행

GetContext

Returns handle of the OpenCL 컨텍스트의 핸들을 반환

GetKernel

지정한 인덱스에서 커널 개체의 핸들을 반환

GetKernelName

지정한 인덱스에 있는 커널 개체의 이름을 반환

GetProgram

OpenCL 프로그램의 핸들을 반환

Initialize

OpenCL 프로그램을 초기화

KernelCreate

지정된 인덱스에서 OpenCL 프로그램에 진입점을 생성

KernelFree

지정된 인덱스에서 OpenCL 시작 함수를 제거

SetArgument

지정된 인덱스에서 OpenCL 함수의 매개 변수를 설정

SetArgumentBuffer

지정된 인덱스에서 OpenCL 함수의 매개변수를 설정

SetArgumentLocalMemory

지정된 인덱스에서 OpenCL 함수의 매개변수를 설정

SetBuffersCount

버퍼 수를 설정

SetKernelsCount

커널 개체의 수 설정

Shutdown

OpenCL 프로그램 언로드

SupportDouble

장치에서 부동 소수점 데이터 유형이 지원되는지 확인