OpenCL 프레임 워크 : 귀하에게 적합합니까?

폭로: 귀하의 지원은 사이트 운영을 유지하는 데 도움이됩니다! 이 페이지에서 권장하는 일부 서비스에 대한 추천 수수료가 발생합니다.


OpenCL 또는 Open Computing Language는 다양한 컴퓨터 시스템에서 실행할 수있는 응용 프로그램을 구축하기 위해 독점적으로 설계된 소프트웨어 프레임 워크입니다. 크로스 플랫폼, 병렬 프로그래밍 응용 프로그램 개발을위한 개방형 표준으로, 수많은 오픈 소스 구현이 있습니다..

기본적으로 OpenCL은 코더가 제조업체, 프로세서 사양, 그래픽 장치 또는 기타 하드웨어 구성 요소에 관계없이 모든 장치에서 실행될 수있는 응용 프로그램을 만들 수 있도록 개발되었습니다. 즉, 개발자는 Windows PC에서 응용 프로그램을 빌드 할 수 있으며 Android 전화, Mac OS X 컴퓨터 또는 기타 병렬 처리 장치에서도 작동합니다. 물론 이러한 모든 장치는 OpenCL을 지원하고 적절한 컴파일러 및 런타임 라이브러리를 구현해야합니다..

OpenCL 응용 프로그램을 개발하는 데 사용되는 프로그래밍 언어는 C99 (이전의 C 프로그래밍 언어의 공식 정의)를 기반으로하는 OpenCL C입니다. OpenCL C는 CPU, GPU 및 하드웨어 가속기를 포함한 다양한 하드웨어 및 장치를 프로그래밍 할 수 있습니다.

역사

OpenCL은 Apple Inc에서 처음 개발 한 후 여러 주요 하드웨어 개발자의 의견을 반영하여 비영리 조직인 Khronos Group에 제안했습니다. Khronos Group은 OpenCL 표준을 완성하기 위해 여러 주요 기술 공급 업체의 적극적인 참여로 개방형 표준위원회를 만들었습니다..

기술 표준은 2008 년 말에 완결되었으며 2009 년 Apple은 Mac OS X Snow Leopard와 함께 OpenCL 1.0을 출시했습니다. 2008 년과 2009 년에 OpenCL은 공식적으로 AMD, NVIDIA 및 IBM에 의해 수용되었습니다..

2010 년과 2011 년에 여러 가지 새로운 기능과 개선 사항이 도입되었으며 2013 년에는 OpenCL 2.0이 출시되었습니다. 여기에는 공유 가상 메모리 지원, 중첩 병렬 처리 및 Android 용 클라이언트 드라이버 확장이 포함됩니다. 2015 년 후속 릴리스 인 Open CL 2.1은 OpenCL C 커널 언어를 OpenCL C로 대체했습니다.++.

온라인 자료

오늘날 컴퓨터 프로그래밍의 가장 큰 트렌드 중 하나 인 오픈 소스 인 새로운 프레임 워크로서 OpenCL에 사용자 및 멘토로 구성된 대규모 커뮤니티가 있다는 것은 놀라운 일이 아닙니다..

  • Khronos 리소스 페이지 : OpenCL 유지 관리를 담당하는 Khronos 그룹은 다양한 구현, 언어 바인딩 및 OpenCL 프로그래머가 사용할 수있는 많은 라이브러리 및 프레임 워크에 대한 정보를 포함하여 개발자를위한 많은 리소스 목록을 작성했습니다. 이 사이트에는 광범위한 온라인 교육 및 안내서 목록도 포함되어 있습니다..
  • 참조 카드 :이 편리한 참조 시트에는 API 안내서, 클래스 다이어그램, 공유 가상 메모리 명령 및 사용 가능한 프로그램 객체, 데이터 유형, 내장 함수 등을 포함하여 OpenCL에서 프로그래밍하는 데 필요한 모든 것이 포함되어 있습니다..
  • 인텔 OpenCL 포럼 :이 포럼 사이트는 주로 프로그래밍 조언을 찾고, 모범 사례를 논의하고, 아이디어를 공유하는 기존 OpenCL 개발자가 방문합니다..

튜토리얼

OpenCL에 사용할 수있는 몇 가지 온라인 자습서가 있으며, 일부는 오픈 소스 커뮤니티에서 작성했으며, 다른 일부는 OpenCL 표준에 기여한 많은 하드웨어 제조업체에서 개발했습니다. OpenCL은 고급 프로그래밍 도구이므로 대부분은 응용 프로그램 개발 경험과 일반적으로 C / C에 대한 지식이 있다고 가정합니다.++.

  • CodeProject의 OpenCL 자습서 :이 온라인 자습서 시리즈는 OpenCL 프로젝트에 대한 광범위한 배경, OpenCL 개발을 가능하게하는 적절한 소프트웨어 설치 가이드 및 OpenCL 프로그래밍의 모든 주요 영역에 대한 개별 강의를 제공합니다. 여기에는 몇 가지 예와 배경 정보에 대한 추가 링크가 포함됩니다.
  • CMSoft OpenCL 자습서 : CMSoft는 OpenCL 호환 GPU에서 작동하는 일반 사진 필터링 알고리즘의 구현, 비디오의 색상 추적, GPU를 사용하여 행렬을 곱하는 방법.
  • Intro OpenCL Tutorial : AMD의 하드웨어 아키텍트가 제작 한이 튜토리얼은 새로운 OpenCL 프로그래머를 위해 작성되었으며 OpenCL의 기본 사항을 안내하면서 많은 코딩 예제를 제공합니다..

서적

비교적 새로운 프레임 워크이기 때문에 OpenCL에 관한 책은 소수에 불과하며 대부분은 현재 버전 이전에 작성되었으므로 개발자가 사용할 수있는 최신 기능 중 일부는 다루지 않습니다. 그러나 이전 텍스트조차도 프레임 워크와 그 사용법에 대한 좋은 개요를 제공합니다. 위에 나열된 많은 온라인 리소스를 통해 최신 개발 내용을 쉽게 얻을 수 있습니다..

  • David Kaeli 등의 OpenCL 2.0을 사용한 이기종 컴퓨팅 :이 텍스트는 OpenCL 표준과 일반적인 병렬 프로그래밍 개념을 모두 다루고 있습니다. 공유 가상 메모리, 최적화 기술, 디버깅 및 다양한 컴퓨터 시스템에 작업을 분배하는 방법과 같은 주제를 탐색합니다. 여기에는 몇 가지 사례 연구와 예제 코드가 포함됩니다.
  • Munshi 등의 OpenCL 프로그래밍 안내서 :이 책은 실무 개발자를 위해 특별히 작성되었습니다. 버전 1.1 용으로 작성된 최초의 OpenCL 교과서 중 하나이므로 최신 개선 사항 중 일부를 다루지 않습니다. 그러나 여전히 OpenCL 아키텍처 및 용어, 기본 프로그래밍 기능 및 OpenCL C 용 언어 자습서에 대한 효과적인 개요를 제공합니다.이 텍스트에는 여러 사례 연구, 예제 및 온라인 소스 코드도 포함되어 있습니다..
  • Raymond Tay의 OpenCL Parallel Programming Development Cookbook :이 텍스트는 효과적으로 언어를 배우기 위해서는 접근 방식을 이해하고 그 뒤에있는 이론과 실제 응용 프로그램을 모두 이해해야합니다. 학습을 두 부분으로 나눕니다. 이 책의 전반부에서는 OpenCL 및 병렬 프로그래밍의 기본 사항을 다룹니다. 후반은 서로 다른 병렬 프로그래밍 기술을 보여주는 주요 알고리즘에 대한 탐구입니다..
  • Banger 및 Bhattacharyya의 예제 별 OpenCL 프로그래밍 :이 책은 병렬 프로그래밍 및 OpenCL의 주요 개념을 설명하기 위해 매우 간단한 예제를 사용하여 OpenCL 프로그래밍에 대한 “쉬운”안내서가되는 것을 목표로합니다..

결론

20 년 전 대다수의 컴퓨터 사용자가 모두 동일한 운영 체제를 실행하고 소수의 회사 만 CPU / GPU 장면을 지배했을 때 여러 플랫폼에 걸쳐 프로그래밍 할 수있는 능력은 우리 모두에게 사치였습니다 필요하지 않습니다. 그러나 모바일 기술의 출시와 Apple 및 Android의 등장으로 단일 생산자가 곧 다시 시장 점유율을 유지할 가능성은 거의 없습니다. 대신 소프트웨어 개발자는 오늘날의 이기종 환경에 적응해야합니다..

OpenCL은 이러한 전환의 주요 단계입니다. 개발자는 각 기술 변수에 대한 프로그래밍 대신 여러 플랫폼에 걸쳐 코드를 작성할 수 있습니다. 여러 하드웨어 및 소프트웨어 사양을 프로그래밍하기위한 단일 언어, 단일 프레임 워크, 단일 환경.

추가 자료 및 자료

코딩 및 개발자 리소스와 관련된 프로그래밍 가이드, 자습서 및 인포 그래픽이 더 있습니다.

  • C 개발자 리소스 : 시작하여 C 프로그래밍의 고급 영역으로 이동.
  • Cocoa and Cocoa Touch 소개 : Mac OS X 및 iOS 용 응용 프로그램을 만드는 API 배우기.
  • Java 소개, 학습 방법 및 리소스 : 대부분의 장치에서 사용 가능한 Java는 많은 플랫폼을 코딩하려는 경우 훌륭한 언어입니다..

어떤 코드를 배워야합니까?
어떤 코드를 배워야합니까?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map