크로노스그룹, 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.

크로노스그룹, 비전 처리를 위한 가속 표준 OpenVX 1.2 발표

뉴럴 네트워크 가속, 물체 인식, 이미지 분류, 조건형 그래프 처리를 비롯한 새로운 기능이 추가

안전이 중요한 시스템을 위한 비전 가속을 위한 OpenVX SC 도 함께 발표

2017년 5월 1일, 미국 캘리포니아주 산타클라라에서 개최된 Embedeed Vision Alliance Summit에서 크로노스 그룹은 OpenVX 1.2 표준을 공개하였다. Khronos Group은 전세계 소프트웨어 및 하드웨어 기업들의 컨소시엄으로 개방형 표준을 제정하고 있다. 이번에 새로운 버전이 발표된 OpenVX는 상위 계층의 그래픽 기반 응용프로그램 인터페이스(API)로 컴퓨터 비전 처리를 이종 플랫폼에서 수행할 수 있도록 해 주는 가속 표준으로 주로 모바일이나 임베디드 시스템을 대상을 한다. 이 표준은 이종 플랫폼에서의 운용이 가능하고, 로열티가 없으며, 전력 소비를 최소화 할 수 있어 얼굴, 신체, 제스처의 인식, 지능형 감시, 자율 주행 , 운전자 지원 시스템, 로봇 등에 활용될 것으로 기대된다. 이번에 1.2 버전을 통해 기능이 크게 확장 되어 조건부 실행, 물체 인식 및 분류 등이 가능해 졌다.

새롭게 발표된 1.2 표준과 함께 발표된 3개의 확장판 표준에는 최적화된 그래픽 실행 모델을 검증하고 이를 가져오고 내보내는 기능, 16비트 이미지 처리 기능 과 함께 신경망 가속 기능이 추가되었다. 가져오기/내보내기는 기능을 통해서 사용자는 자신을 실행 그래프를 오프라인으로 컴파일하여 저장한 후 이를 필요한 때에 가져와 실행할 수 있게 된다. 16비트 이미지 처리 기능은 부호화된 16비트 이미지를 처리하는 기능이며, 신경망 확장판은 OpenVX  그래프에 신경망 노를 추가하여, 컨볼류션, 디컨볼루션, 액티베이션, 정규화, 풀링, 소프트맥스 등 다양한 기능을 저전력 소모로 가속하여 물체를 검출하고 인식하는데 사용할 수 있게 되었다.

OpenVX 에서는 비전 처리와 메모리 모델을 그래프 연산으로 추상화 한다. 이는 OpenCL과 같은 계산 프레임워크에서의 모델보다 상위의 개념으로 이를 이용하면 혁신적이며 효율적인 실행이 다양한 하드웨어에서 가능해 짐과 동시에 비전 응용의 개발에서 성능 호환성과 이식성을 제공하는 일관성이 있는 API를 제공하게 된다. 이러한 OpenVX 의 융통성을 통해 다양한 시스템에서 최적화된 응용을 다양한 수준의 전력소비와 성능에 맞추어 개발함으로써 배터리 소모가 중요한 웨어러블 비전 장치에서의 응용 개발에 효과적이다. 이번에 발표된 OpenVX 1.2 표준은 이전 버전에 다음과 같은 기능이 추가되었다.

  • 물체 검출과 인식을 위한 특징 검출 기능
  • 특징 세트에 기반한 검출과 인식을 위한 분류 연산
  • 영상 처리 연산 범위의 확장
  • 노드의 조건부 수행을 통해 OpenVX 그래프의 복잡한 연산을 표현함으로써 제어 구조를 확장하고 융통성을 향상

고수준의 운전자 지원 시스템(ADAS), 자율 주행 자동차, 의료 및 공정제어 응용에서 비전 프로세싱은 중요한 요소로 자리를 잡았고, 안전에 민감한 응용이 되었다. 오늘 발표된 OpenVX SC 1.1은 OpenVX 1.1을 개선하여 안전의 중시되는 시스템에서 소프트웨어 검증 및 인증 요구에 맞도록 개선한 것으로 높은 수준의 신뢰성을 요구하는 시장의 요구사항을 반영한 표준이다. OpenVX SC는 “실행 기능 세트”를 런타임에만 정의하는 가져오기/내보내기 기능을 포함하고 있다. 이를 통해 개발자는 그래프 구축 기능과 개발 도구를 응용 구현에 사용할 수 있게 되어, 검증되고 컴파일 된 이진 형식의 그래프를 만들어 이 “실행” 구현을 대상 하드웨어 상에서 구현하고 실행할 수 있게 된다.

크로노스 그룹의 OpenVX  워킹그룹의 Frank Brill 의장은 산타클라라에서 개최된 임베디드 비젼 서미트에서 , “OpenVX 컴퓨터 비전 라이브라러ㅣ 표준은 이식성과 코드 효율성을 갖고 있다” 고 언급했다. 이 행상에 대한 상세 정보는 다음 사이트를 참조하기 바란다. https://www.embedded-vision.com/summit/openvx-computer-vision-library-standard-portable-efficient-code.

크로노스 그룹은 이 행사에서 신경방 가속을 위한 OpenVX  워크샵을 함께 개최하였다. (현지시간 5월3일 오전9시부터 오후5시) 이 행사에서는 그래프 기반 API 에서의 특징 추적과 신경방을 활용한 비전 알고리즘의 구현에 대해 설명한다. 상세한 정보는 아래 링크를 참조하기 바란다. https://www.embedded-vision.com/summit/khronos-openvx-workshop

OpenVX  표준에 대한 문서 및 어댑터 프로그램에 대해서는  www.khronos.org/openvx를 참조하기 바란다.

OpenVX  표준에 대한 산업계의 지원

Greg Stoner, senior director, Radeon Open Compute, Radeon Technologies Group, AMD. “컴퓨터 비전 응용은 과학 공학 분야와 소비자 응용 분야에서 그 중요성이 크게 증대되고 있다. AMD는 크로노스의 OpenVX 표준화에 대한 노력에 박수를 보내며, OpenVX  표준이 컴퓨터 비전 응용을 가속하고, 개방형 무료 표준을 제공함으로써 큰 기여를 하고 있다고 생각한다. AMD는 이들 표준을 활용한 오픈 소스 딥 러닝 라이브러리인 MIOpen을 통해 기계 지능 구현의 가속 기반을 만들 것이다” 라고 말했다.

Steve Roddy, senior group director, Tensilica marketing at Cadence는 “Cadence는 OpenVX 표준의 개발에 적극적으로 참여해 왔으며, OpenVX가 신경망 인식 기능과 핵심 영상 처리 기능을 확장하는 것에 협력해 왔다. 새롭게 개발된 이 기능을 통해 OpenVX 는 임베디드 시스템에서 비전 처리를 다양하게 제공할 수 있는 플랫폼이 되었다. 우리 Cadence의 Tensilica 비전 P-시리즈  DSP는 OpenVX 1.1을 지원하는 최초의 스스템으로서, 1.2표준 역시 빠른 시일 내에 지원하게 될 것으로 확신한다” 라고 밝혔다.  

Chris Longstaff, Imagination’s senior director of product and technology marketing for PowerVR  는 “OpenVX 는 비전 응용 분야에서 실제 구현에 가장 선호되는 프레임워크로 자리를 잡았다. 우리 Imaginatino 은 OpenVX와 신경망 확장판을 자사의 PowerVR GPU에 지원할 것이다. 고객은 이들 OpenVX 1.2기능과 확장판을 이용에 큰 기대를 하고 있다. 특히 텐서 지원, 신경망 확장과 그래프 최적화 기능은 혁신적인 비전 응용을 개발하는데 빠르고 쉬운 길을 보여 주 것으로 기대한다” 라고 밝혔다.

Alan Rankin, Product Line Manager of ADAS Processors at Texas Instruments는 “TI는 OpenVX에 대한 지원을 강화하고 이를 통해 자동차 시장의 고객들이 자율 주행 응용과 ADAS를 개발하는데 도움을 주고 있다. 이 영역에서 사용이 편리한 플랫폼을 제공하고자 하는 계속된 노력의 일환으로 TI Driver Assist (TDAx) SoC 라인 등에 이들 이종 플랫폼과 멀티 코어 지원을 위해 노력을 하고 있다. TI의 Vision SDK는 곧 OpenVX  인증을 통과하고 이를 고객에게 제공할 예정이다” 라고 밝혔다.

Weijin Dai, Executive Vice President, Chief Strategy Officer, VeriSilicon 은 “VeriSilicon은 산업 표준으로 서 OpenVX를 환영한다. 15개의 추가 표준 커널과 함께 우리 회사의 Vision Image Processor (VIP) IP와 파트너 솔루션을 제공하고 되었다. OpenVX 1.2는 하드웨어 최적화와 프로그래밍 비전, 최적화된 신경망 기능을 우리 제품에 추가하는데 중요한 마일스톤 역할을 하게 될 것이다. 2015년 처음 발표된 이후 지금까지 ADAS 및 보안 시스템, 산업 시스템에 우리 제품이 상용으로 활용되고 있다. 크로노스 그룹의 이사 회원으로서, VeriSilicon 은 OpenVX 1.2 표준의 Spec. Editor 역할을 맡고 있는 것을 영광으로 생각하며, 이 표준에 세계적으로 보급되는데 함께 노력할 것이다. 또한 우리 회사는 다양한 워크샵을 이번 행사에서 개최하여 OpenVX 1.2 를 보급하는데 노력할 것이다.”

For more information about The Khronos Group visit Khronos.org.

크로노스 그룹 소개

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

###

Khronos, OpenXR, Vulkan, DevU, SPIR, SPIR-V, SYCL, WebGL, WebCL, COLLADA, OpenKODE, OpenVG, OpenVX, EGL, glTF, OpenKCAM, StreamInput, OpenWF, OpenSL ES, NNEF 및 OpenMAX 는 Khronos Group Inc.의 등록 상표입니다. OpenCL 은 Apple Inc.의 등록 상표입니다. OpenGL은 Silicon Graphics International의 등록 상표이며  크로노스 그룹에 사용이 허여 되었습니다. 기타 상품명, 등록상표와 회사명은 각각 소유권을 갖고 있는 기관이 관련 지재권을 소유하고 있습니다.