brunch

매거진 IT Lens

You can make anything
by writing

C.S.Lewis

by PHiL Dec 09. 2017

스냅드래곤 845의 AI와 가상 현실

인공 지능을 강화하고 가상 현실을 개선한 스냅드래곤 845  

문득 퀄컴이 급했을 지도 모른다는 생각이 든다. 지난 1월 발표한 고성능 모바일 프로세서인 퀄컴 스냅드래곤 835의 후속 제품을 새 달력을 걸기도 전에 또 공개했기 때문이다. 12월 6일 퀄컴 테크놀로지 서밋 행사에서 스냅드래곤 845의 발표라는 보기 드문 광경을 연출한 배경이 무엇이던 간에 조기 등판한 차기 고성능 모바일 프로세서는 돌아볼 구석이 많아 보인다.


차기 모바일 프로세서로서 스냅드래곤 845는 스냅드래곤 835 대비 나아진 정도만 찾아서 말하기는 어려울 정도다. 그만큼 처리 성능 뿐만 아니라 보안이나 무선 전송 성능, 인공 지능과 시각 기술 등 상당 부분 달라졌다. 독자 기술에 대한 집착을 버리고 ARM 코어텍스 A75와 A55를 변형한 크라이오 385 골드와 실버 코어를 4개씩 넣은 옥타 코어 CPU는 높은 코어 클럭(골드 2.8GHz, 실버 1.8GHz)에 새로운 L3 캐시 구조의 채택, 처리 상황에 따라 모든 빅리틀 코어를 동시에 켜는 ARM 다이나믹(ARM DynamiQ) 도입, 대역폭이 넓어진 메모리를 통해 성능을 높였다. 4K와 시각 현실의 시각적 처리 능력을 높인 GPU 아드레노 630, 기가 비트 이상의 전송 성능을 내는 X20 LTE 모뎀, 보안을 강화한 시큐리티 프로세싱 유닛 등 이 프로세서는 이전 세대와 많은 부분에서 다른 점이 눈에 띈다.


하지만 이러한 성능 향상을 위한 구조의 변경보다 기대했던 것은 인공 지능에 대한 해법, 그리고 이 프로세서에서 새롭게 기대할 만한 의외 무엇일 지도 모르겠다. 다행히 스냅드래곤 845를 발표한 퀄컴은 그 두 가지에 대한 답을 모두 내놨다고 본다. 다만 일반적인 접근과는 다른 방식이어서 흥미롭다. 인공 지능을 위한 추론 처리를 DSP에서, 가상 현실의 진화에 필요한 그래픽 처리 기술을 도입한 게 그렇다. 이 두 가지만 들여다 봤는데도 스냅드래곤 845는 충분히 흥미로운 프로세서라는 것을 알 수 있다.


DSP로 기계 학습을 하다


스냅드래곤 845은 인공 지능 관련 코어는 별도로 존재하지 않는다. 퀄컴은 많은 논쟁이 있는 전용 하드웨어 가속화는 매우 신중한 선택이 필요하고, 올바른 자리에 배치하지 않으면 실리콘을 낭비하게 될 것이라고 질의응답 세션에서 밝힌 만큼 확실히 전용 코어는 들어가지 않는다.


그렇다 해도 스냅드래곤 845가 인공 지능 관련 기능을 적용하는 데 필요한 능력 자체가 없는 것은 아니다. 퀄컴은 디지털신호처리장치(DSP)인 헥사곤 685(Hexagon 685) 코어가 기계 학습 명령을 처리한다고 말한다. 실시간으로 변환되는 영상이나 사진, 소리 같은 아닐로그 세계의 연속된 신호를 측정하고 걸러내 압축된 디지털 신호로 바꾸는 DSP를 여러 인공 지능 관련 처리에 필요한 작업까지 맡기겠다는 것이다.

퀄컴 헥사곤 680 DSP의 처리 구조

퀄컴이 헥사곤 685를 인공 지능의 기계 학습에 활용하는 것은 이 처리 장치의 구조를 볼 때 종전 CPU와 GPU보다 인공 지능 처리에 유리한 구조라고 판단한 때문이다. 퀄컴은 스냅드래곤 820의 헥사곤 680부터 고급 사진과 비디오, 가상 현실 및 컴퓨터 비전 처리를 위해 헥사곤 벡터 익스텐션(HVX) 아키텍처로 바꿨다. 헥사곤 680은 일반적인 ARM 프로세서에서 볼 수 있던 64비트 SIMD 네온 파이프라인보다 훨씬 넓은 4개의 1024비트 SIMD 파이프라인으로 1사이클에 최대 4096비트를 처리할 수 있고, 동시에 실행될 수 있는 여러 명령어를 포함한 VLIW 연산과 여러 HVX 컨텍스트를 처리하는 4개의 병렬 스칼라 스레드 구조를 갖췄다. 이후 스냅드래곤 835의 헥사곤 682와 스냅드래곤 845의 헥사곤 685는 이 구조를 개선하면서 기계 학습을 위해 정렬된 긴 벡터 데이터를 처리하는 데 활용하고 있는 것이다.


퀄컴은 헥사곤 685가 기계 학습 명령을 처리하는 성능에 대해선 구체적으로 밝히지 않았으나, DSP 뿐만 아니라 CPU와 GPU도 기계 학습에 관여하는 전반적인 처리 성능을 볼 때 이는 스냅드래곤 835 대비 3배 향상된 것이라고 말한다. 스냅드래곤 대비 3배의 수준이라는 것이 어떤 작업을 기준으로 보느냐는 것도 명확하지 않고, 초당 연산 회수에 대한 세부 내용도 없다 보니 화웨이, 구글, 애플의 신경망 코어와 비교할 때 상대적인 비교 우위 역시 아직은 확인하기 어려운 부분이다.

퀄컴 스냅드래곤 800 시리즈 프로세서에서 인공 지능 관련 연산을 할 수 있도록 만든 뉴럴 프로세싱 엔진

다만 신경망 구조를 가진 코어가 아닌 헥사곤 DSP에 다른 물리적인 구조를 추가하지 않고 관련 작업을 처리할 수 있도록 뉴럴 프로세싱 엔진(Neural Processing Engine)에서 처리할 수 있는 추론 API를 확장했다. 뉴럴 프로세싱 엔진은 스냅드래곤 프로세서에 존재하는 물리적인 요소가 아니라 추론을 위한 기계 학습 명령어를 스냅드래곤에서 처리할 수 있도록 최적화해주는 소프트웨어 도구다. 즉, 스냅드래곤에서 처리해야 할 기계 학습이 있다면 뉴럴 프로세싱 엔진을 거친 뒤 구조가 다른 스냅드래곤 프로세서의 CPU와 GPU, DSP가 모두 가동해 처리할 수 있도록 명령들을 정렬하고 결과를 얻을 수 있도록 해준다.


뉴럴 프로세싱 엔진을 거쳐 스냅드래곤 845에서 처리할 수 있는 추론 API는 텐서 플로를 비롯해 카페 및 카페2(Caffe 2) 등 기존 추론 API와 텐서 플로 라이트, ONNX 포맷도 처리할 수 있도록 보강했다. 또한 구글 안드로이드 8.0부터 지원하는 신경망 API도 지원한다.


퀄컴은 기존에 활용하던 여러 추론 API를 개발자가 프로세서에 맞춰 다시 개발할 필요 없이 뉴럴 프로세싱 엔진을 거쳐 스냅드래곤 800 시리즈 장치에서 적용할 수 있다는 것을 장점으로 꼽는다. 아이폰의 A11 바이오닉 프로세서에 있는 뉴럴 엔진이나 화웨이 기린 970에 탑재된 뉴럴 프로세싱 유닛, 구글의 비주얼 코어 등 신경망 코어들은 초기에 기존 추론 API를 활용하는 것이 아니라 각각 전용 개발을 요구하는 점에서 접근하기 어렵지만, 퀄컴은 좀더 쉽고 빠르게 접근할 수 있다는 것이다.

다양한 추론 API들은 NPE를 통해 스냅드래곤의 CPU와 GPU, DSP에서 어떻게 연산을 처리할 것인지 정해진다.

하지만 화웨이는 텐서 플로 및 텐서 플로 라이트, 카페 등 추론 API를 NPU에서 적용할 수 있는 개발자 도구를 공개했고, 안드로이드 8.1을 배포 중인 구글은 안드로이드 신경망 API(Android Neural Network API)계층에서 텐서 플로 라이트와 카페2, 그 밖의 추론 API를 곧바로 비주얼 코어 같은 신경망 코어를 통해 가속할 수 있도록 한 상태다. 그나마 퀄컴 스냅드래곤을 채택하는 스마트폰이나 장치 제조사가 많다는 점은 다른 제조사보다 관련 생태계 확장에 좀더 우위를 가질 만한 부분으로 보인다.


시각 현실에 더 강해지다


스냅드래곤 845의 인공 지능 성능이 더 강해졌을 지는 모르나 아직 성능에 대한 의문 부호를 떼지 못한 것과 달리 스냅드래곤 845에 있어서 눈여겨볼 대목은 따로 있다. 가상 현실, 증강 현실, 혼합 현실 같은 시각 현실의 진화를 위한 GPU 기술을 보완한 부분이다. 스냅드래곤 845의 GPU인 아드레노 630은 퀄컴에서 XR(eXtended Reality)이라 부르고 주도하려는 시각 현실 부문을 위한 몇 가지 흥미로운 기술을 도입하고 있다. 그 중에서도 가장 눈길이 끄는 부분은 SLAM 동반 6 자유도 구현과 포비티드 렌더링을 지원하는 아드레노 포비션(Adreno Foveation)이다.

여러 가지 의미를 내포하고 있는 자유도는 가상 현실에서 머리 동선(Head Tracking)에 따라 공간 내부를 보는 시점의 움직임을 말한다. 가로와 세로, 깊이를 축으로 둔 상태에서 머리 회전과 머리 위치의 변화에 따라 시점이 바뀌는지 보는 것이다. 예를 들어 고개를 좌우로만 돌렸을 때만 시점이 달라지면 1 자유도라고 한다. 보통 스마트폰을 활용하는 모바일 가상 현실에서 고개를 자유롭게 돌려 공간 내부를 모두 둘러볼 수 있도록 되어 있으므로 3 자유도를 구현한다.


하지만 3 자유도는 일어서거나 몸을 앞으로 숙일 때 머리의 위치가 달라지더라도 공간 자체의 시점은 달라지지 않는다. 때문에 가로, 세로, 깊이 축에 따라 달라지는 머리 위치를 가상 현실에서 똑같이 반영해야 하는 데 이것이 6 자유도다. 가로와 세로, 깊이를 축으로 하는 머리 회전의 3 자유도와 머리 위치의 변화에 따른 3 자유도를 합쳐 6 자유도라 한다. 참고로 장치 내부에 있는 여러 센서로는 머리 회전은 파악할 수 있지만, 머리 위치의 변화를 측정하기 어렵기 때문에 외부 센서나 여러 개의 외부 카메라로 공간을 탐지하고 머리 위치를 확인한다.

오큘러스의 프로젝트 산타크루즈는 퀄컴 스냅드래곤 835를 기반으로 만들어진 6 자유도 가상 현실 헤드셋이다.

6 자유도 장치들은 PC 기반의 가상 현실 장치들이나 윈도 혼합 현실 장치에서는 이미 구현되어 있고 PC나 스마트폰 없는 단독형 VR 헤드셋에서 시도되고 있으므로 아주 새로운 것은 아니다. 대표적인 단독형 가상 현실 헤드셋은 오큘러스의 프로젝트 산타크루즈와 구글의 월드센스, HTC의 월드스케일 등인데, 이러한 6 자유도 헤드셋 장치들은 원래 퀄컴 스냅드래곤 835를 기반의 레퍼런스 하드웨어를 각 제조사들이 고유의 기술을 기반으로 개선하고 있다. 때문에 스냅드래곤 845에서 구현하는 6 자유도의 가상 현실은 결코 새롭다고 보긴 어렵다.


그런데 스냅드래곤 845가 기존과 다른 점이 하나 있다. 줄여서 SLAM이라고 부르는 동시적 위치 측정 및 지도 작성(Simultaneous localization and mapping)을 추가한 것이다. 이것이 재미있는 점은 이제 가상 현실 장치를 쓰고 집안을 자유롭게 돌아다닐 수 있다는 의미라는 것이다.


보통 6 자유도 장치들은 일정 공간 안에서 자유롭게 움직이는 룸스케일을 구현한다. 하지만 공간을 가리키는 센서의 범위 또는 이미 인지된 공간 밖으로 나갈 수 없는 환경적 제약이 있다. 일정 공간 안에서 위치와 움직임은 자유로우나 그곳을 벗어나면 작동을 멈추거나 다시 영역을 지정해야 한다. 하지만 실시간으로 위치와 지도가 그려지면 외부의 물체나 벽을 실시간으로 감지하고 현재 위치를 파악할 수 있기 때문에 훨씬 넓은 공간을 자유롭게 이동할 수 있다. 물론 일반적으로 방 크기의 공간을 자유롭게 이동하는 룸스케일에서 크게 벗어나지는 않겠지만, 장치와 콘텐츠에 따라 더 넓은 실내 공간 또는 집 전체를 가상 현실 헤드셋을 쓰고 움직일 수 있으므로 가상 현실의 규모가 달라질 수 있다.

포비티드 렌더링의 예제. 나무 중앙부는 또렷한 반면 그 주변부는 선명함이 떨어진다.

포비티드 렌더링을 구현하는 아드레노 포비션도 가상 현실의 몰입감을 높이는 중요한 요소다. 포비티드 렌더링은 가상 현실 헤드셋을 썼을 때 눈동자가 향하고 있는 부분의 주변부를 흐릿하게 만들어 좀더 또렷하게 보이도록 속이는 렌더링 기술이다. 지금 가상 현실 헤드셋은 눈동자를 돌려 어느 곳을 보더라도 모든 영역을 선명하게 그려내고 있다. 이는 실제 눈으로 보는 것과 다른 느낌을 들게 하고 있는데다 전 영역을 선명하게 렌더링을 할 때 들어가는 처리량이 너무 많아 장치에 부담을 준다. 때문에 눈동자가 향하는 부분만 렌더링 품질을 끌어올리고 그 주변부의 품질을 조금 감소시킴으로써 성능적 한계와 몰입감을 동시에 해결하는 포비티드 렌더링에 기대를 걸고 있다. 때마침 구글도 안드로이드 상에서 포비티드 렌더링과 관련한 연구 결과를 공유하고 있다.


하지만 포비티드 렌더링을 구현하기 어려운 이유는 렌더링 품질에 대한 문제가 아니라 이용자의 눈동자를 추적하고 이에 맞춰 렌더링을 한 뒤 다시 디스플레이에 표시하기까지 걸리는 지연 시간이 있어서다. 눈동자가 어디로 움직일지 모르는 상황에서 미리 렌더링을 해 놓을 수 없는 없기 때문에 눈동자의 움직임과 실제 렌더링 결과를 보여주기까지 걸리는 시간을 최소화해야만 하는 것이 숙제였는데, 스냅드래곤 845에서 아드레노 630과 DSP 등을 결합해 이 문제를 해결했다는 것이다.

멀티뷰 렌더링은 한번의 렌더링으로 가상 현실에 필요한 두 개의 결과물을 출력한다.

아드레노 630의 또 다른 속임수는 멀티 뷰 렌더링이다. 이미 PC 그래픽 카드에서 쓰고 있는 이 기술은 가상 현실을 위해 두 개의 이미지를 렌더링 하는 게 아니라 둘 중 하나만 렌더링을 한 뒤 GPU에서 내보낼 때 두 개의 지오메트리 정보로 변환한다. 그러니까 예전에는 처리해야 할 데이터와 출력이 2개였지만, 멀티 뷰 렌더링을 하면 하나의 데이터를 처리한 뒤 2개로 출력하는 셈이다. 이전보다 처리량이 적어지기 때문에 CPU와 GPU 처리 주기는 물론 램도 여유를 확보하고, 지연 시간도 그만큼 줄일 수 있는 여러 장점이 있다.


이처럼 가상 현실의 진화에 꼭 필요한 기술을 상당 부분 내재한 아드레노 630을 품은 스냅드래곤 845는 플래그십 스마트폰의 활용 범위를 확장하려는 목적보다 가상 현실 장치 자체의 쓰임새를 더 중요하게 다룰 것으로 보인다. 이미 퀄컴은 스냅드래곤 835 기반 단독형 VR 헤드셋을 통해 시각 컴퓨팅으로 전환에 대비하려는 움직임을 보여 왔고, 몰입감을 높이고 효율적인 처리 기법을 담은 스냅드래곤 845로 이를 가속화할 것으로 보여서다. 다만 현재 대부분의 단독형 가상 현실 헤드셋이 스냅드래곤 835 기반으로 개발되고 있는 데다 스냅드래곤 845의 아드레노 630에 포함한 새로운 기술을 응용할 수 있는 환경이 갖춰지려면 좀더 시간이 필요한 만큼 당장 관련 제품을 만나기는 어려워 보인다.


원문 | 퀄컴 스냅드래곤 845의 인공 지능과 가상 현실(1) 퀄컴 스냅드래곤 845의 인공 지능과 가상 현실(2) 

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari