- 시작하기에 앞서
A330과 T628MP6을 비교해보면 2.1 이집트 - 2.7 티렉스 - 3.0 맨해튼으로 올수록 T628의 성능이 열세로 나타남.
2.1에서는 우위였으나 2.7에서 동급, 3.0에서 열세로 돌아섬.
이는 테스트 성향이 픽셀 중심에서 폴리곤(텍스처, 버텍스) 중심으로 넘어가고 있기때문으로 추측.
후자쪽으로 갈수록 ALU(SP : 쉐이더 프로세서)의 사용률이 올라감.
3DMark가 대표적인 케이스인데 SP x 클럭(근사적으로 연산성능.)에 비례해서 점수가 나오는 수준.
물론 실제 게임 등에서는 그 정도로 쉐이더를 하드하게 쓰지는 않는건지 SP수와 프레임이 비례하기는 않지만 최소한 하드한 벤치마크에서는 ALU(SP)성능이 중요하다는 것.
그리고 그런 경향이 이제 모바일 GPU 벤치마크에서까지 나타나고 있다는 것.
그렇기때문에 모바일 디바이스 성능 평가에서도 갈수록 ALU 성능이 중요시 될 수 밖에 없는 흐름.

 

 

- 테스트 결과 정리/분석

 

GPU

ALU off (fps)

CLK (MHz)

GFLOPS (이론)

ALU/GFLOPS

A420

165.2

600

172.8

0.96

A330

153.5

578

166.5

0.92

A320

58.6

450

64.8

0.90

T628MP6

47.3

480

97.9 (all)

0.48

T628MP6

47.3

480

51.8 (mul)

0.91

T628MP6

47.3

480

46.1 (add)

1.03

 

GPU 본연의 성능이라면 연산성능.

GFX벤치 ALU 테스트가 연산성능과 관련되어 있을거라는건 쉽게 생각할만한 부분.

그런데 그렇게 치면 T628MP6과 A330의 연산성능 차이는 70%인데, ALU 결과 차이는 3배가 넘게납니다.

석연치 않은 부분.

그렇다면 전체 연산성능이 의미가 없다는건데......

 

1. T628

T628(정확히는 midgard 아키텍처)의 연산성능은 17 flops/cycle인데 구성을 보면,

7 : Dot product (4 muls, 3 adds)
1 : scalar add
4 : vec4 add
4 : vec4 multiply
1 : scalar multiply

 

전체 성능이 아니면 multiply나 add라는건데, 그래서 계산해본게 위의 표.

ALU 결과와 연산성능 비율을 봐서는 multiply 연산을 중심으로 테스트하는듯.

그렇다는건 그래픽 연산에서 비중이 높은게 multiply 연산이라는거겠고.

 

2. Adreno

FP32 연산성능 전체로 적용한 값대로 ALU 성능이 나와줍니다.

vec4+scalar 구조라는데......

FP32 기준이면 mul 연산만 따지면 전체 연산성능의 반토막으로 나올겁니다.

그런데도 연산성능이 그대로 적용된다는건 mul 연산으로해도 그만큼 수치가 나온다는거.

ALU에서 쓰는게 FP16 연산일지도 모르겠습니다.

 

3. PowerVR6 에서 문제?

이런 식이면 G6430(A7)과 GX6450(A8) ALU 결과 클럭 차이 수준이라는거 문제?

자료를 보니,

(링크 : https://de45xmedrsdbp.cloudfront.net/Resources/files/GDC2014_Next_Generation_Mobile_Rendering-2033767592.pdf)

 - PowerVR 6

FP16 : 2 SOP/cycle (SOP : a*b + c*d)

FP32 : 2 MADD/cycle (MADD : a*b +c)

 - PowerVR 6XT

FP16 : 4 MADD/cycle

FP32 : 2 MADD/cycle

 

이러면 FP16 MUL은 둘의 차이가 없습니다.

G6430(A7)과 GX6450(A8)의 ALU 결과가 클럭 차이 수준인게 맞는거.

ALU 테스트에서 쓰는게 FP32인지 FP16 인지 알 수 없지만 어느 쪽으로 보든 ALU 결과를 들어맞음.

 

 

- FP16 MUL 기준으로 정리해보면,

 

GPU

ALU off (fps)

CLK (MHz)

GFLOPS (이론)

ALU/GFLOPS

A420

165.2

600

345.6

0.48

A330

153.5

578

332.9

0.46

A320

58.6

450

129.6

0.45

T628MP6

47.3

480

103.7

0.48

G6430 (A7)

78.6

450

172.8

0.45

GX6450 (A8)

94.3

550

211.6

0.45

 

정확한지 모르겠지만 일단은 잘 들어맞네요.

 

 

- 결국

Mali 계열이 맨해튼에서 성능 열세를 보이는건 FP16 Matrix-Multiply 연산 성능 부족때문.

 

Add 연산까지 활용할 수 있는 최적화 코드를 활용하면 어느 정도 성능 부족을 개선할 수 있을 것으로 보이지만 근본적으로 다수 애플리케이션 적용에는 한계가 있는 방식일듯.

 

결국 해결하려면 현재 MP당 2개인 ALU수를 늘리든가, ALU 구조를 바꾸든가 해야할텐데 T760까지는 미드가르드 아키텍처를 따르느라 변화가 없었음.

관건은 이후 신규 아키텍처에서 변화가 있을 것인가.

 

 

 

신고
Posted by gamma0burst Trackback 0 : Comment 8

댓글을 달아 주세요

  1. addr | edit/del | reply 2014.09.27 23:40

    비밀댓글입니다

    • addr | edit/del Favicon of http://gamma0burst.tistory.com BlogIcon gamma0burst 2014.09.28 00:35 신고

      3DMark는 구체적으로 따져봐야겠지만 대충 보니까 FP32 연산성능 따라가더거 같더군요.
      T658/678이었으면 같은 MP에서 ALU가 2배로 늘어나니 훨씬 결과가 잘 나왔을겁니다.

  2. addr | edit/del | reply 2014.09.29 20:17

    비밀댓글입니다

    • addr | edit/del Favicon of http://gamma0burst.tistory.com BlogIcon gamma0burst 2014.09.29 21:37 신고

      무슨 일있었나요?
      넷에서 티격태격하는거 하루이틀 일도 아니니 너무 신경쓰지 마세요.

  3. addr | edit/del | reply BlogIcon 으흠 2014.09.30 00:15 신고

    결국 아드레노 420 짱짱맨이라는거네요

  4. addr | edit/del | reply jhj 2014.10.02 21:15 신고

    lg에서 이런말을 했더군요 600ppi까지 사람들이 구분한다고 그런대 과연 5인치대 스마트폰에서 그런가요?

    꼭 그개아니더라도 아드레도420 성능향상만큼 해상도가 올라갔으니 결국엔 그대로 아닌가요?

    결국 성능에서 가장 이득보는건 아이폰쪽 아닐까요?

    • addr | edit/del Favicon of http://gamma0burst.tistory.com BlogIcon gamma0burst 2014.10.03 18:20 신고

      (좋게 해석해서) 말씀하시는건 거의 고해상도 무용론에 가깝습니다.
      실성능이 중요하니 해상도 올릴 필요없다는 얘기이고, 이런 얘기할 때 꼭 빠지지 않는게 아이폰.

      그런데 이번 아이폰6+도 딱히 해상도 덕을 못 봤습니다.
      해상도는 1920 x 1080인데 렌더링할 때는 2208 x 1242로 한다음에 1920 x 1080으로 다운샘플링합니다.
      그래서 벤치마크보면 온스크린, 오프스크린은 이론적으로 같은 FHD라서 프레임이 같게 나와야하는데, 다운샘플링때문에 온스크린(=실성능) 결과가 오히려 낮게 나오지요.
      화면 크기 키우면서 아이폰도 딱히 이득이 없습니다.
      자기들이 뱉은 레티나도 지켜야하고 그러면서 개발편의성을 위해 기존 해상도와의 스케일링도 지켜야하는 이중고지요.