본문 바로가기
스마트폰/mobile GPU

퀄컴 Adreno 사양/성능 분석. (update 2014.05.23)

by gamma0burst 2014. 1. 12.
반응형

GL벤치마크 결과로 현재까지 알려진 Adreno GPU의 클럭이 맞는지 확인해보고,
클럭을 기반으로 이론적인 성능을 정리해보겠습니다.
이하 그래프는 GL벤치마크 2.7/2.5 에서 각 제품의 성능 분포입니다.



연산성능 계산을 위한 ALU 구성을 먼저 보겠습니다.
Adreno 계열은 기본적으로 4vec+1scalar 의 ALU 구성을 보입니다.
ALU수로 카운트되는건 벡터(vec) ALU 만이고요.
벡터 유닛은 1클럭에 2번의 연산을 하고 스칼라 유닛은 1클럭에 1번의 연산을 합니다.
Adreno200 계열은 스칼라 유닛이 FP연산을 못 하고, Adreno300 계열은 가능하다고 합니다.


- Adreno 200
1 TMU, 1 ROP 로 구성된 MP1으로 볼 수 있습니다.
MP1 당 8 ALU

 


2.7에서는 프레임 자체가 너무 낮아서 성능 격차가 잘 드러나지 않습니다.
2.5 결과를 보면 확연하게 드러나지요.
기존의 클럭 정보를 고려해보면, 1.1 fps 결과는 133MHz, 2.0 fps 결과는 245MHz로 보입니다.

Adreno 200
8 ALU, 1 TMU, 1 ROP
133MHz - 22.2 Mtri/s, 133 Mtex/s, 133 Mpix/s, 2.13 GFLOPS
245MHz - 40.8 Mtri/s, 245 Mtex/s, 245 Mpix/s, 3.92 GFLOPS


- Adreno 205
1 TMU, 1 ROP 로 구성된 MP1으로 볼 수 있습니다.
MP1 당 16 ALU



2.5 결과가 없어서 2.7 결과만 있습니다.
클럭 단계와 성능 차이를 봐서는, 1.2~1.3 fps 결과는 245MHz, 1.4~1.5 fps 결과는 266MHz 같습니다.

Adreno 205
16 ALU, 1 TMU, 1 ROP
245MHz - 40.8 Mtri/s, 245 Mtex/s, 245 Mpix/s, 7.84 GFLOPS
266MHz - 43.3 Mtri/s, 266 Mtex/s, 266 Mpix/s, 8.51 GFLOPS


- Adreno 203
1 TMU, 1 ROP 로 구성된 MP1으로 볼 수 있습니다.
MP1 당 16 ALU

 


2.7 결과 쪽이 클럭 차이에 따른 성능 격차가 명확하게 보이네요.
알려진 클럭, 성능 격차, GL벤치마크의 텍셀 결과를 종합해보면,
1.5 fps 결과는 245MHz, 1.8~1.9 fps 결과는 294MHz 같습니다.

Adreno 203
16 ALU, 1 TMU, 1 ROP
245MHz - 40.8 Mtri/s, 245 Mtex/s, 245 Mpix/s, 7.84 GFLOPS
294MHz - 49 Mtri/s, 294 Mtex/s, 294 Mpix/s, 9.41 GFLOPS


- Adreno 220
2 TMU, 2 ROP 로 구성된 MP2로 볼 수 있습니다.
MP1 당 16 ALU

 


2.5 결과는 일관성이 잘 안 보입니다.
2.7 결과에서 가장 높은 값은 혼자 튀는게 오버클럭 등의 영향인 것으로 보이기도 합니다만, Adreno 225의 결과를 참고했을 때 이게 정상적인 최대 성능으로 보입니다.
266MHz로 알려져 있는데 3.0 fps 수준인듯 하네요.

Adreno 220
32 ALU, 1 TMU, 2 ROP
266MHz - 88.7 Mtri/s, 532 Mtex/s, 532 Mpix/s, 17.02 GFLOPS


- Adreno 225
2 TMU, 2 ROP 로 구성된 MP2로 볼 수 있습니다.
MP1 당 16 ALU

 


사양은 Adreno 220의 오버클럭 버전입니다.
2.7 기준으로 4.6 fps 결과는 400MHz로 보입니다.

Adreno 225
32 ALU, 1 TMU, 2 ROP
400MHz - 133.3 Mtri/s, 800 Mtex/s, 800 Mpix/s, 25.6 GFLOPS


- Adreno 305
2 TMU, 2 ROP 로 구성된 MP1으로 볼 수 있습니다.
MP1 당 24 ALU

 


2.7/2.5 결과 모두 중간에 크게 성능이 뛰는 구간이 있습니다.
클럭이 다른 제품이 있다고 볼 수 있습니다.
2.7 기준으로 6.5 fps 결과가 450MHz, 5.7~5.9 fps 결과가 400MHz로 보입니다.
Adreno 300 계열로 넘어오면서 MP1당 ALU 수가 24개로 늘어났습니다.

Adreno 305
24 ALU, 2 TMU, 2 ROP
400MHz - 66.7 Mtri/s, 800 Mtex/s, 800 Mpix/s, 21.6 GFLOPS
450MHz - 75 Mtri/s, 900 Mtex/s, 900 Mpix/s, 24.3 GFLOPS


- Adreno 320
8 TMU, 8 ROP 로 구성된 MP4로 볼 수 있습니다.
MP1 당 16/24 ALU

 


2.7/2.5 결과를 봐도 너무 선형적으로 나옵니다.
Adreno320 쓰는 두 제품, 스냅드래곤600과 S4프로 결과를 구분해보지요.

 


스냅드래곤600 결과입니다.
빨간점은 고클럭(450MHz) 결과로 추정되는 제품들입니다.
2.7 결과를 보면 성능이 크게 뛰는 구간이 있지요.
고클럭 제품의 결과가 거기에 대부분 포함되어 있고요.

 


스냅드래곤 S4프로 결과입니다.
스냅드래곤 S4프로 중에서 CPU가 스냅드래곤600과 같은 Krait300 기반인 제품이 있습니다.
그걸 쓰는 대표적인 제품이 넥서스7 2013 이지요.
빨간점은 그런 제품입니다.
기존 S4프로와 확실한 성능 격차를 보이고, 스냅드래곤600의 Adreno320 결과와 동급입니다.
해당 제품은 이름만 스냅드래곤 S4프로이지 실제는 CPU와 GPU가 스냅드래곤600과 동일한 기반이라고 볼 수 있습니다.
GPU 클럭은 둘 다 400MHz이고 TMU, ROP 수가 동일한데 성능 격차가 있다는건 ALU 수가 다르기때문이라고 해석할 수 있습니다.
스냅드래곤 S4프로의 Adreno320은 Adreno200 계열과 같이 MP1당 16ALU로 보이고, 스냅드래곤600의 Adreno320은 Adreno305와 같이 MP1당 24ALU로 보입니다.

Adreno 320 (Snapdragon S4 Pro)
64 ALU, 8 TMU, 8 ROP
400MHz - 225 Mtri/s, 3200 Mtex/s, 3200 Mpix/s, 57.6 GFLOPS

Adreno 320 (Snapdragon 600)
96 ALU, 8 TMU, 8 ROP
400MHz - 225 Mtri/s, 3200 Mtex/s, 3200 Mpix/s, 86.4 GFLOPS
450MHz - 253.1 Mtri/s, 3600 Mtex/s, 3600 Mpix/s, 97.2 GFLOPS


- Adreno 330
8 TMU, 8 ROP 로 구성된 MP4로 볼 수 있습니다.
MP1 당 32 ALU

 


2.7/2.5 모두 성능이 뛰는 구간이 명확하게 보입니다.
기존에 알려진대로 450MHz, 550MHz가 있는듯 합니다.
2.7 기준으로 23 fps 결과는 450MHz, 27 fps 결과는 550MHz
MP1당 ALU는 또 늘어나서 32개입니다.
최근 결과를 보면 578MHz 제품(AB?)도 나오기 시작한듯 합니다.

Adreno 330
128 ALU, 8 TMU, 8 ROP
450MHz - 253.1 Mtri/s, 3600 Mtex/s, 3600 Mpix/s, 129.6 GFLOPS
550MHz - 309.4 Mtri/s, 4400 Mtex/s, 4400 Mpix/s, 158.4 GFLOPS
578MHz - 325.1 Mtri/s, 4624 Mtex/s, 4624 Mpix/s, 166.5 GFLOPS



- Adreno 420 (추정치)
(링크 : 스냅드래곤805 벤치마크 분석. (Snapdragon805, Adreno420))
8 TMU, 8 ROP 로 구성된 MP4로 볼 수 있습니다.

MP1 당 48 ALU
MP1 당 32 ALU


Adreno 420
192 ALU, 8 TMU, 8 ROP
500MHz - 281.3 Mtri/s, 4000 Mtex/s, 4000 Mpix/s, 216 GFLOPS
600MHz - 337.5 Mtri/s, 4800 Mtex/s, 4800 Mpix/s, 259.2 GFLOPS

Adreno 420
128 ALU, 8 TMU, 8 ROP
500MHz - 281.3 Mtri/s, 8000 Mtex/s, 4000 Mpix/s, 144 GFLOPS
600MHz - 337.5 Mtri/s, 9600 Mtex/s, 4800 Mpix/s, 166.5 GFLOPS

- Adrno430 (추정치)
12TMU, 12ROP로 구성된 MP6으로 볼 수 있습니다.
MP1 당 48 ALU

Adreno430
288 ALU, 12 TMU, 12 ROP

500MHz - 500 Mtri/s, 6.0 Gtex/s, 6.0 Gpix/s, 324.0 GFLOPS
600MHz - 600 Mtri/s, 7.2 Gtex/s, 7.2 Gpix/s, 388.8 GFLOPS


- 정리



제가 주목하는건 ALU 수와 ALU/MP(1MP당 ALU수) 입니다.
아드레노뿐만 아니라 다른 제품에도 비슷하게 적용되는 경향이 있습니다.

PowerVR6 시리즈는 1클러스터당 32ALU or 48ALU 로 추측되고 있고, (330, 420과 동일)
SGX554는 MP1당 32ALU 였고, (330과 동일.)
SGX543/544는 MP1당 16ALU 였고, (200 계열과 동일.)
테그라K1는 192코어, 8TMU, MP1당 32ALU . (420과 동일.)

서로 다른거 같지만 사실 사양 발전 경향은 다 비슷한듯 합니다.
아무래도 공정 탓이겠지요.
Adreno : 65nm 8 ALU/MP, 45nm 16 ALU/MP, 28nm 24~32 ALU/MP
SGX : 45/32nm 16 ALU/MP, 28nm 32~48 ALU/MP

- 추가.
ALU-클럭당성능 그래프.



선형적으로 나오는데 64ALU 결과가 혼자서 높게 나옵니다.
96ALU로 가정하면 들어맞는데 그러자니 Adreno320 간의 성능 차이가를 설명할 방법이 없습니다.


- 2014.01.23. Adreno430 추정치 추가, Adreno330 578MHz 추가.
(
퀄컴 스냅드래곤 유출 로드맵 분석.(스냅드래곤810, MSM8994))

- 2014.03.19
GFX벤치 3.0 텍셀필레이트 결과를 근거로 TMU 숫자민 텍셀 필레이트를 수정했습니다.
ROP, TMU의 숫자는 같은 것으로 보이고, GL벤치마크 2.7에서 어떤 이유로 인해 텍셀 필레이트가 제대로 측정되지 않은듯 합니다.

- 2014.05.23
Adreno420 사양 수정.
(링크 : 스냅드래곤805 벤치마크 분석. (Snapdragon805, Adreno420))



반응형

댓글