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

수십여개의 새로운 기능과 ISO C++ 일관성을 유지하도록 표준을 변경; 임베디드 시스템, 데스크탑, 고성능 컴퓨팅 분야에서SYCL의 채택이 크게 증가

202129일 미국, 오레곤주 비버톤에 사무국을 두고 있는 크로노스 그룹 ( The Khronos® Group )은 오늘 SYCL™ 2020의 최종 표준( SYCL™ 2020 final specification )을 발표하였다. 크로노스 그룹은 개방형 표준을 제정하는 산업체 컨소시엄으로서 첨단 상호운용성 표준을 제정하고 있다. 오늘 발표된 표준은 하나의 소스 코드로 수행하는 C++ 병렬 프로그래밍 표준으로서, 수년간의 표준 개발이 결집된 이 표준은 새로운 이정표를 세우게 되었다. SYCL 1.2.1의 기능을 기반으로 하여, 향상된 프로그래밍 기능, 작은 코드 크기와 개선된 성능을 제공하게 된다. C++ 17 표준에 기반한 SYCL 2020은 표준 C++ 응용 프로그램을 보다 쉽게 가속하고, ISO C++ 로드맵과 더욱 더 일치된 표준이 되었다.

2014 년에 처음 발표된 SYCL은 CPU, GPU, FPGA및 텐서 가속기 (AI칩)를 포함한 광범위한 프로세서 아키텍처에서 고성능 컴퓨팅 (HPC), 기계 학습, 임베디드 컴퓨팅 및 계산 집약적인 데스크탑 애플리케이션을 가속화하기 위한 C ++ 기반 이기종 병렬 프로그래밍 프레임워크이다. SYCL 2020은OpenCL ™ 외에도 다양한 가속 API 백엔드 사용을 포함하여, 여러 플랫폼에서 SYCL의 채택 및 배포를 더욱 가속화해줄 것으로 기대된다.

SYCL 2020에는 간소화된 코딩과 코드 크기를 줄이기 위한 업데이트를 포함한40개 이상의 새로운 기능이 추가 되었으며, 추가된 주요 기능은 다음과 같다:

  • 통합 공유 메모리 (Unified Shared Memory, USM)의 채택으로 버퍼와 접근자의 지원없이 자연스럽게 포인터 작업을 할 수 있게 되었다.
  • 병렬 리덕션 기능이 빌트인 리덕션 연산자로 추가되어 상용구 코드(boiler plate code)의 사용을 피할 수 있게 되었고, 빌트인 리덕션 연산자 가속 기능을 갖춘 하드웨어에서 최대 성능을 얻을 수 있다.
  • 워크 그룹과 서브그룹 알고리즘이 추가되어 작업 아이템들 간의 병렬 연산의 효율을 높일 수 있다.
  • 클래스 템플릿 매개변수 공제 (Class Template Argument Deduction, CTAD)와 템플릿 매개변수 공제 기능은 클래스 템플릿 인스턴스화를 간편하게 해 준다.
  • 빌트인 리덕션 연산자와 함께 단순화된 접근자 (Accessor)를 사용하여 상용구 코드의 사용을 줄이고 C++ 소프트웨어 디자인 패턴 사용을 간편하게 해 준다.
  • 확장된 상호운용성은 다양한 백엔드 가속 API에서 효율적인 가속이 가능하게 해 준다.
  • SYCL 어토믹 연사자들은 C++ 어토믹 연산자와 더욱 정확하게 일치시킴으로써 병렬 프로그래밍의 자유도를 크게 높여 준다.

좀더 상세한 정보는 오늘 공개된 크로노스 블로그(SYCL FAQ )를 통해 볼 수 있다.

“SYCL 2020의 첫번째 목표는 ISO C++과의 긴밀한 통합이며, 나아가 최신 C++ 표준에 개방형 표준으로서 병렬 이종 프로그래밍을 가능하게 해 주는 것입니다. SYCL은 다양한 프로세서를HPC, 자동차 및 기계 학습을 포함한 많은 애플리케이션 도메인의 문제를 가속할 수 있도록 해 줄 것입니다. 슈퍼 컴퓨팅에서 임베디드 프로세싱에 이르는 영역에서 실제 시장에서 사용되는 응용에 개발에 SYCL사용하는 개발자와 연구자가 증가하고 있습니다. 이들 개발자들의 통찰력을 바탕으로 SYCL 2020 잠정 표준에 대한 개발자들의 많은 피드백을 받을 수 있었고, 마침내 SYCL 워킹 그룹은 새로운 기능이 다수 포함되었을 뿐만 아니라, 성능이 개선되고 하방 호환성을 갖춘 최종 표준안을 발표할 수 있게 되었습니다. SYCL 2020이 제공하는 단순함과 높은 표현력에 대해 기쁘게 생각하며, 시장 요구를 충족하기 위해 계속해서 SYCL을 발전시킬 것입니다” - Codeplay의 저명 엔지니어, ISO C ++ Directions Group SYCL 워킹 그룹 의장 Michael Wong

SYCL 2020 표준 발표와 동시에 SYCL 에코시스템에 컴파일러, 런타임, 라이브러리 및 도구가 발표됨으로써 한층더 풍성해 졌다. 인텔의 oneAPI 데이터 병렬 C ++ (DPC ++)에는 이미 많은 SYCL 2020 기능이 통합되어 있다. Codeplay의 ComputeCpp SYCL 1.2.1 인증 구현 제품에는 DSP 및 RISC-V에 대한 지원을 포함한, 일부 SYCL 2020 기능이 포함되었으며, 이후 더 많은 기능이 추가될 예정이다. Intel 및 Codeplay 구현은 LLVM 오픈 소스 컴파일러 프레임 워크를 기반으로 한다. Heidelberg University의 hipSYCL은 버전 0.9부터 주요 SYCL 2020 기능을 지원한다. 개발자는 이러한 많은 구현 중 선택하여 다운로드하여 SYCL 2020 기능을 지금 실험 해 볼 수 있다.

Argonne National Laboratory에서는, SYCL을 사용하여 개발자가 엑사 스케일(Exascale) 슈퍼 컴퓨터 시스템에서 가속 클러스터를 할 수 있도록 C ++ 애플리케이션을 쉽게 확장 할 수 있다. 유럽 Cineca 슈퍼 컴퓨팅 센터는 SYCL을 기반으로 구축 된 Celerity 분산 런타임 시스템을 사용하여 Top500 (2020 년 11 월)에서 11 위를 차지한 새로운 Marconi100 클러스터를 프로그래밍하고 있다.

SYCL 워킹 그룹은 사용자와 도구 개발자들이 다운로드하여 새로운 표준 을 사용해 보길 권한다. 향후 기능에 대한 요청을 포함하여 SYCL 표준에 대한 피드백은 언제나 환영한다. Khronos SYCL 커뮤니티 포럼 , SYCL 기술 사이트 또는 Khronos Slack 채널 을 방문하여 의견을 제시할 수 있다.

IWOCL & SYCLcon 2021 행사는 SYCL 워킹 그룹 의장인 Michael Wong이 의장을 맡고 Khronos가 후원하며 4 월 27 일부터 29 일까지 온라인에서 개최된다. 여기에는 새로운 SYCL 2020 기능을 다루는 SYCL 튜토리얼과 SYCL 패널 토론이 포함된다. 등록은 www.iwocl.org 에서 지금 할 수 있다.

SYCL 2020에 대한 산업계의 지원

“우리 고객들은 SYCL 2020 표준의 기능을 활용할 수 있을 것입니다. 통합 메모리 (USM) 지원 및 디덕션와 같은 새로운 기능은 고성능 컴퓨팅 하드웨어 프로그래밍에 중요한 기능입니다. 또한 C ++17에 대한 지원은 사용자가 언어 기능 (예 : 디덕션 가이드) 및 라이브러리 기능 (예 : std :: optional)을 사용하여 더 나은 C ++ 코드를 작성할 수 있습니다. 기타 새로운 기능 (예 : 커널 기능에 대한 요구 사항 완화 및 호스트와 장치 간 데이터 공유) 는 Kokkos 및 RAJA 성능 및 이식성 에코 시스템에서 SYCL에 대한 백엔드 지원을 구현하기위한 중요한 발전입니다. ” Argonne National LaboratoryLeadership Computing Facility Computer Scientist, Nevin Liber

“Cineca의 경험을 통해 볼때, SYCL이 하이브리드 환경에서 고성능 컴퓨팅 개발에 가져다주는 가치를 확신하고 있습니다. 실제로, SYCL을 통해 계산 집약적인 응용이 부동소수점 가속기로 구성된 HPC 구조에서 실행될 수 있는 공통 포터블 환경을 구축하는 것이 가능했습니다. 이를 통해 산업 및 과학계가 사용하는 공통 개발 도구, 알고리즘 라이브러리와 축적된 경험을 공통적으로 사용할 수 있게 되었습니다. Cineca는 이미 Top500의 11위에 랭크된 새로운 Marconi100 클러스터에 몇 종류의 SYCL 구현위에 분산 Celerity 런타임을 사용할 수 있도록 하였습니다. 이를 통해 사용자는 4000개의 NVIDIA Volata V100 GPU와 IBM Power9 호스트 프로세와 통합된 API를 사용할 수 있게 되었습니다. SYCL은 좀더 간결한 API를 향한 큰 전진을 통해 현대 C++표준이 제공하는 잠재력을 활용할 수 있도록 해 줄 것이며, 이를 통해 데이터-병렬 커널을 가능케 하고, 산업계 도메인 그리고 과학계 도메인 모두에서 대규모의 과학 소프트웨어를 개발을 더욱 쉽고 지속 가능하게 해줄 것입니다. - said Sanzio Bassini, director of supercomputing, Application Innovation Dept, Cineca

“Codeplay는 SYCL의 초기 정의 단계에서부터 깊이 관여해 왔으며, 우리의 ComputeCpp 제품의 다양한 시스템들에 이를 적용해 왔습니다. 우리는 SYCL의 고성능 프로세서에서 통합된 프로그래밍 솔루션을 제공하는 유일한 소프트웨어 표준이라고 믿고 있습니다. 개발자들인 이제 SYCL을 사용하여 개발 과정을 단순화 하고, 생산성을 크게 개선할 수 있을 것입니다.” - Andrew Richards, founder and CEO, Codeplay Software

“우리 Imagination사는 다수의 시장에서 SYCL의 장점을 확인했습니다. 우리 소프트웨어 스택은 SYCL 성능을 향상시키기 위해 설계되었고, 우리의 최신 IP에서 테라플롭스 급의 성능을 경험할 수 있도록 하는 직접적인 통로를 제공해 주었습니다. 다른 특정 API들로부터 빠르게 이식할 수 있는 능력은 큰 이익이 있으며, 데스크탑에서 개발된 결과물을 임베디드 시스템으로 포팅하는데 큰 장점이 있습니다. SYCL 2020은 이러한 API로 가는 매우 큰 발전을 이루었으며, 높은 수준의 성능을 가능하게 하여 개발자와 플랫폼 생산자 모두에게 큰 이익을 줄 것입니다.” - Mark Butler, Vice President of Software Engineering, Imagination Technologies

“SYCL 2020 의 최종 표준은 업계에 중요한 기능을 제공해 주어 C++ 개발자들이 고성능, 이종 플랫폼 응용을 개발하는데 XPU 들 간에 통합된 프로그래밍을 통해 할 수 있도록 해줄 것입니다. 통합 공유 메모리, 그룹 알고리즘 및 서브그룹과 같은 오픈 소스 oneAPI C++ / DPC++ 컴파일러에서 개척한 여러 기능이 표준 개발에 큰 기여를 했습니다. 가속화된 분산 컴퓨팅을 위해서는 개방형 교차 아키텍처 프로그래밍이 필요합니다. 우리는 개발 생태계의 요구 사항을 지원하기 위해 지속적인 협력을 기대합니다.” Jeff McVeigh, Intel vice president, Datacenter XPU Products and Solutions.

“NERSC의 자원을 사용하는 수많은 사용자와 광범위한 응용프로그램들을 위해서는 광범위한 프로그래밍 모델을 지원해야 합니다. 명령어 기반의 접근 방식과 함께, 현대 C++ 언어가 기반하고 있는 가속 프로그래밍에도 관심을 갖고 있습니다. 이 중 SYCL은 우리 Perlmutter를 사용하는 사용자들에게는 매우 중요한 프로그래밍 환경 요소 중 하나입니다. 또한 사용자들이 응용프로그램을 Aurora 시스템과 Perlmutter 시스템 사이에 포팅하는데에도 큰 장점을 제공함으로써 과학 응용 프로그램 개발자의 생산성을 크게 향상시켜 줍니다.” - Brandon Cook, application performance specialist at NERSC

“NSITEXE는 임베디드 응용에서 큰 주목을 받고 있는 SYCL 2020 기술을 지원하고 있습니다. SYCL은 개발지에게 복잡도를 숨김으로써 생산성을 크게 증가시켜 줍니다. 우리는 차세대 IP 플랫폼에 이들 기술을 채택할 것을 고려하고 있습니다.” - Hideki Sugimoto, CTO, NSITEXE, Inc.

“Renesas에게 있어서, SYCL은 자동차 ADAS/AD 소프트웨어 개발에 핵심적인 역할을 하고 있으며, 이를 통해 이 크로노스 그룹의 개방형 표준은 매우 효율적인, 이종 가속을 R-Car SoC 시리즈 제품에서 사용할 수 있도록 해 줄 것입니다.” Cyril Cordoba, Director of ADAS Segment Marketing Department, Renesas.

“새로운 SYCL 2020 표준과 함께 발표된 광범위한 기능 및 개선 사항에 대해 기쁘게 생각합니다. API는 더욱 간결하고 개발자 친화적으로 변경되었으며, 전문 사용자가 최첨단 하드웨어 기능을 세밀하게 제어할 수 있는 새로운 방법이 추가되었습니다. 일반화된 백엔드 모델로의 이동은 과학 연구 환경에서 특히 중요한 레거시 솔루션과 같은 기존의 시스템과 통합할 수 있는 새로운 방법을 제시해 줍니다. Celerity 프로젝트의 공동 개발자인 Salerno 대학과 함께 우리는 이러한 변화를 환영하고 있으며 최근에 시작된 EuroHPC LIGATE 프로젝트와 같은 분산 메모리 연구와 산업 애플리케이션에 적용할 수 있게 되기를 기대합니다.” - 인스브루크대학의 분산 및 병렬 시스템 그룹 책임자, Thomas FahringerXilinx의 펠로우 Ralph Wittig “Xilinx는 SYCL 2020을 통해 이룩한 발전에 대해 매우 기쁘게 생각합니다.이 단일 소스 C ++ 프레임워크는 동일한 C ++ 프로그램에서 다양한 종류의 가속기에 대한 호스트 및 디바이스 코드를 통합해 줍니다. Host-fallback device execution을 통해, 개발자는 CPU에서 장치 코드를 에뮬레이션 하여 적응 형 컴퓨팅 디바이스를 위한 하드웨어-소프트웨어 공동 설계를 수행할 수 있습니다. SYCL은 이제 커스터마이징이 가능한 백엔드로 확장 할 수 있으며, FPGA 및 ACAP 용 장치 플러그인을 사용할 수 있습니다. “

크로노스 그룹 소개

크로노스 그룹은 개방형, 비영리, 회원 운영제의 산업체 컨소시엄으로서, 산업계를 선도하는 150여 기업이 협력하여 첨단, 무료, 상호운용을 위한 3차원 그래픽스, 증강현실, 가상현실, 병렬처리, 컴퓨터 비전 가속, 기계학습에 관련 표준을 제정하고 있다. 크로노스의 표준에는 Vulkan®, OpenGL®, OpenGL® ES, WebGL™, SPIR-V™, OpenCL™, SYCL™, OpenVX™, NNEF™, OpenXR™, 3D Commerce™, ANARI™ 및 glTF™가 있다. 크로노스의 그룹의 회원이 되면 표준개발에 참여할 수 있으며, 여러 표준화 단계에서 투표권을 갖게 된다. 회원은 표준이 공개되기 전에 표준 문서와 인증테스트 사용할 수 있어 관련 제품의 개발과 출시 시기를 단축할 수 있다.

###

Khronos® 및 Vulkan® 은 Khronos Group Inc의 등록 상표이며, ANARI™, WebGL™, glTF™, NNEF™, OpenVX™, SPIR™, SPIR-V™, SYCL™ 와 3D Commerce™ 는 Khronos Group Inc의 상표임. OpenXR™ 는 Khronos Group Inc가 소유한 상표로서 중국, 유럽연합, 일본 및 영국에서 상표 등록 되었음. OpenCL™ 은Apple Inc의 등록 상표이며, OpenGL® 은 Hewlett Packard Enterprise의 등록 상표이며, OpenGL ES™ 과 OpenGL SC™ 로고는Hewlett Packard Enterprise가 Khronos Group Inc에 사용권을 허여 하였다. 기타 제품명 및 상표, 기업명은 해당 지재권을 소유한 기관의 소유이다.