크로노스그룹, OpenCL 2.2와 SPIR-V 1.2 표준 발표

시장의 의견을 반영하여 완성된 OpenCL 2.2 버전 표준을 발표, 인증 테스트도 오픈 소스로 함께 발표

2017년 5월 16일, 캐나다 토론토에서 개최된 IWOCL 2017 행사에서 하드웨어 및 소프트웨어 기업 표준화 컨소시엄인 Khronos™ Group은 OpenCL™ 2.2 표준의 최종판을 공식 배포하였다. 잠정 표준을 공개하여 산업계의 의견을 수렴하는 과정을 거쳐 이번에 최종적으로 표준을 공개하는 이 표준은, 크로노스 그룹 최초로 표준과 인증 테스트의 전체 소스를 GitHub에 공개함으로써, 개발자들의 참여를 더욱 확대하였다. 이와 함께, 이전 버전 (1.2, 2.0 및 2.1)의 인증 테스트 소스 역시 GitHub를 통해 공개 하였다.  Windsor Testing Framework 을 함께 공개하였는데 이 도구를 사용하면 개발자는 쉽게 OpenCL 인증 테스트 소프트웨어를 자신의 시스템에 설치하고 설정할 수 있다.

새롭게 발표된 OpenCL 2.2에는 개발자들의 요구 사항을 대거 반영하였다. 새 표준에 들어간 OpenCL C++ kernel 언어는 병렬 처리 프로그래밍의 생산성을 크게 향상시켜 줄 것으로 기대된다. 이번에 OpenCL 2.2와 함께 발표되는 SPIR-V 1.2는 크로노스 그룹에서 제정한 중간표현 언어로 OpenCL C++ 커널 언어를 모두 지원한다. OpenCL 2.2의 완성은 SYCL 2.2에 대한 지원을 강화하게 된다. 이를 통해 하나의 C++ 소스 코드 프로그래밍을 통해 모든 플랫폼에서의 실행 및 가속을 할 수 있게 된다.

크로노스 그룹의 회장이자, OpenCL 워킹그룹의 의장인 닐 트레빗 회장은, “OpenCL 2.2 의 완성을 통해 OpenCL 표준에 C++을 첫번째 언어로 사용하는 시스템으로 만들겠다는 약속을 지키게 되었다. OpenCL 워킹 그룹은 SYCL과 함께 계속된 작업을 통해서 표준 ISO C++과 함께 병렬 C++ 프로그래밍을 단일 소스로 통합할 수 있게 되어 임베디드 비전, 추론 엔진과 같은 새로운 시장에서 기회를 갖게 될 것이다. 또한 Vulkan API와의 통합에도 노력을 경주하고 있다. 이를 통해 그래픽스와 컴퓨팅을 하나의 API로 통합할 수 있게 될 것이다.”

크로노스는 이번에 University of Toronto에서 개최되는 IWOCL 2017 Conference 에서 새로운 표준을 발표하게 된 것을 기쁘게 생각하며, 5월 19일 에는 관련된 4개의 튜로리얼과 기술 세션, 패널 토의, 포스터, 데모, 대회 만찬과 네트워킹 이벤트를 개최한다.  크로노스 그룹과 크로노스 그룹의 회원사들은 IWOCL 행사의 주요 스폰서로 참여하고 있다.

새로운 OpenCL 2.2와 SPIR-V 1.2 표준에 대한 상세 정보는 크로노스 홈페이지를 참조하기 바란다. www.khronos.org.

OpenCL 2.2 소개

OpenCL 2.2 표준에는 C++14 표준의 일부분을 선택하여 OpenCL C++ 커널 언어를 정의하였다. OpenCL C++ 에는 클래스, 템플릿, 람다 표현식, 오버로딩 함수와 함께 병렬 프로그래밍 생산성 향상을 위한 기능들이 제네릭 및 메타 프로그로밍을 통해 포함되었다.

OpenCL 라이브러리 함수를 통해 C++ 언어의 이점을 최대한 활용할 수 있으며, 안전성을 향상시켜주고, 특히 어토믹 함수, 반복자, 이미지, 샘플러, 파이프, 디바이스 큐 등을 이용할 때 불확실한 작동을 최소화 해 준다.

파이프 저장소는 OpenCL 2.2에 새롭게 정의된 디바이스 자료형으로 FPGA 구현에 매우 유용하게 사용된다. 컴파일시에 연결의 크기와 유형을 결정하여, 커널 간의 통신에서 디바이스를 효과적으로 사용할 수 있게 해 준다.

OpenCL 2.2 에 새로운 기능으로는 생성되는 코드의 최적화가 향상되었다는 점이다. 응용 프로그램개발에서 SPIR-V 컴파일시에 결정할 수 있는 특수 상수값을 지정할 수 있고, 새로운 쿼리 기능을 통해 전역 개체의 프로그램 스코프의  논 트리비얼 생성자와 삭제자를 미리 찾을 수 있고, 사용자 컬백 함수가 프로그램 배포할 때 설정할 수 있게 되었다.

SPIR-V 1.2 소개

SPIR-V (표준 중간 표현 언어)는 최초의 개방형 표준으로, 이종-API간 중간 표현언어로 병렬 컴퓨팅과 그래픽스에 사용된다. 단지 OpenCL C++  커널 언어로만 지원될 뿐 아니라, 워크 그룹 크기의 OpenCL 2.2 에서의 파라메터의 키 튜닝을 런타임에 할 수 있도록 하는 특별한 기능이 추가되었다.

SYCL 2.2 소개

SYCL(사이클 혹은 시클로 발음)은 개발자가 쉽게 C++ 소프트웨어를 OpenCL 장치에서 가속할 수 있도록 해 준다. SYCL은 인공지능 프레임웍에서 사용되는데, 그 이유는 단일 소스 프로그램을 이용해 복잡한 학습 그래프를 구축하여 가장 효율적인 가속 방식을 찾아내기 위함이다. SYCL 2.2에는 OpenCL 2.2를 SYCL 표준에서 활용할 수 있는 기능이 추가되었다.

SYCL을 위한 오픈 소스 C++17 병렬 STL은 크로노스 그룹의 주관으로 개발되어, 차기 C++ 표준이 OpenCL 2.2 기능을 지원할 수 있도록 해 준다. 여기에는 가상 메모리, 제네릭 포인터와 Device-side enqueue가 포함된다.

OpenCL C++과 SYCL 사이에, 두개의 C++ 접근 방식을 개발자가 선택할 수 있도록 해 준다. 디바이스 쪽을 커널 소스 코드와 호스트 코드를 따로 개발하고자 하는 개발자에게는 C++ 커널 언어가 최상의 선택이다. 이 접근은 현재 주로 사용되는 OpenCL C와 그래픽스 소프트웨어에서 사용되는 쉐이더와 같은 접근 방법이다. 다른 방법으로는 일반적으로 ‘단일 소스’ C++  커널 언어로 이 방식은 SYCL, CUDA, OpenMP 및 C++17 Parallel STL에서 사용되는 방식이다. SYCL 과 C++ 커널 언어 두개 방식을 모두 지원함으로써, 크로노스 그룹은 개발자에게 최대의 선택을 제공해 주며, 동시에 두개의 표준이 협력적인 방식으로 사용될 수 있도록 하도록 해 준다.

OpenCL 2.2에 대한 사업계의 지원

 “Imagination Technologies는 이종 프로세싱과 GPU 컴퓨팅을 위한 새로운 표준을 지원할 것을 약속한다. GPU 컴퓨팅 프로그래밍 모델을 발전시키는 것은 산업계에 핵심적인 일로, 크로노스 그룹은 이러한 노력에 중심 역할을 해왔다. 이번에 OpenCL 2.2와 SPIR-V 1.2 표준의 발표를 통해 큰 동력을 얻게 되었다. 우리의 고객들은 GPU에서의 향상된 컴퓨팅 기능을 요구해 왔으며, 우리 회사에서 새롭게 발표한 PowerVR Series8XT 코어는 OpenCL 2.2 를 지원할 것이다.” Graham Connor, senior director, Imagination Technologies

Vincent Hindriksen, founder and managing director of StreamHPC는 “우리는 OpenCL C++커널 언어가 OpenCL 표준의 일부가 된 것을 매우 기쁘게 생각한다. 이는 큰 성취이며, OpenCL 이 계속 진보하고 있음을 의미한다. OpenCL 2.2 인증 테스트의 개발과 OpenCL C++ 표준의 제정에 도움을 준 후, 우리 팀은 OpenCL C++을 OpenCL C 대신 사용하는 것이 소프트웨어의 품질을 높이고, 유지 보수에 필요한 노력을 줄여 주며, 시장에 출시를 빠르게 하는데 크게 기여한다고 믿게 되었다. SPIR-V가 컴파일러 생태계에 큰 영향을 미치며 새로운 OpenCL 커널 언어들이 나타나게 할 것으로 기대하고 있다.”

“우리 윈저 대학은 자동차 연구와 이종 컴퓨팅에 OpenCL을 활용하는데 참여해 왔고,  또한 소프트웨어 개발과 테스트 프레임웍 개발을 통해 개발자들에게 핵심적인 도구들을 제공해 왔다. 우리는 여러 크로노스 그룹의 아카데미 멤버들과 함께 크로노스 그룹의 표준화 노력에 함께 할 것이며, 이번 IWOCL 2017 행사에 함께하는 것을 자랑스럽게 생각한다” Robert Kent, Computer Science, University of Windsor

“나는AI분야에서, OpenCL C++과 SPIR-V가 머신 러닝의 중요한 두개의 핵심 기술이 될 것이라고 본다. 캐나다에서 스타트업 기업을 하고 있는 사람으로서, 이들 기술 표준의 제정에 훌륭한 산업계 리더들과 함께 하는 크로노스 그룹에서 역할을 했다는 것에 큰 자부심을 느낀다. 또한 이런 이벤트가 토론토에서 개최된 것을 기쁘게 생각한다. 이제 OpenCL 기술에 익숙하지 않는 기업은 이제 기술 추세에 뒤쳐지는 기업이 될 것이다”  AJ Guillon, founder, YetiWare

상세 정보는 크로노스 홈페이지를 참조하기 바란다. www.khronos.org.

크로노스 그룹 소개

크로노스 그룹은 다양한 플랫폼과 장치에서 사용되는 병렬컴퓨팅, 그래픽스, 비전 및 신경망 분야의 저작 및 가속하는데 이용되는 개방형 표준을 제정하는 산업 컨소시엄입니다. 크로노스의 표준에는 Vulkan™, OpenGL®, OpenGL® ES, OpenGL® SC, WebGL™, SPIR-V™, OpenCL™, SYCL™, OpenVX™, NNEF™, COLLADA™, OpenXR™ 및 glTF™가 있습니다. 크로노스 그룹의 회원사가 되면 표준제정에 참여하고 기여할 수 있으며, 표준이 공개되기 전 여러 단계에서의 결정에 투표권을 행사할 수 있습니다. 표준이 공개되기 전에 표준안과 개발 중인 인증테스트 접근할 수 있기 때문에 경쟁자 보다 앞서 관련 가속 플랫폼 혹은 응용 제품들을 먼저 개발하고 시장에 출시할 수 있습니다. 

###

Vulkan is a registered trademark of The Khronos Group. Khronos, OpenXR, DevU, SPIR, SPIR-V, SYCL, WebGL, WebCL, COLLADA, OpenKODE, OpenVG, OpenVX, EGL, glTF, OpenKCAM, StreamInput, OpenWF, OpenSL ES, NNEF and OpenMAX are trademarks of the Khronos Group Inc. OpenCL is a trademark of Apple Inc. and OpenGL is a registered trademark and the OpenGL ES and OpenGL SC logos are trademarks of Silicon Graphics International used under license by Khronos. All other product names, trademarks, and/or company names are used solely for identification and belong to their respective owners.