크로노스 그룹 SYCL 1.2 표준 발표

OpenCL 1.2 환경에서 C++을 코드를 이종 컴퓨팅에서 사용할 수 있어

2015년 5월 11일, IWOCL 컨퍼런스, 스탠포드 대학, 미국 캘리포니아, - 하드웨어 및 소프트웨어를 선도하는 산업계 표준화 콘소시엄인 크로노스 그룹은 SYCL™ 1.2 표준을 인준과 공개한다고 발표하였다. SYCL은 OpenCL™ 프로그래밍을 표준 C++ 스타일로 개발하여 다중 플랫폼에서 활용할 수 있도록 해 준다. 다수의 벤더가 지원하는 SYCL 1.2 표준은 무료 로열티로 사용할 수 있고, 표준 문서와 표준 인증 테스트 소프트웨어, 그리고 구현 기업을 위한 Adopter 프로그램을 함께 공개 하였다. 관련 자료는 www.khronos.org/opencl/sycl 에서 다운로드 받을 수 있다.

SYCL 단일 소스 프로그래밍은 하나의 소스 파일에 동일한 템플릿을 사용하여 OpenCL 가속을 지원하는 호스트와 커널 코드를 함께 담을 수 있다. 즉, 예를 들면, 하나의 코드로 CPU와 병렬 GPU에서 동시에 사용할 수 있다. 개발자는 OpenCL C 보다 높은 수준에서 프로그래밍이 가능하고, 동시에 OpenCL C/C++ 로 개발된 라이브러리나 OpenMP와 같은 프레임워크와 연동하여 사용할 수 있다. SYCL은 템플릿과 람다 함수가 포함되어 높은 수준의 응용 소프트웨어 개발을 지원하여, OpenCL 1.2 이 사용 가능한 다양한 환경에서 최적화된 가속을 지원하는 깔끔한 코딩을 가능하게 해 줄 것이다.

 “SYCL은 완전히 새롭게 진화한 OpenCL 커널 언어로, SYCL과 OpenCL C++ 커널 언어가 통합되고, 서로 영향을 주면서 진화하는 과정에서 많은 교육과 기술적 진보를 이루었다” SYCL 워킹그룹의 의장이며 CodePlay의 CEO인 Andrew Rechards는 이번 발표의 의미를 설명하였다. 또한 “C++ 프로그래밍 기술은 OpenCL 응용에 병렬 소프트웨어의 적용성을 크게 높여 주어 사용성과 재사용성을 높여 줌으로써 고성능의 이식성을 제공해 줄 것이다” 라고 설명했다.

OpenCL의 상호운용성 기능은 SYCL로 하여금 응용이 SYCL이 OpenGL, DirectX와 연결하여 사용할 수 있도록 해주고, 앞으로 발표될 Vulkan API와도 메모리를 복사하는 부하 없이 운용할 수 있도록 해 줄 것이다. 그 결과로 SYCL은 단순화된 에러 처리와 호스트와 디바이스에 동시에 수행하는 효율적인 계산과 통신을 제공해 준다.

SYCL 1.2는 현재 존재하는 혹은 새로운 C++ 컴파일러와 다양한 벤더가 제공하는 OpenCL 1.2 상위 계층의 구현과 함께 작동하도록 구현할 수 있다. SYCL 1.2는 C++11 표준 위에 개발되었으며, C++14를 추가로 지원하고 C++17 병렬 STL 프로그램 역시 추후 OpenCL 디바이스에서 가속될 수 있도록 지원할 예정이다. SYCL 1.2는 또한 Khronos SPIR™ 1.2 포터블 바이너리 포맷 상에서 개발되어, OpenCL과 SPIR 워킹 그룹에서의 작업과 협력을 통해 시너지를 낼 것으로 기대되며, OpenCL 2.1과 SPIR-V™ 과 같은 차기 버전의 OpenCL 기능을 지원하게 될 것이다.

C++ 표준화기구는 C++17을 위한 새로운 병렬 STL 표준화 작업을 진행 중이다. 이를 지원하기 위하여, 크로노스 그룹은 오픈 소스 프로젝트를 출범하여 SYCL 위에서 병렬 STL을 지원하고, OpenCL 장치에서 실행될 수 있도록 하고 있다. 이 프로젝트는 다음 사이트에서 참여할 수 있다. https://github.com/KhronosGroup/SyclParallelSTL

IWOCL 2015에서 SYCL 관련 행사
크로노스 그룹은 IWOCL 2015, 3rd International Workshop on OpenCL 행사에 관련 발표회를 갖는다. IWOCL은 OpenCL 개발자, 연구자 및 제품 공급자의 커뮤니티 미팅으로 OpenCL의 활용과 표준의 발전에 대한 논의를 하는 행사이다. 이 행사에 대한 상세한 정보는 www.iwocl.org 에서 얻을 수 있다. 크로노스 행사는 다음과 같다.
May 12, 9:30AM: in-depth tutorial “Khronos SYCL for OpenCL”
May 12, 3:30PM: a FREE “Khronos Developer Feedback and Panel Discussion” covering
                            OpenCL 2.1, SYCL 1.2 and SPIR
May 13 12:10PM:  SYCL working group chair Andrew Richards will be presenting on SYCL 1.2.

Industry Support for SYCL
 “고급 프로그래밍 언어가 OpenCL 디바이스의 엄청난 계산 능력을 사용할 수 있도록 한 혁신을 기쁘게 생각한다. 개발자들에게 단일-소스 C++ 프로그래밍 모델을 통해 여러 벤더의 장치에서 실행할 수 있도록 하는 개방형 표준을 제공한다는 의미가 있다. 우리는 미래에 이런 트랜드가 계속 될 것으로 기대한다”. AMD의 Senior Director Greg Stoner.

 “Codeplay 사는, 소프트웨어 개발자가 개방형 표준으로 작업하는 것이 매우 유리하다고 믿고 있다. 그 이유는 개발자에게 고객에게 제품을 공급하기 위해 필요한 엄청난 융통성을 제공해 주기 때문이다. 동시에 고객들은 고성능의 소프트웨어와 낮은 전력소모를 통해 어디서든 사용할 수 있는 장치를 요구하고 있다. 우리는 이런 요구를 만족시키면서 OpenCL의 전체 성능과 기능을 활용할 수 있도록 하는 SYCL 표준을 통해 C++ 개발자들에게 제공해 주기 위해 최선을 다하고 있다.” Maria Rovatsou, Principal Software Engineer, SYCL technologies, Codeplay

 “Imagenation 사는 GPU 컴퓨팅과 이동 컴퓨팅관련 표준화 작업에 협력할 것임은 약속한다. 우리 회사의 PowerVR GPU 상에서 SYCL이 실행되는 것을 기쁘게 생각하며, 확대된 GPU 가속 컴퓨팅의 성능과 기능은 수많은 모마일 앱 개발자들에게 제공할 수 있게 된 것을 환영한다” Peter McGuinness, director of Multimedia Technology Marketing, Imagination Technologies.

 “Qualcomm 은 모바일 개발자가 OpenCL 을 지원하는 GPU에서 프로그래밍을 C++을 활용할 수 있도록 하는 SYCL 1.2 표준 제정에 함께 참여하여 작업해 왔다. SYCL 1.2는 host/device경계를 뛰어넘는 포터블 라이브러리의 개발을 가능하게 하고, 고급 C++ 추상화를 Snapdragon™ processors 가 탑재된 모바일 장치에서 유연하게 활용할 수 있을 것으로 기대한다”.  Eric Demers, vice president of GPU hardware at Qualcomm Technologies, Inc.

 크로노스 그룹 소개
크로노스 그룹은 산업계의 컨소시엄으로서, 병렬 컴퓨팅, 컴퓨터 그래픽스, 컴퓨터 비전, 센서 처리와 동적 미디어 등에 대한 저작과 가속을 위한 개방형 표준을 제정하고 있다. 크로노스의 표준에는 Vulkan™, OpenGL®, OpenGL® ES, WebGL™, OpenCL™, SPIR™, SYCL™, WebCL™, OpenVX™, OpenMAX™, OpenVG™, OpenSL ES™, StreamInput™, COLLADA™ 및 glTF™  등이 있으며, 회원사로 참여하면 표준의 제정에 기여하고, 관련 투표권을 갖게 되며, 일반에 공개되기 앞서 표준 문서에 접근할 수 있는 권리를 갖게 된다. 이를 통해 회원사는 다른 기업에 앞서 관련 제품을 개발하고 생산할 수 있는 기회를 가질 수 있다. 상세한 정보는 www.khronos.org 에서 얻을 수 있다.

###

Khronos, Vulkan, DevU, StreamInput, SPIR, SPIR-V, SYCL, WebGL, WebCL, COLLADA, OpenKODE, OpenVG, OpenVX, EGL, glTF, OpenSL ES 및 OpenMAX 는 Khronos Group Inc. 의 등록상표입니다. ASTC는 ARM Holdings PLC의 등록상표입니다. OpenCL 은 Apple Inc.의 등록 상표이며 OpenGL은 Silicon Graphics International의 등록 상표이며, OpenGL ES and OpenGL SC 로고는 Silicon Graphics International 상표이며, 크로노스 그룹에 라이선스 허여되었습니다. 기타 회사명, 제품명 등은 각 상표를 보유하고 있는 기업의 등록 상표 입니다.