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

엑시노스 5250 GPU 및 Mali-T604 분석.

by gamma0burst 2012. 8. 14.
반응형

간만에 소설 한 번 써보겠습니다.
소설이라함은 제가 확신을 가질 수 없는 부분이 몇 가지 존재하기때문입니다.
제 정보력과 능력 하에서 나올 수 있는 최선의 결론으로, 아마 틀리는 부분도 있고 맞는 부분도 있을겁니다.
이런 점 염두하고 보셨으면 합니다.


-
얼마 전에 엑시노스 5250 의 화이트페이퍼가 공개되었습니다.
(
삼성 엑시노스 5250 (Exynos 5250) 세부스펙 공개.)
GPU로
Mali-T604 가 탑재되는 것으로 나와있지요.

ARM의 1세대 Mali-T600 시리즈의 IP가 발표된지는 꽤 오래되었지만, 실제 제품화가 다가오는건 이번이 처음입니다.
구조적으로 이전 세대와 크게 변화하기때문에 구체적인 구조, 성능, 스펙이 정확하게 밝혀지지 않은 상태이기도 합니다.

이제까지 ARM, 삼성 등이 공개한 자료를 보아서 그 스펙을 추측해보려합니다.

일단 그 동안 공개되었던 Mali-T604 의 자료를 먼저 보면서 거기서 힌트가 될만한 것들을 찾아보겠습니다.


1. 각 연산유닛 성능은 17FLOPs/cycle, 연산유닛의 다중화(멀티코어화)를 통해 0.5TFLOPS 이상 가능.


2. Mali-T604 의 그래픽 성능은 최대 2 Gpix/s, 연산성능은 최대 68GFOLPS




3. Mali-T604 의 그래픽 성능은 최대 2 Gpix/s, 연산성능은 최대 68GFOLPS
Mali-T658 의 연산성능은 최대 272GFOLPS (T658 에 대한 것은 마지막에 부수적으로 다룰 예정)


4. 삼성 엑시노스 5250 의 Mali-T604 의 연산성능은 72GFLOPS


5. Mali-T604 통합쉐이더의 구조.


6. ARM의 발표 내용을 토대로 작성된 Mali-T604 의 구조 추측.


정리해보면 다음과 같습니다.

1. 각 연산유닛 성능은 17FLOPs/cycle
2. Mali-T604 의 그래픽 성능은 최대 2 Gpix/s, 연산성능은 최대 68GFOLPS
3. 삼성 엑시노스 5250 의 Mali-T604 의 연산성능은 72GFLOPS
4. Mali-T604 는 4개의 쉐이더코어로 구성되어있으며, 각 코어는 2개의 연산유닛, Load/Store유닛, 텍스쳐 유닛으로 구성되어 있다.
5. 각 연산유닛은 128bit(4-way 32bit) 벡터유닛 + 32bit 스칼라유닛 으로 구성. 

4,5 의 스펙 추정을 중심으로 1,2,3 의 내용을 검증해보겠습니다.


1. 각 연산유닛 성능은 17FLOPs/cycle

128bit 벡터유닛이 FP(Floating-point : 부동소수점) 연산이 가능한건 확실합니다.
32bit 스칼라유닛이 FP 연산이 가능한가가 불명인데, 가능한 쪽으로 보는게 타당합니다.
정수연산만 한다고 가정하면, 전체 연산성능에서 상당히 손해를 보는데다가,
연산 자원이 넉넉하지 않은 상황에서 벡터유닛이 정수연산이 가능한데 굳이 정수 연산만을 위한 스칼라 유닛을 추가하는건 낭비에 가깝습니다.

벡터유닛과 스칼라유닛이 모두 한 사이클(cycle)에 ADD, MUL(Multiply)의 2회 연산을 한다고 가정하겠습니다.
(2 OPeratons/cycle)
(대부분 연산에 있어서 덧셈, 곱셈의 비중이 높기때문에 덧셈, 곱셈을 주력으로 삼고, 그 외의 연산들은 특수연산으로 돌립니다.)
이 가정은 일반적인 GPU를 생각했을 때, 실제로 그러할 확률은 99% 이상입니다.
다만, 엔비디아를 비롯한 일부 제품에 4 OPeratons/cycle 혹은 1 OPeratons/cycle 의 특성을 보이는 연산유닛이 포함되어있기때문에 가정이라 한 것입니다.

이제까지의 내용을 토대로 계산해보면,
단정밀도 (single precision, 32bit FP) 기준으로 10 FLOPs/cycle 이 나옵니다.
(벡터유닛 4 x 2 + 스칼라유닛 1 x 2 = 10)

17FLOPs/cycle 와 차이가 있습니다.
모자라는 7 FLOPs/cycle 은 16bit FP normalizaion 같은데 정확한건 잘 모르겠네요.
(실력이 부족...)
(16 FP 기준일 가능성도 있기는한데, 설마하니 그걸 기준으로 표기하지는 않았겠지요.)



2. Mali-T604 의 그래픽 성능은 최대 2 Gpix/s, 연산성능은 최대 68GFOLPS

연산유닛 하나의 연산능력이 17 FLOPs/cycle 인건 확인이 되었습니다.
Mali-T604 의 쉐이더 코어가 4개이고, 쉐이더 코어 하나에는 연산유닛이 2개씩 있으니, 총 연산유닛 수는 8개가 됩니다.
(17 FLOPs/cycle) x (8개) x (클럭) = 68 GFLOPS 가 됩니다.
클럭은 500MHz 가 됩니다.

통합쉐이더 방식에서 그래픽 성능은 텍스쳐유닛(TMU), 렌더아웃풋유닛(ROP)의 수와 동작 속도에 따라 결정됩니다.
통합쉐이더 방식에서는 연산능력을 극대화하기위해 쉐이더프로세서를 극단적으로 늘리는 방식을 취하는데, 이렇게 연산유닛과 출력단이 1:1 대응하지 않으면 병목이 발생하기때문.
Mali-T600 시리즈에 사용된 미드가르드(Midgard) 아키텍처에서는 텍스쳐유닛이 ROP 기능도 겸하고 있습니다.
Mali-T604 의 쉐이더 코어는 4개인데, 쉐이더 코어 하나에는 텍스쳐유닛이 하나씩 있기때문에 총 4개가 있습니다.
2Gpix/s / 4 = 500MHz
역시나 500MHz 가 나옵니다.

ARM에서 권장?보증?하는 Mali-T604 최대 클럭은 500MHz 로 보입니다.


3. 삼성 엑시노스 5250 의 Mali-T604 의 연산성능은 72GFLOPS

연산능력이 더 높아졌습니다.
클럭이 더 높은거지요.
500MHz x (72GFLOPS/68GFLOPS) = 530MHz

엑시노스 5250 에서 Mali-T604 의 클럭은 533MHz 정도일 것으로 보입니다.

Mali-T604 533MHz 의 픽셀 성능을 계산해보면 2.13Gpix/s 가 나옵니다.
Mali-400MP4 400MHz(엑시노스 4412) 의 그래픽 성능이 1.6Gpix/s 입니다.
Mali-400MP4 266MHz(엑시노스 4210) 은 1.06Gpix/s

Mali-400MP4 266MHz 대비 2배 (100% 향상)
Mali-400MP4 400MHz 대비 1.33배 (33% 향상)

통합쉐이더에서는 성능지표가 픽셀성능과 텍스쳐성능이기때문에 의미가 없는 것 같기도 한데,
그래도 버텍스 성능을 유추해보겠습니다.

엔비디아, AMD의 사례를 보면 동일 스펙(클럭, 유닛수)에서 버텍스 성능이 텍스쳐 성능의 1/4 정도입니다.
최대 1클럭에 1 triangle 인거지요. (3D에서는 기본 단위사면체이니 어찌보면 당연)
이를 Mali-T604 에 그대로 적용해보면 533 Mtri/s
이 수치가 맞다는 보장은 없지만, 맞다고 가정하면 버텍스 성능이 높다는 Adreno 를 크게 앞서는 수준입니다.


(엑시노스 5250 화이트 페이퍼에 있는 이 비교는 엑시노스 4210 과의 비교인가?)


앞의 내용을 토대로 Mali-T658 도 보겠습니다.


쉐이더 코어수가 2배이고, 코어당 연산유닛 수도 2배로 늘었습니다.



자료를 토대로한 구조 추정.

쉐이더 코어 8개
연산유닛 32개
텍스쳐유닛 8개



1. Mali-400MP4 의 최대 10배의 그래픽 성능.

Mali-400MP4 400MHz 의 그래픽 성능이 1.6Gpix/s 입니다.
10배면 16Gpix/s 겠지요.
텍스쳐유닛이 8개이니 나누면 2GHz 가 나오네요. 이건 좀 무리한 클럭이고...
Mali-400MP4 가 아닌 Mali-400 가 기준이면 500MHz 가 나옵니다.

10배의 기준이 뭔지 모르겠네요.



2. 272 GFLOPS

(17 FLOPs/cycle) x (32개) x (클럭) = 272 GFLOPS
500MHz 나옵니다.
Mali-T604 와 같네요.



3. 350 GFLOPS

(17 FLOPs/cycle) x (32개) x (클럭) = 350 GFLOPS
643MHz 가 나옵니다.
현재 공정 수준에서는 Mali-T658 정도면 많이 양보해서 태블릿, 보통은 순수 GPGPU 연산 용도정도를 생각할 수 있는 수준이기때문에 고클럭을 상정해도 이상하지 않습니다.




4. 168 GFLOPS

(17 FLOPs/cycle) x (32개) x (클럭) = 168GFLOPS
309MHz 정도 나옵니다.

엑시노스 5450 GPU 클럭은 309MHz 내외인듯.
실제 제품이 어떨지는 모르겠지만요.



- 결론
1. ARM 에서 Mali-T604 최대 클럭을 500MHz 로 상정했다.
2. 삼성 엑시노스 5250 의 Mali-T604 클럭은 533MHz 이다.
3. 버텍스, 픽셀 성능으로 보건데, Mali-T604 의 그래픽 성능은 크게 향상되었다.
(더 이상 버텍스 고자가 아님.)
4. Mali-T658 의 성능은 클럭이 유동적이기때문에 확실하지 않다. 다만 클럭이 확실하면 어느 정도 계산이 가능.



반응형

댓글