11월 11일에 일본에서 열린 ARM Technical Symposia 2011 Japan에서는 ARM의 그래픽 코어 IP인 Mali의 로드맵과 차세대 Mali-T6000 시리즈의 기술을 설명하였습니다.

 

 

노르웨이의 Mali

 

001.jpg

 

Mali 시리즈의 로드맵을 설명한 ARM MPD 부분 프로덕트 매니저, Steve Steele.

 

ARM은 CPU 코어 IP 제조사로는 유명하지만, GPU에서는 그렇지 않았습니다. 최근의 급성장은 2006년에 ARM이 인수한 노르웨이의 그래픽 코어 IP 제조사인 Falanx Microsystems의 Mali를 통해서 이루어진 것입니다.

 



002.jpg

 

Mali 시리즈의 코어 아키텍처 개발 코드네임. 북유럽 신화에서 따온 이름들입니다.

 

Mali-200/300/400 시리즈까지는 Utgard 아키텍처 세대로서, 원래 Falanx 시절에 사용했던 설계 그대로의 코어입니다.

 

Mali-200/300/400 시리즈의 그래픽 파이프라인은 OpenGL ES 2.0 기반으로, 다이렉트 X로 치자면 다이렉트 X 9에 가까운 구성입니다. 픽셀 쉐이더와 버텍스 쉐이더는 모두 프로그래머블 쉐이더이지만, 쉐이더 유닛의 구성은 고정 아키텍처입니다.

 

새 Mali-T600 시리즈는 코어 아키텍처를 Midgard로 고치면서 통합 쉐이더 아키텍처로 진화하였습니다.

 

Utgard나 Midgard 같은 아키텍처 이름은 북유럽 신화의 세계에서 따온 것입니다. Utgard는 거인계, Midgard는 인간계라는 의미인데, 이는 원래 Falanx의 본사가 북유럽에 있던 것과 관련이 있겠지요.

 

003.jpg

 

004.jpg 

 

Mali는 T600 시리즈부터 Midgard 세대의 코어를 사용합니다.

 

Mali-T600시리즈는 Falanx를 인수한 후에 처음으로 ARM과 Falanx가 같이 개발한 결과물로서, 텍스처 유닛과 같은 전용 로직은 Falanx가 설계한 Mali-400 시리즈 이전의 것이 계속 사용되지만, 쉐이더 코어를 비롯한 코어 아키텍처는 거의 완전히 새로 설계되었습니다.

 

Mali-T600 시리즈는 CPU 제조사인 ARM의 영향을 크게 받으면서, CPU와 GPU는 공통된 메모리 어드레스 스페이스를 사용할 수 있어 캐시 시스템의 일관성이 보장됩니다.

 

ARM은 64비트 아키텍처 CPU인 ARMv8 아키텍처를 발표했었는데, Mali-T600 시리즈는 ARMv8 CPU 코어와의 편성도 허용합니다.

 

그래픽 파이프라인은 앞서 말한대로 작업 부하나 스레트 컨텍스트에 따라 역할이 바뀌는 통합 쉐이더 아키텍처 기반이 되며, 각각의 쉐이더 코어는 네이티브 64비트 정수와 IEEE 754 규격의 부동소수점 연산도 지원합니다. 핸드폰이나 임베디드 GPU 중에서는 세계 최초로 64비트 배정밀도 부동소수점 연산을 지원한다는 것도 특징입니다.

 

005.jpg

 

006.jpg

 

Mali-T600 시리즈는 64비트 CPU와의 조합을 지원할 뿐만 아니라, 64비트 정수 연산, 64비트 부동소수점 연산을 지원하는 리얼 64비트 GPU입니다.

 

 

Mali-T600 시리즈의 그래픽 아키텍처

 

007.jpg

 

Mali-T604는 최초의 Midgard 아키텍처 기반 GPU IP입니다.

 

이미 발표된 Mali-T604와 11월에 발표된 Mali-T658은 모두 Midgard 코어의 Mali-T600 시리즈 GPU IP를 사용하며, 기본적으로는 동일한 세대의 코어입니다. Mali-T605는 4코어, Mali-T658은 최대 8코어이지만, Mali-T658은 단순히 T605를 2개 합친 구성이 아니라, 내부 아키텍처를 수정한 물건입니다.

 

Mali-T604는 4개의 쉐이더 코어가 있으며, 각각의 쉐이더 코어는 32비트 스칼라 프로세서+128비트 벡터 프로세서가 2개씩 있었지만, Mali-T658에서는 이게 배로 늘어나면서 32비트 스칼라 프로세서+128비트 벡타 프로세서가 4개가 됐습니다.

 

008.jpg

 

즉, Mali-T658은 같은 클럭으로 작동하는 Mali-T604와 비교했을 경우 4배(쉐이더 코어 2배x코어의 프로세서 수 2배)의 최고 성능을 발휘할 수 있게 됩니다.

 

Mali-T658은 4개의 쉐이더 코어를 최소 단위로 하여, 이 4개의 쉐이더 코어가 2개 합쳐진 구성이 됩니다. 이 최소 단위 코어는 각각의 L2 캐시를 내장하며, 그 사이의 일관성은 유지하지 않습니다. 그래서 NVIDIA의 SLI나 AMD의 크로스파이어 X 같은 멀티 GPU 구성이 되는 것입니다.

 

각각의 쉐이더 코어는 로드/스토어 유닛과 텍스처 유닛도 존재합니다. 그래픽 렌더링의 경우는 이 텍스처 유닛이 비디오 메모리 출력(ROP 유닛)의 작업도 담당합니다.

 

009.jpg

 

Mali-T658은 Mali-T604의 4배에 달하는 GPU 성능을 발휘합니다. 그 이유는 쉐이더 코어가 2배, 쉐이더 코어 내부의 범용 쉐이더 유닛이 2배로 늘어났기 때문.

 

실제 성능은 직접 실행해 보지 않으면 모르지만, 32bit SP+128bit VP의 ALU 세트를 1개의 범용 쉐이더로 잡고, 기존의 GPU 스펙으로 환산해 본다면 Mali-T658은 쉐이더 유닛 32개(쉐이더 코어 8개x범용 쉐이더 유닛 4개)의 GPU가 됩니다. 필 레이트는 Mali-T600 시리즈가 사실상 ROP(Rendering Output Pipeline) 처리를 텍스처 유닛이 담당하면서, Mali-T658의 8 ROP와 비슷한 성능이 나옵니다. 범용 쉐이더 32개, ROP 유닛 8개라는 이야기군요.

 

Mali-T600 시리즈의 그래픽 파이프라인은 다이렉트 X 11과 차세대 OpenGL ES Halti를 지원하며, 기존 OpenGL ES 1.1/2.0,OpenVG도 지원합니다. ARM 버전의 윈도우즈 8이 나오기 전까지는 다이렉트 X 11이 나오진 않겠지만, 반대로 보면 ARM 아키텍처를 기반으로 하는 SoC의 지원 준비가 완성된 셈입니다.

 

실제 렌더링은 타일 베이스의 분할 렌더링이 되는데, 이것은 Imagination Technologies의 PowerVR과 비슷합니다. 다만 Z 버퍼 없이 렌더링을 실행하는 PowerVR 계열과는 달리, Mali-T600 시리즈에서는 메모리에 Z 버퍼가 있습니다.

 

다이렉트 X 11 지원이라면 테셀레이션 스테이지의 지원이 중요한데, 이 역시 지원됩니다. 테셀레이션 스테이지에서 전처리와 후처리를 담당하는 헐 쉐이더와 도메인 쉐이더의 프로그래머블 쉐이더 2개. 다이렉트 X 10에서 추가된 지오메트리 쉐이더까지 Mali-T600 시리즈가 지원합니다.

 

하지만 Midgard 코어는 다이렉트 X 11에서 고정 기능을 통해 실현하는 하드웨어 테셀레이터 유닛을 탑재하진 않고, 범용 쉐이더 유닛을 사용한 소프트웨어 실행을 합니다.

 

지오메트리 쉐이더와 테셀레이션 스테이지를 핸드폰이나 모바일 디바이스에 사용하는건 너무 지나친 스펙이 아니냐는 의견도 있지만, 지오메트리 쉐이더와 테셀레이션 스테이지는 지오메트리 데이터의 용량을 최저한대로 억제하면서 높은 수준의 3D 모델링을 할 수 있는 기능이기 때문에, 오히려 모바일 디바이스에서 큰 역할을 할 수 있습니다.

 

 

GPGPU도 지원하는 Mali-T600 시리즈

 

012.jpg

 

Mali-T600 시리즈의 GPGPU 솔루션을 해설한 ARM 미디어 프로세싱 부문 비지니스 개발 매니저, 하마다 타쿠야

 

ARM은 Mali-T600 시리즈가 우수한 3D 그래픽 렌더링 기능을 가지고 있으면서도, 동시에 GPGPU용으로도 쓸 수 있음을 어필하였습니다.

 

Mali-T600 시리즈는 통합 쉐이더 아키텍처 기반으로, 그 내부의 범용 쉐이더 유닛을 그래픽용 이외에 사용할 수 있게 되어 있습니다.

 

지원하는 API로는 마이크로소프트의 다이렉트 X 기반 다이렉트 컴퓨트, 구글 안드로이드 환경의 렌더스크립트 컴퓨터, 임베디드 프로파일과 풀 프로파일을 지원하는 오픈CL 등이 있습니다.

 

010.jpg

 

011.jpg

 

헤테로지니어스 컴퓨팅 플랫홈이라고 할 수 있는 Mali-T600 시리즈

 

Mali-T600 시리즈는 핸드폰이나 타블렛에서의 사용을 목표로 만든 프로세서이기 때문에, PC처럼 특정 용도를 위한 전용 프로세서를 간단히 탑재할 수가 없습니다. 따라서 1개의 프로세서를 다양한 목적으로 사용하려는 경향이 PC보다 더 강합니다. 그만큼 ARM은 Mali-T600 시리즈가 GPU 뿐만 아니라 미디어 프로세서나 DSP로서 활용할 수 있음을 강하게 어필하고 있습니다.

 

013.jpg

 

014.jpg

 

015.jpg

  

현재 현실적인 Mali-T600 시리즈의 GPGPU 솔루션으로는 오픈CL이 있습니다. 다이렉트 컴퓨트는 ARM 플랫홈으로 윈도우즈가 나오고 나서야 가능하고, 렌더스크립트 컴퓨트는 아직 발전중입니다.

 

016.jpg

 

Mali-T600 시리즈는 GPGPU 솔루션으로도 다양한 장점이 있습니다.

 

017.jpg

 

그래픽 렌더링 태스크와 GPGPU 태스크를 추상화하는 잡 매니저

 

ARM의 Mali-T600 시리즈는 SoC에 내장한 GPU IP로, CPU와 GPU가 필요에 따라 협동하거나 독립하여 병렬 실행할 수 있습니다. 예를 들어 Mali-T600 시리즈에서는 Mali-400 계열처럼 모드 체인지를 실행하지 않아도 GPGPU 태스크와 3D 그래픽 테스크를 동시에 병렬 실행할 수 있습니다.

 

Mali-T600 시리즈에서는 3D 그래픽 태스크와 GPGPU 태스크를 잡 매니저 유닛으로 추상화하여, 이를 순수한 연산 태스크로 실행하는 쉐이더 코어로 발송합니다. 쉐이더 코어 내부의 범용 쉐이더 유닛 자체는 발송된 처리를 실행하는 것만 담당하며, 그 자신은 처리 내용으로 GPGPU용인지 그래픽용인지를 구별하지 않습니다.

 

물론 3D 그래픽 태스크와 GPGPU 태스크를 동시에 처리하고 있을 때, Mali-T600 시리즈의 성능은 각각의 태스크로 나뉘게 되지만, 모드 체인지 없이 동시에 처리할 수 있다는 점은 큰 장점이 됩니다.

 

018.jpg

 

019.jpg

 

C Job, C Task는 GPGPU  태스크, V Job, V Task는 버텍스 처리 테스크, F Job, F Task는 픽셀 프래그먼트 처리 태스크를 의미합니다. 쉐이더 코어는 이들이 동시에 섞인 상태에서도 처리가 가능합니다.

 

 

점점 더 높아지는 핸드폰/임베디드 디바이스의 고성능 GPU IP 전쟁

 

지금의 Mali-T600 시리즈는 핸드폰이나 임베디드 디바이스용의 최고 성능 GPU IP라는 점이 부각되고 있지만, 이렇게 보면 CPU를 설계하는 ARM과, GPU를 설계하는 Falanx가 힘을 합쳤기 때문에 나올 수 있었던 매우 특이한 GPU IP임을 알 수 있게 됩니다.

 

실제로 Mali-T600 시리즈를 사용한 제품은 20102년 중반 이후에 나오는 것으로 알려졌습니다.

 

2012년 이후에는 Imagination Technologies가 발표한 차세대 PowerVR 6 시리즈(코드네임 Rogue)가 나올 예정입니다. 항상 선두에 서왔던 NVIDIA도 테그라 4로 알려진 코드네임 웨인을 2012년에 발표합니다. 2012년에는 PC 시장에서 최고조에 달했던 GPU 전쟁이, 핸드폰과 임베디드에서 벌어진다는 의미입니다. 후발 주자에 속하는 Mali지만 기존 세력을 어느 정도로 위협할 수 있을지 기대됩니다.

 

021.jpg

 

ARM 플랫홈의 로드맵