크로노스 그룹 이종 플랫폼에서의 병렬처리를 위한 표준  OpenCL 2.1과 SPIR-V 1.0 표준 발표

SPIR-V 중간 표현 언어는 OpenCL 2.1과 추후 발표될 Vulkan API의 핵심 기능으로
오픈 소스로 발표된 도구들이 다양한 컴퓨팅 언어와 프레임워크에서 SPIR-V 사용을 촉진할 것으로 기대

2015년 11월 16일, Supercomputing 2015, 미국 텍사스 주 오스틴, - 하드웨어 및 소프트웨어를 선도하는 산업계 표준화 컨소시엄인 크로노스 그룹은 이종 병렬처리를 위한 표준인 OpenCL™ 2.1과 SPIR-V™ 1.0 표준의 인준을 마치고 이를 공개한다고 발표하였다. 새롭게 발표된 SPIR-V는 이종-API 중간표현 언어로서, OpenCL 2.1 표준을 따르는 코어에서 사용할 수 있다. 크로노스 그룹은 표준 문서와 함께 오픈 소스 유틸리티들과 확장판 등을 함께 공개하여 OpenCL 1.2혹은 2.0에서 SPIR-V를 사용할 수 있으며, 추후 발표될 Vulkan™ 그래픽스 API에서도 사용할 수 있다. 관련 자료는www.khronos.org/opencl/https://www.khronos.org/spir/ 에서 다운로드 받을 수 있다.

SPIR-V 1.0은 크로노스 그룹에서 개발한 중간표현 언어 표준으로서 그래픽스 쉐이더와 커널 컴퓨팅을 원천적으로 지원하는 유일한 언어이다. 정형화된 컴파일 타겟을 제공하게 됨에 따라, SPIR-V는 컴파일러 부분과 그래픽스-컴퓨팅 부분을 분리할 수 있게 되어 고수준의 프로그래밍 언어와 전처리 프레임워크를 사용한 코드를 Vulkan 혹은 OpenCL 드라이버에서 효과적으로 수행할 수 있게 되었다. 더 이상 소스 컴파일러를 탑재할 필요성이 없기 때문에 GPU 드라이버의 크기를 크게 줄일 수 있고 다양한 전처리 언어의 사용이 가능해 졌다. 또한 표준화된 중간 표현언어는 커널 프로그램의 지재권을 보호해 줄 수 있으며, 커널에 프로그램을 로딩하는 시간을 크게 줄여 줄 수 있고, 개발자는 프로그램 언어 처리기를 활용할 수 있게 되어 커널 프로그램의 신뢰성과 이식성을 다양한 실행환경에서 확보 받을 수 있게 되었다.

“SPIR-V가 Vulkan과 OpenCL에 사용됨에 따라 그래픽스 및 컴퓨팅 생태계의 모습이 근본적으로 변화하게 될 것이다. 특히 다양한 언어와 전처리front-end 미들웨어를 사용할 수 있게 됨에 따라 하드웨어 커뮤니티 쪽에서는 백엔드 back-end 드라이버의 개발과 최적화에 집중해야 할 것이다. OpenCL 2.1 은 SPIR-V의 강점을 개발자에게 가능한한 빠르게 사용할 수 있도록 해줄 것이며, 동시에 OpenCL C++ 커널 언어의 개발을 2016년 중반까지 마치기 위해 노력하고 있다.” Neil Trevett, president of the Khronos Group and chair of the OpenCL working group and vice president at NVIDIA.

OpenCL 2.1과 SPIR-V 1.0 표준 발표와 동시에 크로노스 그룹은 관련 유틸리티 오픈 소스를 GitHub에 공개하여 SPIR-V의 활용을 촉진하고 있다.

  • LLVM과 SPIR-V 간의 양방향 번역기를 제공하여 툴 체인에서 두 중간 표현언어를 유연하게 활용할 수 있도록 하였다.
  • OpenCL to LLVM 컴파일러를 통해 SPIR-V 코드를 위 번역기를 통해 생성할 수 있다.
  • SPIR-V 어셈블러와 디스어셈블러

위와 같은 Khronos Group의 활동 외에도, 주요한 오픈 소스 커뮤니티에서는 SPIR-V 를 사용하는 활동이 이미 시작되었다. 좀더 상세한 정보는 다음 링크를 참조하기 바란다. https://www.khronos.org/spir/resources

새롭게 발표되는 OpenCL 2.1에는 SPIR-V 지원 뿐만 아니라 다음과 같은 기능이 추가되었다.

  • 서브그룹은 하드웨어 스레딩을 좀더 섬세하게 제어할 수 있게 되고, 추가적으로 서브그룹 쿼리와 연산을 통해 프로그래밍 유연성을 크게 향상시켜 줄 것이다.
  • clCloneKernel 은 커널 객체를 복사할 수 있는 기능으로 래퍼Wrapper 클래스에서 복사 생성자의 안정한 구현을 가능하게 해 준다.

OpenCL 2.1과 SPIR-V에 대한 산업계의 지원

“AMD는 OpenCL™ 에 중간 표현 언어가 핵심 요소로 포함 된 것에 대해 크게 기뻐하고 있다. 우리는 고수준의 프로그래밍 언어분야의 새로운 혁신의 문을 열었다고 믿는다. 이를 통해 OpenCL을 지원하는 장치의 계산 능력에 새로운 도약을 가져올 것으로 기대한다. 이번 표준화를 이루어낸 컴퓨팅 및 그래픽스 커뮤니티 양쪽 모두에서 사용할 수 있는 공통의 표준을 만들어 낸 노력에 찬사를 보낸다” Greg Stoner, senior director at AMD

“SPIR-V와 OpenCL 2.1의 발전에 참여하게 된 것을 기쁘게 생각한다. 또한 이를 통해서 C++ 응용 개발자들은 SYCL™ 프레임워크를 통해 개발된 C++ 프로그램을 OpenCL 2.1을 지원하는 장치에서 사용할 수 있게 되었다.” Andrew Richards, CEO of Codeplay

“높은 계산 성능을 제한된 전력에서 구현하는 것은 임베디드 및 모바일 시스템에서의 응용에 핵심적인 새로운 조류다. 이를 달성하기 위해 이종 컴퓨팅은 아주 중요하며, 크로노스 그룹이 OpenCL 2.1과 SPIR-V표준을 통해 이를 더욱 앞당길 수 있게 되었다고 생각한다. GPU 컴퓨팅은 고효율의 대규모 병렬 컴퓨팅의 기반과 같으며, 새로운 표준은 좀더 다양하고 넓은 영역의 플랫폼에서 훌륭한 앱과 기능들을 빠르게 구현할 수 있도록 해 줄 것이다” . Peter McGuinness, director of multimedia technology marketing, Imagination Technologies

“Mobica는 최근 발표하고 있는 Khronos Group의 그래픽스 및 컴퓨팅 표준들에 대해 크게 흥분하고 있다. OpenCL 2.1과 Vulkan에서 동시에 사용할 수 있는 중간 표현 언어는 정말 놀라운 뉴스이다” Jim Carroll, CTO Mobica

OpenCL at Supercomputing 2015
OpenCL 관련된 행사가 Supercomputing 2015 (텍사스 오스틴, 11월15~20일)에 계획되어 있다.

OpenCL Booth #285
OpenCL 부스를 방문하면 OpenCL, SYCL, SPIR 관련된 대화를 나눌 수 있으며, 관련 기념품을 받을 수 있다.

Tutorial: Portable Programs for Heterogeneous Computing: A Hands-on Introduction
튜토리얼: 이종 컴퓨팅을 위한 포터블 프로그램: 실습을 통한 소개
11월 16일 월요일 오전 8:30 ~ 5:00 | Room 17B
이 튜토리얼은 수강생들이 자신의 랩탑(Windows, Linux or OS/X)을 이용하여 원격 OpenCL 서버에 접속하는 방식으로 강의와 실습을 제공한다. 상세한 정보는 More information and calendar links

OpenCL BOF: Flocking Together: Experience the Diverse OpenCL Ecosystem
OpenCL BOF: 모임 – OpenCL 의 생태계의 확산을 경험할 기회
11월 18일 수요일 오후 5:30 ~ 7:00  Room 17AB
OpenCL의 확산은 이를 사용하고 좋아하는 커뮤니티를 통해서 가능할 것이다. 이번 발표회는 새롭게 발표된 OpenCL 2.1에 대한 개괄적인 설명과 함께 SPIR-V 표준, SYCL 1.2 추상화 계층에 대한 설명을 할 것이다. 참석자들은 Altera, AMD, Codeplay Software, Intel, Xilinx등 다수의 벤더가 제공하는 제품과 도구를 경험을 할 수 있다. 참석자들은 자신의 코드를 가져와 함께 토론하고 질문할 수 있는 기회를 가질 수 있다. 상세한 정보는 다음 링크를 참조하기 바란다.  More information and calendar links

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