OpenCL은 GPU 일반 컴퓨팅 API입니다. 그래픽 카드에서 범용 부동 소수점 연산을 위한 API입니다. 예를 들어 비디오 트랜스코딩의 경우 이 작업은 CPU에서 수행되는 것으로 나타났습니다. 요즘은 그래픽카드의 컴퓨팅 파워가 상대적으로 강해 이 작업을 전적으로 그래픽카드에 맡길 수 있다.
그래픽 카드를 호출하기 위해 프로그래머는 더 이상 이 작업을 고려할 필요가 없습니다. 왜냐하면 이미 만들어진 인터페이스가 있기 때문입니다. 프로그래머는 트랜스코딩 알고리즘만 처리한 다음 직접 처리하면 됩니다. OpenCL에서 미리 만들어진 명령어를 호출하면 작업이 자동으로 CPU에서 GPU로 전송됩니다.
OpenCL은 CPU, GPU 또는 기타 유형의 프로세서로 구성될 수 있는 이기종 플랫폼용 프로그램을 작성하기 위한 프레임워크입니다. OpenCL은 커널(OpenCL 장치에서 실행되는 기능)을 작성하기 위한 언어(C99 기반)와 플랫폼을 정의하고 제어하기 위한 API 세트로 구성됩니다. OpenCL은 작업 분할과 데이터 분할을 기반으로 하는 병렬 컴퓨팅 메커니즘을 제공합니다.
OpenCL은 3차원 그래픽과 컴퓨터 오디오에 각각 사용되는 두 가지 다른 개방형 업계 표준인 OpenGL 및 OpenAL과 유사합니다. OpenCL은 그래픽 생성 이상의 용도로 GPU 기능을 확장합니다. OpenCL은 비영리 기술 조직인 Khronos Group에서 관리합니다.
확장 정보
API의 주요 목적은 애플리케이션과 개발자에게 소스 코드에 액세스하거나 루틴의 세부 사항을 이해하지 않고도 루틴 세트에 액세스할 수 있는 기능을 제공하는 것입니다. 내부 작동. API에 의해 정의된 기능을 제공하는 소프트웨어를 이 API의 구현이라고 합니다. API는 인터페이스이므로 추상화입니다.
애플리케이션 프로그래밍 인터페이스라고도 알려진 애플리케이션 프로그래밍 인터페이스(영어: 애플리케이션 프로그래밍 인터페이스, 약칭: API)는 소프트웨어 시스템의 다양한 구성 요소를 연결하기 위한 계약입니다. 최근 소프트웨어의 규모가 점점 커지면서 복잡한 시스템을 작은 구성 요소로 나누어야 하는 경우가 많으며 프로그래밍 인터페이스의 설계가 매우 중요합니다. 프로그래밍 실무에서 프로그래밍 인터페이스 설계는 먼저 소프트웨어 시스템의 책임을 합리적으로 나누어야 합니다. 좋은 인터페이스 디자인은 시스템의 다양한 부분의 상호 의존성을 줄이고 구성 요소 단위의 응집력을 향상시키며 구성 요소 단위 간의 결합 정도를 줄여 시스템의 유지 관리 및 확장성을 향상시킬 수 있습니다. [1]
참조 출처?OpenCL_바이두 백과사전