크로노스 그룹, GPU 상에서의 고효율 그래픽스와 계산을 위한 새로운 API - Vulkan(벌칸) 발표


샌프란시스코에서 열리는 게임 개발자 컨퍼런스 (GDC)에서 데모 선보여 새롭게 발표되는 SPIR-V 중간 코드는 Vulkan과 OpenCL 2.1에서 함께 사용돼 하드웨어 및 소프트웨어 기업들의 표준화 콘소시엄인 크로노스 그룹 (Khronos Group)은 현지시각 2015년 3월 3 일, 미국 샌프란시스코, 게임개발자 컨퍼런스 (GDC) 에서 효율적인 그래픽스 및 계산을 위한 개방형 API의 새 표 준 Vulkan™ 프로젝트를 발표하였다. 

이미 “차세대 OpenGL® 이니셔티브”로 알려졌던 프로젝트로, 새 표준은 기초 부터 새로운 디자인을 통해, 응용이 성능을 극대화하고, 예측할 수 있도록, 직접 GPU 가속을 제어할 수 있고, 함께 발표된 크로노스그룹의 새 표준인 SPIR-V™ 를 통해 쉐이딩 언어의 이식성을 향상시켜 줄 것이다. Vulkan의 표준 안과 구현은 올해 하반기에 발표될 예정으로, 관심 있는 기업은 참여할 수 있다. 산업계의 의견을 반영하기 위해 온 라인 포럼 사이트 https://www.khronos.org/vulkan/vulkan_feedback_forum 를 운영하고 있다.

Valve 사의 개이브 뉴웰 (Gabe Newell)은 “Vulkan과 같은 산업계 표준 API는 개발자들로 하여금 다양한 플 랫폼에서 가능한 최대의 사용자 경험을 제공하기 위해 핵심적인 부분이다. 우리 Valve를 포함한 크로노스 회원사들은 고성능 그래픽스 인터페이스를 가능한 넓은 영역에서 활용될 수 있도록 최선을 다하고 있다. Vulkan은 우리 회사의 SteamOS와 게임 등에 핵심 요소가 될 것이라 생각한다” 고 설명했다.


샌프란시스코에서 개최되는 GDC (게임 개발자 컨퍼런스)에서 Vulkan 기술 설명회 개최 

크로노스 그룹은 Vulkan의 구조에 대해 살펴볼 수 있는 기술 설명회를 아래와 같이 개최한다.


Vulkan: 고성능 그래픽스의 미래 – Valve 주최

3월5일 목요일 오전 10시~11시 – Room 2006 GDC 컨퍼런스 웨스트 홀

내용: Vulkan API의 기술적 구성 요소, 새로 채택된 신기술 및 Vulkan 드라이버와 하드웨어에서 실제 실행 되는 데모

Vulkan: 차세대 그래픽스와 계산 API

3월5일 목요일 1차: 오전12시~오후1:30 / 2차 오후 2시~3:30

장소 : SF Green Space at 657 Mission Street, Suite 200, GDC 행사장에서 도보로 5분 내용: Vulkan API 개요, 데모, 워킹 그룹 멤버들과의 대면 교류 등

No GDC pass required, however seating is limited so please register if you plan to attend: 이 행사에는 GDC 등록을 하지 않은 분들도 참석 할 수 있다. https://www.khronos.org/news/events/gdc-2015


Vulkan에 대하여

Vulkan은 통합된 표준으로서, 드라이버의 부하를 최소화 하고, 다중 스레드 GPU 명령을 통해 최적의 그래픽스 및 계산 성능을 다양한 모바일, 데스크탑, 콘솔, 임베디드 플랫폼에서 가능하도록 해 준다. Vulkan은 또한 GPU를 직 접적으로 제어하는 기능을 제공함으로써, 좀더 단순하고 예측 가능한 드라이버를 통해 여러 벤더의 플랫폼에서 성능과 기능에 대한 이식성을 필요로 하는 복잡한 게임엔진, 미들웨어 및 응용에서의 요구를 만족시켜준다. 또한 Vulkan의 계층적 설계는 여러 하드웨어 벤더(IHV, Independent hardware vendor)가 공통의 확장 구조에 플러그인 됨 으로써 코드의 검증, 디버깅과 프로파일링을 실행 성능에 영향을 주지 않으면서 동시에 개발 도중에 수행할 수 있게 될 것이다.

오늘 발표된 내용 중 또하나의 중요한 사항은, Vulkan과 OpenCL 2.1이 이제 SPIR-V라 불리는 중간코드 언어를 공유하기로 결정했다는 것이다. SPIR-V는 Khronos 그룹의 혁신적인 표준 중간 표현 코드로 OpenCL™ 에서만 사 용되어 왔었다. 이제 쉐이더와 커널 기능을 온전히 지원하는 표준으로 자리를 잡게 되었다. SPIR-V는 컴파일러 체인 을 분할하여, 고수준 프로그래밍 언어 전처리기(Front-ends)를 통해 표준화된 중간코드 형식을 생성해 내어, 바로 Vulkan이나 OpenCL 드라이버에 넣어주게 된다. 고수준의 소스 컴파일러를 탑재할 필요성이 없어짐에 따라, GPU 드라이버의 복잡도는 크게 줄어들 것이고, 다양한 언어 전처리기의 사용이 가능해 질 것으로 기대된다. 이와 함께, 표준화된 중간 코드를 이용함에 따라, 쉐이더 코드의 지재권을 보호하고, 쉐이더 코드의 로딩 시간을 줄여주고, 개발 자가 일반 프로그램 언어 전처리기를 사용할 수 있게 되며, 쉐이더 프로그램의 신뢰성과 다양한 플랫폼에 대한 이식성이 크게 증가할 것이다.

“Vulkan 은 플랫폼의 다양성이 증가하고 있는 이때, 개발자들에게 최신의 GPU API를 선택함으로써 개방형 멀티 플 랫폼 이식성을 갖도록 해 줄 것으로 기대됩니다.” NVIDIA의 VP 이자 Khronos Group의 회장인 Neil Trevett 회장은 언급 하였다. 또한 “크로노스 그룹은 공개 소스의 인증 테스트를 구현하고, 샘플 전처리 컴파일러 구현하여 하 드웨어 기업들이 SPIR-V를 사용하여 최적화된 백 엔드 드라이버 개발에 투자를 유도하도록 하는 등, Vulkan의 생 태계 구성에 노력할 것입니다.”



'Graphics > 참고' 카테고리의 다른 글

[뉴스 기사] 애플 메탈 API  (0) 2015.03.26
원글 주소 http://www.bloter.net/archives/206949
애플 ‘메탈 API’, 모바일게임 성능 10배 ↑

한국시각으로 지난 9월11일 진행된 애플의 새 ‘아이폰’ 발표 행사는 이후 수많은 얘깃거리를 낳았다. ‘아이폰6’와 ‘아이폰6플러스’를 중심으로 ‘애플워치’도 이야기의 중심에 섰다. 하지만 만약 게임 업계 관계자라면, 스마트폰에서 더 나은 품질의 게임을 즐기고픈 게이머라면, 그날 애플이 발표한 내용 중에서도 애플의 ‘메탈(Metal)’ 얘기에 귀를 쫑긋 세우지 않았을까. 메탈은 애플이 모바일기기에서 게임 성능을 극대화하기 위해 개발한 새 API다.

한국시각으로 9월18일 애플의 최신 모바일기기용 운영체제 ‘iOS8’이 배포되기 시작했다. 이와 동시에 에픽게임즈에서는 애플의 메탈 API를 적용한 그래픽 미리보기용 게임 ‘에픽 젠 가든’을 배포하기 시작했다. 지금으로서는 게이머가 메탈 API의 진보된 게임 성능을 체험할 유일한 콘텐츠다. 에픽게임즈의 결과물을 바탕으로 애플의 메탈이 앞으로 모바일게임 수준을 어떻게 끌어올릴지 살펴보자.

apple_metal_1_800

모바일게임 성능의 유리천장, ‘오픈GL ES’

애플의 메탈 API가 하는 일을 살펴보려면, 먼저 게임이 하드웨어에서 어떻게 구현되는지 알아야 한다. 게임이 모바일기기 화면에 구현되는 과정은 다음과 같다. 사용자의 입력을 모바일기기가 받으면, 모바일기기 중앙처리장치(CPU)는 그래픽처리장치(GPU)에 그림을 그리라는 명령을 내린다. 이를 ‘드로우콜'(Draw Call)이라고 부른다. CPU의 명령에 따라 GPU가 화면에 뿌려주는, 이를테면 게임 속 텍스처나 사진, 캐릭터 등 모든 요소가 바로 게임 화면을 이루는 핵심이다.

이 과정에서 문제가 생긴다. 수많은 GPU 제조업체가 있고, 각각의 플랫폼에서 한꺼번에 돌아가는 게임을 만드는 것은 불가능하다. 그렇다고 게임 개발자는 어느 한 플랫폼만을 대상으로 게임을 만들 수는 없다. 그래서 나온 것이 바로 ‘오픈GL ES’다. 오픈GL ES는 소프트웨어의 3D 렌더링 기술을 각기 다른 하드웨어에 통합적으로 구현하기 위한 명령어 세트다. 지금까지 오픈GL ES는 아이폰과 안드로이드 스마트폰에서 모바일게임을 구현하기 위한 통합 레이어 역할을 해 왔다.

오픈GL ES의 가장 큰 문제점은 명령어를 전달하고 게임 그래픽을 화면에 구현하는 데까지 걸리는 오버헤드가 많이 발생했다는 점이다. 오버헤드는 명령어가 전달되는 과정 등을 이르는 말이다. 게임 화면을 그리는 하드웨어 처지에서 보면, 게임 구현과 관계가 적은 일종의 ‘추가비용’이 바로 오버헤드다.

예를 들어 CPU가 GPU 쪽에 그림을 그리라는 명령어를 전달하는 과정에서 CPU의 명령어 해석이 필요하다. 이 해석에 도움을 주는 것이 오픈GL ES의 라이브러리인데, 그림을 그리라는 명령어를 해석해 이를 다시 GPU에 전달하는 것 만으로도 CPU에 가해지는 부담이 적잖다. 게임 개발자가 모바일기기에서 게임의 성능을 높이는 것에 가장 큰 걸림돌로 오픈GL ES의 높은 오버헤드를 꼽는 것도 바로 이 때문이다. 오픈GL ES가 범용적인 3D 그래픽을 구현하기 위한 다양한 하드웨어를 목표로 정립된 탓이다.

△ 언리얼엔진으로 제작된 ‘에픽 젠가든’

GPU에 더 가까이

“애플은 명령어를 전달하는 데 오픈GL ES가 아닌 메탈이라는 중간단계 API를 개발한 것입니다. 이전에는 하드웨어 속에서 게임에 필요한 그림을 그리기 위한 명령을 날릴 때 차지하는 비중이 컸는데요. 메탈을 쓰면 이 과정이 짧아집니다.”

애플의 메탈은 오픈GL ES를 대체한다. 신광섭 에픽게임즈코리아 차장은 “모바일기기가 원하는 것은 사용자의 명령에 따라 GPU가 화면에 그림을 그리도록 하는 것뿐인데, 그 과정을 위해 거쳐야하는 해석이나 분석 과정(오버헤드)이 크니 게임의 품질을 높이기 어려웠다”라며 “메탈은 오버헤드를 줄일 수 있도록 돕는다”라고 부연했다.

에픽게임즈가 18일 앱스토어에 출시한 ‘에픽 젠가든’을 보자. 메탈 API가 적용된 콘텐츠로 뛰어난 그래픽 품질을 자랑한다는 점이 특징이다. 그래픽품질 뿐만 아니라 화면에 표현할 수 있는 물체의 수도 획기적으로 늘어났다.

예를 들어 ‘에픽 젠가든’ 화면에 있는 나무 그래픽을 터치하면, 나무에서 수많은 꽃이 핀다. 꽃잎도 동시다발적으로 떨어진다. 꽃과 꽃잎 하나하나가 모두 명령에 의해 처리되는 그래픽 요소다. ‘에픽 젠가든’에서는 나비도 그래픽으로 보여주는데, 사용자의 터치를 따라 움직이는 수많은 나비도 볼 수 있다.

신광섭 차장은 “오픈GL ES를 쓸 때는 CPU가 요소 하나를 그리도록 명령했을 때 발생하는 오버헤드가 커서 한 화면에 많은 오브젝트를 구현하기 어려웠다”라며 “메탈을 쓰면 더 많은 드로우콜을 더 빨리 처리할 수 있어 화면에 표현할 수 있는 요소를 크게 늘릴 수 있다”라고 설명했다.

메탈은 게임의 그래픽품질뿐만 아니라 아이폰의 배터리 사용 시간에도 영향을 미친다. 아이폰이 게임을 구현할 때 CPU에 가해지는 부하를 메탈 API가 근본적으로 줄여주는 덕분이다. 메탈 API를 적용한 게임은 기존 오픈GL ES를 사용하는 게임과 비교해 최대 10배 이상 높은 성능을 낼 수 있다는 게 애플의 주장이다.

apple_metal_4_800

‘에픽 젠가든’에 구현된 나비. ‘메탈’을 쓰면, 손가락을 따라 실시간으로 반응하는 수많은 요소를 동시에 표현할 수 있다.

게임 성능 극대화 바람, 모바일까지

애플의 메탈 API는 마이크로소프트(MS)의 ‘다이렉트X’ 버전 12와 AMD의 새 게임 개발 API ‘멘틀(Mantle)’을 떠올리도록 한다. 다이렉트X는 윈도우 운영체제를 중심으로 다양한 하드웨어를 지원하기 위한 API고, 멘틀은 AMD의 일부 고성능 그래픽카드에 최적화된 게임 개발 API다. 다이렉트X 12와 멘틀 API의 목표는 같다. CPU의 병목현상을 줄이고, GPU가 낼 수 있는 최대의 성능을 활용해 게임 품질을 끌어올리는 것이다.

다시말하면, 메탈 API는 PC 게임 개발 업계의 최근 기술 트렌드를 애플이 재빨리 따라잡은 결과물인 셈이다. 애플의 수직 통합된 하드웨어 정책이 큰 도움이 됐음은 물론이다.

생각해보자. 애플은 하드웨어와 소프트웨어를 모두 만드는 업체다. 아이폰 한 종류에는 칩셋 하나만 탑재된다. 예를 들어 ‘아이폰5S’에는 ‘A7’ 프로세서가, 새로 나온 ‘아이폰6 플러스’에는 ‘A8’ 칩이 들어가 있다. 디자인과 설계 모두를 애플이 담당하는 단일 칩셋으로 게임 개발자는 여기에 최적화된 게임 개발 방법론으로 게임을 코딩하면 된다. 오픈GL ES라는 범용적인 명령어 세트를 더이상 고집하지 않아도 되는 까닭이 여기 있다.

애플의 메탈 API가 적용된 게임으로는 ‘에픽 젠가든’과 앞으로 출시될 ‘베인글로리’ 등이 있다. 애플은 에픽게임즈뿐만이 아니라 일렉트로닉아츠(EA)와 디즈니, 게임로프트, 유비소프트, 징가, 스퀘어에닉스 등 굵직한 게임 개발업체와 손잡았다. 앞으로 아이폰용 모바일게임은 빠른 속도로 품질과 성능을 높여갈 것으로 기대된다. 메탈 API는 A7칩과 A8칩이 탑재된 아이폰에서만 동작한다는 점은 유념하자.

apple_metal_2_800

‘매탈’을 지원하는 게임 개발업체

메탈 API는 수직통합의 산물…구글은?

구글의 안드로이드 OS는 어떨까. PC와 모바일기기 모든 진영에서 하드웨어와 더 밀착하기 위한 게임 개발 방법론이 대세로 떠오른만큼, 구글도 장기적으로는 메탈 API와 비슷한 새 API를 내놓을 가능성이 높다. 하지만 빠른 시간 안에 적용되기는 어렵다. 애플과 전혀 다른 방식으로 운영되는 하드웨어 생태계를 갖고 있기 때문이다.

안드로이드폰은 삼성전자와 LG전자, 중국의 샤오미, ZTE, 화웨이 등이 모두 달려들어 개발 중이다. 각각의 제품 속에는 각기 다른 프로세서가 들어가 있다. 삼성전자가 개발한 제품이라고 해도 퀄컴의 프로세서로 동작하는 스마트폰도 있고, ‘엑시노스’ 칩으로 구동되는 기종도 있다. 다양한 하드웨어를 통합해 지원하기 위한 기술이 오픈GL ES인데, 구글은 이를 대체할 다른 기술을 개발할 수 있을까. 만약 그렇다면, 그것은 애플의 메탈과 같은 형태가 아니라 또 다른 오픈GL ES일 뿐이다.

업계 관계자는 “각각의 그래픽칩셋은 통신을 위한 인터페이스를 적용해야 하는데, 구글이 오픈GL ES외에 다른 것을 만든다고 하더라도 하드웨어 업체가 그 API를 바로 적용할지는 의문”이라며 “여러 하드웨어를 지원하는 안드로이드의 숙명이기도 하다”라고 풀이했다.


'Graphics > 참고' 카테고리의 다른 글

Khronos Vulkan(벌칸) API  (0) 2015.03.27

+ Recent posts