본문 바로가기

컴퓨터 관련 소식

오픈GL과 맨틀의 사랑, 벌칸을 낳다 : Vulkan 1.0 전격 공개

이번에는 오픈GL과 맨틀의 사랑, 벌칸을 낳다 : Vulkan 1.0 전격 공개에 대해 알아보겠습니다.

오픈GL과 맨틀의 사랑, 벌칸을 낳다 : Vulkan 1.0 전격 공개

 

 

 

2014년 8월, 개방형 그래픽 및 범용연산 API인 오픈GL과 오픈CL의 총본산 '크로노스 그룹' 은 오픈GL의 뒤를 잇는 차세대 크로스플랫폼 표준 그래픽 API를 만들기 위한 컨소시엄을 출범시킨 바 있다. 업계의 내로라하는 거물급 회사들이 머리를 맞대고 오픈GL 및 오픈GL ES의 후계구도를 논한 끝에 1년 반만에 '벌칸(Vulkan)' 이라는 이름으로 결실을 맺게 되었으니, 이것이 바로 MS의 다이렉트X 12 및 애플의 메탈과 차세대 그래픽 API 주도권 경쟁을 노릴 오픈소스 진영의 대항마이다.

 

 

컨소시엄이 처음 머리를 맞댄 날로부터 18개월이 지난 지금 크로노스는 정식으로 벌칸 1.0 규격을 공개했으며 회원사들 모두 이 규격의 정착을 위해 분연히 떨쳐 일어나리라는 패기를 내비쳤다. 단지 규격뿐 아니라 개발자들을 위한 기술백서와 양대 그래픽카드 제조사(AMD, 엔비디아)의 지원 드라이버, SDK 등까지 전격적으로 함께 공개되어 크로노스 그룹의 전의를 불태웠는데, 그룹 자신으로서도 이런 '빡센 런칭행사'는 처음이었다고 밝힐 만큼 이례적인 대규모 무력시위를 벌인 것이다. 이전까지는 크로노스가 API를 살포시 발표하면 제조사들이 뒤이어 드라이버를 만들고, SDK를 개발하는 식이었기 때문이다. 이러한 변화의 까닭은 벌칸이 단지 그래픽 API로서뿐만 아니라, 업계 전체가 한 마음 한 뜻으로 지향하는 어떤 '미래'를 상징하는 것이기 때문이다.

 

 

 

벌칸을 지원하는 플랫폼 : 애플의 간보기

 

그러나, 앞서 언급했듯 벌칸이 로우 레벨 API의 유일한 주자는 아니기 때문에 단지 '출시했다'는 것 만으로 모든 대의를 얻었다고 믿으면 곤란할 것이다. 크로노스는 벌칸을 오픈소스, 멀티플랫폼 API로 규정짓고 있으며 여기에 더해 직접 산업계에서 벌칸이 채택되게끔 발로 뛰고 있다. 여기서 크로노스는 오픈GL의 사례를 반면교사로 삼아봄직 한데, 모바일 시장의 오픈GL ES가 성공적으로 안착한 것과 대조적으로 PC 시장의 오픈GL은 그야말로 죽을 쑤고 있기 때문이다. 새로 등장한 벌칸이 오픈GL의 오명을 그대로 승계해서는 안 될 것이다.

 

 

기술적인 측면에서, 크로노스는 벌칸을 거의 모든 하드웨어와 운영체제 하에서도 작동 가능하도록 설계하는 데 집중했다. 적어도 지금까지는 그 목적이 순조롭게 달성되고 있어, 오늘날 오픈GL과 오픈GL ES를 지원하는 플랫폼이라면 거의 모두 벌칸을 그대로 사용할 수 있을 것이다. 예컨대 PC 환경이라면 리눅스, 윈도우 XP 이후의 모든 윈도우에서 벌칸을 사용할 수 있다.

 

한편, 모바일 진영을 살펴보면 구글은 진작부터 벌칸에 대한 지원을 천명했으며 안드로이드 마시멜로우부터는 벌칸을 지원하는 것으로 알려졌다. 단지 그래픽 작업을 위해 벌칸을 사용하는 것에서 한발 더 나아가 개발 단계에서부터 안드로이드 플랫폼에서의 테스트가 긴밀히 이뤄졌다고 한다.

 

 

위 표를 보고 눈치챘겠지만 여기에는 큰 구멍이 하나 있다. 바로 애플이다. 애플과 크로노스 그룹 사이의 관계는 꽤 미묘한데 벌칸의 최초 개발단계에는 애플이 참여했던 것으로 알려졌으나 이후 발을 뺀 것으로 알려져 있다. 또한 작년에는 애플 스스로 자체 API인 메탈에 더욱 주력할 뜻을 밝히기도 했다. 게다가 iOS는 아직까지도 오픈GL ES 3.1로 API 업데이트를 하지 않고 있다. 이 모든 정황이 가리키는 것은 단 하나, 애플이 스스로 성채를 짓고 있다는 것이다. 따라서 안타깝지만 현존하는 모든 OS를 관통하는 크로스플랫폼 API의 등장은 이미 불가능해졌으며 과거 어느 때보다도 API 생태계는 갈갈이 찢어져 세분화되었다. 다만 한가지 기대를 걸어봄직한 것은, API와 소프트웨어 사이의 미들웨어가 개발되어 개발자들에게 단일한 개발환경을 제공해 줄 수 있지 않을까 하는 믿음이다. 묘하게도, 벌칸의 출시에서는 한 발짝 거리를 두고 있는 애플이지만 그들은 여전히 컨소시엄에는 참여하고 있기도 하다.

 

 

개발자들을 위한 SDK와 기술 문서

 

한편, 오늘의 발표에서는 게임 개발자들을 위한 SDK와 기술 문서들도 함께 공개되었다.

 

 

일례로 벌칸 SDK 개발을 위해 밸브측에서 파견한 개발자 그룹 'LunarG'는 윈도우와 리눅스를 지원하는 벌칸 호환 SDK인 'LunarG SDK'를 오늘 공개했다. 이 SDK는 벌칸을 이용한 게임 개발을 위한 다양한 툴을 망라하고 있다.

 

 

이와 함께, 크로노스는 비록 오늘 벌칸이 발표되었고 그 자체로 오픈GL의 후계자이기는 하나, 오픈GL 역시 사라지지 않고 존속할 것이라는 점을 미디어와 개발자들에게 수차례 공들여 설명하는 모습을 보였다. 다이렉트X 12와 같이 벌칸은 로우 레벨 API를 지향하고 있으며, 이들은 공통적으로 (개발자들의 입장에서) 이전 버전의 API들보다 사용하기 어렵다. 크로노스의 의도는 벌칸을 고급 개발자들에게 제공하고, 그 정도까지의 개발이 필요치 않은 쪽에는 그대로 오픈GL을 제공하려는 것이다. 이미 오픈GL 자체로도 멀티플랫폼 API로는 충분하지 않은가.

 

 

지원하는 드라이버 및 소프트웨어

 

서두에 언급했듯 크로노스와 컨소시엄 회원사들은 벌칸의 발표와 동시에 지원하는 드라이버 등을 한꺼번에 내놓는 것을 계획했다. 호환성 테스트는 이미 내부적으로 완료되었으며 30여 종의 드라이버가 검증이 끝나 오늘 당장 사용할 수 있는 상태에 있다.

 

 

이 기사가 쓰여지고 있는 엠바고 기간 기준으로, 안드로이드 플랫폼에서는 엔비디아와 퀄컴이 호환성 테스트를 마쳤으며, 리눅스 환경에서는 이매지네이션, 인텔과 엔비디아가, 윈도우에서는 현재까지 엔비디아만이 테스트를 마쳤다고 한다. ARM과 AMD 역시 현재 드라이버 심사가 진행 중에 있어 정식 출시일에 맞춰 공개될 것이라고 한다. (※ 주 : 실제로 오늘 공개되었다.)

 

하드웨어적인 측면에서는 구체적으로 어떤 GPU가 벌칸을 지원하는지 아직 명확히 정리되지 않았다. 전적으로 구글이 어떤 기능 세트를 포함시켰는지에 의존하게 될 것인데, 일단 주요 제조사들 모두가 벌칸의 탄생에 협력한 만큼 앞으로의 GPU들이 벌칸을 지원하리라는 것은 의심할 필요조차 없다. 중요한 것은 구형 GPU들이 어느 선까지 벌칸을 지원할 것이냐는 점이다. 일단 퀄컴의 아드레노 500 시리즈와 ARM의 '미드가르드' 아키텍처, 이매지네이션의 'Rogue' 아키텍처는 벌칸을 지원할 것이 확실시된다.

 

엔비디아는 케플러부터, AMD는 GCN 1.0 이후의 모든 아키텍처가 벌칸을 지원할 것이라고 밝힌 바 있다. 재미있는 사실은, 엔비디아는 다이렉트X 12 지원은 페르미부터 하게끔 확장되었는데 벌칸은 케플러부터 지원된다는 점이다. 마지막으로 인텔 역시 브로드웰에 탑재되는 8세대 HD Graphics 내장그래픽부터 벌칸을 지원할 것이라고 한다.

 

드라이버와 함께 벌칸을 이용할 수 있는 소프트웨어도 오늘 함께 공개되었다. 우선 Croteam의 게임 타이틀 'The Talos Principle'이 네이티브 벌칸 구동작으로 출시되었으며 크로노스에 따르면 이외에도 다수의 게임 타이틀이 벌칸에 대한 지원을 추가할 것이라고 한다. 현재로서는 유일하게 다이렉트X와 벌칸의 크로스 API 테스트가 가능한 The Talos Principle의 벤치마크 결과는 아래와 같다. (출처 : Computerbase.de)

 

 

다이렉트X 하에서 FHD와 QHD는 모두 지포스 GTX 980 Ti에 유리한 해상도이나, 벌칸 모드로 구동시 라데온 R9 Fury X가 두 해상도에서 모두 성능이 좋아지는 것을 확인할 수 있다. Fury X가 강세인 초 고해상도 영역에서는 두말할 필요조차 없다. 이는 벌칸의 모체가 사실상 AMD의 맨틀이라는 점과, 차세대 API 지원에 AMD가 더욱 적극적이었던 것과 무관치 않을 것이다.

 

어쨌든, 구체적으로 언제 기존 게임들이 벌칸을 지원하게 될지는 아직 알려지지 않았지만 작년 한해동안 이미 다수의 게임 데모가 선보여진 바 있고, 인텔, 밸브, 베이스마크 등 주요 개발사들이 여기에 몸담고 있는 만큼 오래지 않아 여러 지원 게임들을 볼 수 있게 될 것이다.

 

 

벌칸의 어머니, 맨틀을 추모하며

 

여기서는 벌칸 그 자체에 주목해 보자. 컨소시엄 출범 이후 오늘에 이르기까지 크로노스의 중요한 대언론 입장 표명은 딱 한차례 있었다. 2015년 3월의 발표가 그것이었는데, 크로노스는 그때까지 AMD가 자체적으로 개발하고 있던 '맨틀' API를 그들의 차세대 API에 통합하겠다는 뜻을 밝힌 것이다. 이를 통해 크로노스 측은 맨땅에서 API를 개발하는 수고로부터 우회하여 획기적으로 단축된 기간 내에 새로운 API를 만들 수 있게 되었다. 달리 말해 벌칸은 태생적으로 맨틀과 깊은 유연관계에 있다고 볼 수 있는데, 물론 최종적으로는 맨틀의 원형에 컨소시엄에 참여한 모든 회사가 각자 나름의 지적재산(IP)을 보태 오늘날의 벌칸이 된 것이지만, 핵심적인 부분이 맨틀의 그것과 동일하다는 것은 부정할 수 없는 사실이다.

 

다만, API 내부의 세부적인 기술 사항을 짚어보는 것은 이 글에서 생략할 것이나 일단 벌칸의 '쉐이더 리소스 바인딩 시스템'은 맨틀과 크게 달라졌다고는 한다. 이것이 유일한 차이점이 아니라는 것 역시 명백하다.

 

 

크로노스가 벌칸을 준비하며 공약했던 것은 "오픈GL보다 더 하드웨어에 가까운 계층에서 작동하며, 오버헤드가 적은 API"를 만드는 것이었다. 최근 몇년 사이 로우 레벨 API에 대한 주목도가 현저히 높아진 것이 크로노스의 구상에 영향을 미친 것은 물론이다. 이러한 기조의 연장선에서 벌칸은 오픈GL로 달성할 수 없던 높은 수준의 다중코어/스레드 지원이 가능해졌고, 다이렉트X 12의 비동기 쉐이더(async shader)와 유사한 기능인 컴퓨트 큐(compute queue) 기능을 갖추게 되었다. 또한 아직 VR 생태계를 논하는 것이 시기상조이기는 하나, 차세대 API로서 벌칸이 VR에 대한 지원을 표방하는 것은 지극히 당연한 일이며, 로우 레벨 API로서 불필요한 오버헤드를 삭감하고 전작 오픈GL 대비 더 낮아진 API 레이턴시를 갖는다는 점 등은 모두 VR 환경에 꼭 필요한 것들이기도 하다.

 

 

무엇보다 벌칸은 크로노스 그룹에게 있어서도 (자그마치 25년을 장기집권해 온) 오픈GL 이후의 그래픽 산업을 대비하는 자산으로써의 의미가 있다. 2000년대 중반부터 새 API에 대한 욕구가 분출하기 시작한 것을 생각하면 만시지탄이라고도 할 수 있을 것이다. 앞으로의 행보를 기대해 본다.

사업자 정보 표시
(주)아이티엔조이 | 장경석 | 서울특별시 용산구 청파로 132, 나진상가 19동 2층 나열 특 2호 | 사업자 등록번호 : 106-86-59287 | TEL : 02-1599-1239 | Mail : help@itenjoy.co.kr | 통신판매신고번호 : 제2017-서울용산-0055호 | 사이버몰의 이용약관 바로가기