PowerVR

1 개요[편집]

이매지네이션 테크놀로지에서 제작하는 모바일 GPU 시리즈이다. TI OMAP과 삼성의 엑시노스, 애플의 A 시리즈와 여러 중국업체들의 AP, 심지어는 인텔 아톰의 내장 그래픽으로 쓰일 정도로 폭넓게 쓰인 GPU이다. 모바일 GPU 쪽에서는 퀄컴 스냅드래곤에 널리 쓰이는 Adreno, 저렴한 라이센스 비용에 꽤 자유로운 코어 구성을 갖춘 ARM Mali와 함께 세 손가락에 꼽힌다. Mali GPU가 넓게 쓰이기 전에는 안드로이드 장치에서 쉽게 찾아볼 수 있었으나, 최근에는 주로 Apple A 시리즈에 많이 볼 수 있는 GPU이다.

기기 설명의 GPU 제원에 PowerVR SGX544 MP3 533MHz에 PowerVR SGX544 MP3 533MHz로 하이퍼링크를 달수 있다.

2 TBDR[편집]

내용이 없으니 여길 참고하자.

전문가나 전공자 님들이 추가바람

3 제품 목록[편집]

3.1 PowerVR Series 1-4[편집]

원래 PowerVR은 PC 그래픽 칩셋으로 개발되었으나, 당시 경쟁 상대였던 엔비디아, 3dfx 등보다 한 발짝씩 늦으면서 PC 시장에서는 도태되었다. 2세대 PowerVR은 세가 드림캐스트에 탑재되기도 했으나, 공급 물량이 딸려서 드림캐스트 초반에 물을 먹이기도 했다. Series 5 SGX를 내놓기 전 4세대와 5세대 중간 모델로 MBX가 있으며, 아이폰 1세대를 비롯한 초기 스마트폰 및 후기 피처폰에 사용되었다.

3.2 PowerVR Series 5/5XT/5XE (SGX 5OO)[편집]

Powervr5.png

PowerVR 5XT 제품군의 SGX 544 내부 구조

PowerVR 시리즈 5 제품군의 SGX 5OO GPU는 한 개의 코어당 일정한 수의 USSE, 또는 USSE2 파이프를 내장하고 있고, 각각의 USSE 파이프 내에는 2-Way ALU, 연산 성능이 강화된 USSE2의 내에는 4-Way Vector ALU가 들어있다. SGX 543 MP2를 예로 들면 SGX 543 1코어당 4개의 USSE2 파이프가 내장되어 있고 16개의 ALU가 들어있다. 코어 수가 2개이므로 32개의 ALU가 1클럭당 64FLOPS의 연산을 수행할 수 있다. Series 5XT에 속한 SGX 543과 544, 그리고 554는 최대 16코어까지의 멀티 코어 구성이 가능하지만 나머지 Series 5에 속하는 GPU들은 멀티코어 구성이 불가능하다.

(200MHz 기준, MP1당 성능)
제품 명칭 USSE 종류/USSE 수 ALU 수 TMU 수 FP32 연산성능 필레이트 OpenGL API 지원
SGX 520 USSE1/1 2 1 0.8 GFLOPS 200 MPixel/s OpenGL ES 2.0
SGX 530/531 USSE1/2 4 1 1.6 GFLOPS 200 MPixel/s
SGX 535 USSE1/2 4 2 1.6 GFLOPS 0.4 GPixel/s
SGX 540 USSE1/4 8 2 3.2 GFLOPS 0.4 GPixel/s
SGX 545 USSE1/4 8 2 3.2 GFLOPS 0.4 GPixel/s
SGX 543/544 USSE2/4 16 2 6.4 GFLOPS 0.4 GPixel/s
SGX 554 USSE2/8 32 2 12.8 GFLOPS 0.4 GPixel/s
GX5300 USSE1/1 2 ? 0.8 GFLOPS ? GPixel/s

우리가 대중적으로 알고 있는 스마트폰에 끼워진 GPU는 PowerVR 5 시리즈와 Adreno 130, 200 부터이다. ULP Geforce 시리즈ARM Mali 시리즈는 모바일 시장에서 상대적으로 후발 주자에 속했고, 스마트폰 시장 초창기의 SGX 5xx GPU는 호환성을 무기로 그 당시 가장 좋은 사용자 경험[1]을 보여주었다.

2011년 하반기에 출시된 아이폰 4SApple A5에 SGX543 MP2가 탑재되고, 2012년 상반기에는 Apple A5X에 SGX543 GPU가 무려 4코어 구성으로 끼워지고, Apple A5가 2011년 상반기에 출시되고 당대 최고 성능의 AP인 엑시노스 4210의 ARM Mali-400 쿼드코어의 성능을 가볍게 뛰어넘어서, 이때부터 고성능 GPU는 PowerVR이라는 인식이 사람들 사이에 박히게 되었다.

그러나 애플의 스마트폰 제품군에 들어간 PowerVR GPU의 성능을 잘 보면 타사의 AP 대비 항상 성능 면에서 우세하다 라고 말할 수준은 아니다. 당장 위에 서술한 A5의 GPU와 엑시노스 4210의 GPU를 비교해 보면, 원래는 A5 쪽의 결과가 우세했지만, 지속적인 최적화로 인해 ARM Mali 제품군의 성능이 상승해서 결국 비슷한 수준으로 측정되고 있다.

그리고 상용화 시기로 따져보면 보통 엑시노스 제품군은 상반기에 상용화 되었고 Apple A 시리즈는 하반기에 상용화 되었다는 걸 감안해야 한다. 출시 시기에 따라서 같은 세대가 아니라 0.5세대 정도 차이가 난다고 볼 수도 있고 이와 같은 논리로 하반기에 나온 A 시리즈와 다음해 상반기에 나온 엑시노스를 비교할 수도 있다는 것.

결정적으로, 2012년 말에 상용화된 Apple A6의 GPU는 SGX 543 트리플 코어이고 높은 클럭으로 인해 A5X의 SGX 543 쿼드코어와 비슷한 성능을 가지게 되어서 그해 초에 상용화된 엑시노스 4412은 가볍게 뛰어넘었지만, 같은 연말에 상용화된 Adreno 320과 GL벤치마크 2.5에서 비교시 소폭 열세, GFX벤치 2.7상으로는 무려 2배 차이가 나버렸다. 그래픽 벤치의 버전이 점점 올라갈수록 더 많은 FP 연산 성능이 요구되는데, 상대적으로 FP 연산 성능이 낮은 PowerVR 5 시리즈나 ARM Mali Utgard 시리즈가 많이 손해를 볼 수밖에 없다.

다만 태블릿용 AP인 Apple A5X와 A6X에 들어간 SGX 543 쿼드코어와 SGX 554 쿼드코어는 그 당시 모바일 GPU 중 가장 높은 성능을 보여줘서 제대로 이름값 했다. 특히 SGX 554 쿼드코어의 성능은 2013년에 나온 Adreno 330과 ARM Mali-T628같은 고성능 GPU들이 나와야 잡을수 있었다.

애플의 AP 말고도 PowerVR SGX 5OO 시리즈는 다양한 제품군에 사용되었다. TI OMAP 3 시리즈에 SGX 530이 탑재되었고, OMAP 4430과 4460에는 SGX 540이 탑재되었다. SGX 543은 쿼드코어 구성으로 PS Vita에도 들어갔고, SGX 544는 다양한 코어와 클럭 구성으로 수 많은 제품군에 탑재되었는데, 대표적으로 알려진 제품은 OMAP 4470과 OMAP 5 시리즈, 인텔의 아톰 제품군(주로 아톰 Z 계열), 엑시노스 5410 수많은 중국 AP 제조사의 제품에 들어갔다.

3.3 PowerVR Series 6/7 Rogue[편집]

Powervr6.png Powervr7.gif

위 이미지를 보면 Rogue 기반 아키텍처를 사용하는 Series 6과 6XT, 7XT의 내부 구조를 엿볼 수 있다. 물론 ALU 수 같은 데서 세부적인 차이가 있긴 하지만, 큰 틀에서 보면 1개의 USC(Unified Shading Culster)가 일반적으로 1개의 코어로 인식되어 있고, 2개의 USC에 1개의 Texture Unit이 존재하고 이 텍스처 유닛은 개당 4 Texel/cycle의 필레이트를 가진다. 그래서 일반적인 경우에는, 보통 USC는 짝수로 구성이 된다.(ex. 2 클러스터, 6 클러스터) 1 USC 내에는 일반적으로 16개의 파이프 라인이 들어가고, Series 6에는 1개의 파이프 라인 내에 FP32 ALU 2개와 FP16 ALU 2개, SFU 1개가 들어간다. FP16 1개의 연산 성능은 이례적으로 2 FLOPS가 아닌 3 FLOPS/cycle이다. Series 6XT(밑의 표에서 GX가 붙은 제품군)은 FP32 ALU 2개와 2 FLOPS의 연산 성능을 가진 FP16 ALU가 4개 들어가서, 모바일에서 많이 사용되는 FP16의 연산 성능이 상승한 모습을 보여준다. 그리고 Series 6에서 뒷자리수가 "00"인 제품군은 면적 최적화, "30"인 제품군은 성능 최적화 설계가 이뤄졌다.

PowerVR 6/6XT 성능 (600MHz 기준)
제품 명칭 USC 수 FP32/FP16 ALU 수 텍스쳐 유닛 수[2] FP32/FP16 연산성능[3] 텍스쳐 필레이트 OpenGL API 지원
G6200 2 64/64 1 76.8 / 115.2 GFLOPS 2.4 GTexel/s OpenGL ES 3.1, OpenGL 3.2, Vulcan 1.0
G6230 2 64/64 1 76.8 / 115.2 GFLOPS 2.4 GTexel/s
G6400 4 128/128 2 153.6 / 230.4 GFLOPS 4.8 GTexel/s
G6430 4 128/128 2 153.6 / 230.4 GFLOPS 4.8 GTexel/s
G6630 6 192/192 3 230.4 / 345.6 GFLOPS 7.2 GTexel/s
GX6240 2 64/128 1 76.8 / 153.6 GFLOPS 2.4 GPixel/s
GX6250 2 64/128 1 76.8 / 153.6 GFLOPS 2.4 GPixel/s
GX6450 4 128/256 2 153.6 / 307.2 GFLOPS 4.8 GPixel/s
GX6650 6 192/384 3 230.4 / 460.8 GFLOPS 7.2 GPixel/s
GXA6850[4] 8 256/512 4 307.2 / 614.4 GFLOPS 9.6 GPixel/s

시리즈 6/6XT GPU미디어텍 MT8135를 포함한 다양한 미디어텍 AP와 Allwinner A80, Apple A7과 A8, A8X, 인텔 Atom 메리필드, 무어필드의 GPU로 쓰였다.

PowerVR을 사용하는 AP 중에 대표적인 제품군인 Apple A7의 GPU인 G6430는 경쟁 AP의 GPU인 엑시노스 542X의 ARM Mali-T628 헥사코어(MP6)보다 높은 성능,[5] 퀄컴 스냅드래곤 80X의 Adreno 330보다 소폭 높은 성능[6]을 보여줘서 Apple A6 시절 때 동시기의 Adreno와 벌어진 GPU 성능 차이를 극복해내고, 이견의 여지가 없이 동일 세대의 모바일 AP중 최고의 그래픽 성능을 보여주었다. 이로 인해 Apple A7때는 아이패드 에어/1세대를 위해 애플이 따로 A7X를 설계하지 않아도 되었고, Apple A7이 탑재된 아이폰 5s는 지금도 불멸의 명기 취급을 받고 있는 상황.

이후에 나온 Apple A8과 Apple A8X에는 PowerVR 6XT 시리즈인 GX6450과 GXA6850이 탑재되었다. 그 당시 경쟁사 AP의 GPU인 ARM Mali-T760 헥사코어, Adreno 420이 GFX벤치 3.0에서 각각 17fps, 18fps으로 나왔는데 GX6450은 19fps, 추후 Metal API가 적용되어 20fps의 성능을 보여주어서 타사의 AP보다 앞선 GPU 성능을 보여주었다. 그러나 OpenGL ES 3.1 상의 성능을 측정하는 GFX벤치 3.1에서 저 타사의 GPU와 비교하면 의외로 매우 저조한 결과를 보여주었다. 비슷한 상황을 Apple A8X의 GXA6850도 겪고 있는 상황.

Apple A8에 탑재된 GX6450의 3.1 맨해튼 결과를 보면 겨우 8fps로, GX6450의 하위 호환이라고 여겨지는 ARM Mali-T760 헥사코어(11fps), Adreno 420(15fps) 보다 낮은 결과가 나오고, A8X의 GXA6850을 보면 17fps으로, GFX벤치 3.0과 2.7에서 측정시 훨씬 낮은 수준인 ARM Mali-T760 옥타코어(17fps)나 Adreno 430(20fps)랑 비슷하거나 더 낮은 결과가 나왔다.

PowerVR 6XT는 제원 상 최대 6클러스터까지 탑재할 수 있는데 Apple A8X에는 애플이 자체적으로 GPU를 커스텀해서 8클러스터 GPU인 GXA6850(가칭)이 들어갔다. 성능은 초기의 GFX벤치 3.0 결과를 보면 약 32fps로, Tegra K1의 ULP Geforce와 유사한 성능을 보여주었지만 추후에 40fps로 결과가 상향되었다. 2016년 2월 현재까지도 이 GPU를 넘어서는 GPU는 같은 애플의 태블릿용 AP인 Apple A9X의 7XT 12클러스터와 Adreno 530, Tegra X1의 ULP Geforce (256코어) 밖에 없다.

PowerVR 7XT, 7XT+ 성능 (650MHz 기준)
제품 명칭 USC 수 FP32/FP16 ALU 수 텍스쳐 유닛 수[7] FP32/FP16 연산성능 텍스쳐 필레이트 OpenGL API 지원
GT7200 2 64/128 1 83.2 / 166.4 GFLOPS GTexel/s OpenGL ES 3.1, OpenGL 3.3, Vulcan 1.0
GT7400 4 128/256 2 166.4 / 332.8 GFLOPS GTexel/s
GT7600 6 192/384 3 249.6 / 499.2 GFLOPS GTexel/s
GT7800 8 256/512 4 332.8 / 665.6 GFLOPS GTexel/s
GT7900 16 512/1024 8 665.6 GFLOPS / 1.33 TFLOPS GTexel/s
GT7200+ 2 ???/??? ? ??? / ??? GFLOPS ?? GTexel/s OpenGL ES 3.2[8], OpenGL 4.x, Vulcan 1.0
GT7400+ 4 ???/??? ? ??? / ??? GFLOPS ?? GTexel/s
GT7800+ 8 ???/??? ? ??? / ??? GFLOPS ?? GTexel/s

PowerVR 6XT 시리즈의 후속 시리즈로 나온 7XT/7XT Plus이다. 주로 Apple A 시리즈GPU로 사용되었다. 전작인 PowerVR 6 시리즈에 비해 사업 범위가 크게 축소되었는데, 인텔같은 곳은 자체 내장 그래픽을 활용하는 범위가 넓어졌고, 애플처럼 고성능 GPU를 원하는 게 아닌 적당한 성능을 원하는 타 반도체 설계사들이 ARM Mali로 선회한 게 주 원인으로 보인다.

물론 16 클러스터 구성에 저 정도 수준의 권장 클럭을 사용하는 모바일 AP는 존재하지 않지만, GT7900 650Mhz의 FP16 연산성능은 1.33 TFLOPS까지 올라간다.

아키텍처 스펙 자체는 달라진 점이 눈에 띄지 않지만 OpenGL ES 3.1상의 성능이 크게 개선된 것을 볼 수 있다. 3.0 맨해튼에서는 Apple A9의 GT7600과 A8X의 GXA6850 둘다 40fps로 나오지만 3.1 맨해튼 결과를 보면 GXA6850이 17fps인데 GT7600이 28fps로, 크게 개선된 것을 볼 수 있다.

2015년 하반기에 Apple A9에 탑재된 GT7600은 그해 초반까지 스마트폰 AP의 GPU 중 최강 자리를 지키던 ARM Mali-T760 옥타코어와 Adreno 430을 뛰어넘는 성능을 보여주었고, 2016년에 상용화 된 차기 AP에 들어가는 GPU와 비교해도 그다지 부족한 모습을 보여주지 않고 있다. Adreno 530이 GT7600보다 10~20% 높은 성능을 가졌다고 평가받고, ARM Mali-T880 도데카코어[9]와 비슷한 수준이라는 평을 받고 있다.

Apple A9X에 탑재된 7XT 12 클러스터는 2016년 상반기 기준, 현존하는 모바일용 AP의 GPU 중 최강의 성능을 가지고 있다. GFX벤치 상에서 인텔 코어 i 시리즈 6세대의 내장 그래픽인 인텔 Iris 그래픽스 540의 하위 호환급의 성능을 가질 만큼 강력한 GPU이다. 이게 PowerVR GXA6850같이 애플이 자체적으로 커스텀 한 것이라는 주장이 있는데. 정확히 말하면 좀 틀린게 6XT 시리즈의 최대 클러스터 구성은 6개까지인걸 Apple A8X에서 애플이 8개까지 박아 넣은 거지만, 7XT 시리즈는 2~16개 까지 구성이 가능했고 12클러스터에 해당하는 모델명이 따로 없었을 뿐이라서[10] 애플이 자체적으로 커스텀을 했다고 말하기는 힘들다.[11]

아직까지 PowerVR 7XT Plus 제품군을 사용하는 제품은 존재하지 않는다. 나오면 추가바람.

3.4 PowerVR Series 8[편집]

이매지네이션 테크놀로지는 PowerVR 7XT와 7XT+의 후속인 PowerVR 8XT 시리즈를 발표했다. Rogue가 아닌 새로운 GPU 아키텍처를 사용하는 것으로 알려졌다.

주요한 두 가지 특징은 이하와 같다.

  • HSA로 이중 혼합 연산을 지원, CPUGPU가 더 효율적으로 작업을 처리.
  • 하드웨어적으로 광선을 추적하는 기능 탑재, 이미지 퀄리티의 상승과 알고리즘의 단순화, 저비용의 콘텐츠 개발이 가능

4 드라이버 문제[편집]

PowerVR이 안드로이드 스마트폰에 자주 사용되었던 시절 자유 소프트웨어 재단에서는 자유 소프트웨어 PowerVR 드라이버의 개발 필요성을 강조했으나, 지금은 그냥저냥 묻힌 상태이다. 성능에 묻혀서 의외로 잘 알려지지 않은 사실 중에 PowerVR 드라이버 구조가 까탈스럽다는 것이 있다. 과거에 PowerVR 코드를 다루었던 Luc Verhaegen의 블로그에 의하면 소프트웨어 스택에 조그마한 변경이 생겨도 그래픽 드라이버, 커널, 유저스페이스 드라이버를 전부 변경해야 한다고 한다. 애플처럼 플랫폼을 전부 통제한다면 관리가 쉽지만 그렇지 않다면 관리가 어려워지는 구조다.

여기에 대표적으로 엿을 먹었던 사례는 의외로 인텔이다. 인텔은 아톰 CPU 중 일부에 PowerVR을 사용했는데, 스마트폰과 달리 하드웨어 구성이 바뀌기 쉬운 PC 특성 상 제대로 된 드라이버(특히 리눅스)를 찾기 힘들었다. 덕분에 GMA 500/600은 리눅스 드라이버로 3D 가속이나 동영상 가속을 사용하기가 상당히 어려웠고, 윈도우도 상황이 크게 다르진 않아서 Aero를 켜면 화면이 뚝뚝 끊기는 일이 예사였다. GMA 3600/3650은 한 술 더 떠서, CPU는 64비트를 지원하는데 윈도우용 GPU 드라이버는 윈도우 7 32비트용까지만 드라이버를 정식으로 지원했다. 물론 리눅스용 드라이버 이야기는 하는 것 자체가 실례지만... 이러한 PowerVR 드라이버의 불안정성 때문에 아톰 프로세서 그 자체의 성능까지 상당한 악평을 받았다. 아톰 베이트레일 이후 모델은 HD 그래픽 기반으로 GPU를 변경했지만, 스마트폰용 아톰은 여전히 PowerVR을 사용한다. ASUS의 Memo Pad FHD 10같은 모델이 들고 나오는 편[12]

2016년이 되면서 다른 모바일 GPU인 퀄컴 Adreno, Vivante GC 시리즈, ARM Mali 시리즈는 천천히 자유 소프트웨어 드라이버가 나오고 있으나, 아직까지도 PowerVR 쪽은 드라이버 개발이 지지부진하다. 게다가 현재는 PowerVR 그래픽은 거의 아이폰 전용이다...

5 관련 문서[편집]

6 각주

  1. 성능과는 상관 없이 그 당시의 게임 등의 컨텐츠는 죄다 PowerVR SGX에 최적화 되어 있었고, 이 때문에 상대적으로 고성능 GPU였던 ARM Mali-400 쿼드코어는 호환성으로 인한 성능 저하로 초반에 고통받았다. 물론 지금은 해결된 상태.
  2. 상술한 대로 1개당 4 Texel/cycle
  3. 6XT가 아닌 6 시리즈는 FP16 1 ALU당 3 FLOPS/cycle
  4. 애플의 커스텀 구성
  5. 480MHz 기준, 엑시노스 5430의 Mali-T628 MP6 600MHz는 A7의 G6430과 동급이다.
  6. 550, 578MHz의 경우. 450MHz에서 성능은 Mali-T628 MP6 480Mhz보다 낮다.
  7. 상술한 대로 1개당 4 Texel/cycle
  8. OpenGL ES 3.1 + AEP
  9. 가장 최근의 결과인 3.1 맨해튼 25fps, 3.0 맨해튼 41fps, 티렉스 86fps 기준. GT7600은 3.1 맨해튼 28fps, 3.0 맨해튼 40fps, 티렉스 80fps이다.
  10. 12클러스터를 GT71200, 16클러스터를 GT71600으로 부를수는 없는 노릇이니(...) 결국 16클러스터는 그냥 GT7900이라고 모델명을 붙었다.
  11. ARM Mali-T62x를 예로 들면 하이실리콘 Kirin에는 4개의 코어를 사용하고 엑시노스는 변칙적으로 6개를 사용했는데 코어 수를 조절한 걸 커스텀이라고 하는 사람은 없다.
  12. 이 모델은 안드로이드 기반인데 아톰 Z2560을 달고 나온 신기한 물건이다. ARM용 바이너리 해석기가 들어간 게 특징.