- Vivante(비반테) GPU 사양 분석입니다.

SM-J100F에 들어가는, 마벨의 PXA1908에 들어가는 GPU가 GC7000UL인 것도 관심을 끌었고,

삼성에서 비반테의 R&D 조직을 인수해서 자체 GPU 개발에 활용할 것이라는 기사, 루머도 있습니다.

미리 알아두는게 나중을 위해 편하겠지요.

 

 

- 좀 된 내용이긴한데 GC7000 시리즈를 발표했습니다.

 

 

 

GC7000 시리즈 사양은 이렇습니다.

사실 이것만 봐서는 왜 저 성능이 나오는지 이해하기 힘듭니다.

자체적인 기준으로 표기해놓은 부분도 있어서 더더욱 그렇습니다.

 

일단 아래 주석의 내용을 보면 표의 코어 수는 vec1 기준이라고 합니다.

쉐이더 코어 이름은 베가(Vega)인듯 합니다.

그렇다면 일단 베가 코어가 어떤 것인지 알아봐야겠지요.

 

 

- 베가 쉐이더 코어

 

1. shader unit quantum = 쉐이더 코어

128bit (vec4) + transcendental(?)

medium precision 기준 17 flops/cycle -> FP16 기준 8 mul + 8 add + 1 transcendental = 17 flops/cycle

full precision 기준 9 flops/cycle -> FP32 기준 4 mul + 4 add + 1 transcendental = 9 flops/cycle

double precision 기준 5 flops/cycle -> FP64 기준 2 mul + 2 add + 1 transcendental = 5 flops/cycle (옵션)

 

2. 1~16 쉐이더 코어 = 1 GPU 코어.

GPU 코어 1~4개 구성.

 

3. 28HPM 공정에서 쉐이더 클럭이 1GHz라는건 GC7000 자료와 일치.

 

->

위 표에서 Medium Precision은 FP16, High precision은 FP32로 보입니다.

 

 

- 이전 제품 사양

 

 

1. GC400 시리즈

코어클럭 : 400MHz

쉐이더 클럭 : 400MHz

vec4 (128bit) 기준 코어 수 : 1

트라이앵글 : 400MHz(코어클럭) /10(비율) = 40 Mtri/s

버텍스 : 400MHz(쉐이더클럭) x1(rasterizer 성능?) x1(코어수) /4 = 100 Mvtx/s

FP32 연산성능 : 1(코어수) x4(vec4) x2(add+mul) x400MHz(쉐이더클럭) = 3.2GFLOPS

 

2. GC800 시리즈

코어클럭 : 400MHz

쉐이더 클럭 : 800MHz

vec4 (128bit) 기준 코어 수 : 1

트라이앵글 : 400MHz(코어클럭) /5(비율) = 80 Mtri/s

버텍스 : 800MHz(쉐이더클럭) x1(코어당 rasterizer 수?) x1(코어수) /4 = 200 Mvtx/s

FP32 연산성능 : 1(코어수) x4(vec4) x2(add+mul) x800MHz(쉐이더클럭) = 6.4GFLOPS

 

3. GC1000 시리즈

코어클럭 : 800MHz

쉐이더 클럭 : 1000MHz

vec4 (128bit) 기준 코어 수 : 2

트라이앵글 : 800MHz(코어클럭) /6.5(비율) = 123 Mtri/s

버텍스 : 1000MHz(쉐이더클럭) x1(코어당 rasterizer 수?) x2(코어수) /4 = 500 Mvtx/s

FP32 연산성능 : 2(코어수) x4(vec4) x2(add+mul) x1000MHz(쉐이더클럭) = 16.0GFLOPS

 

4. GC2000 시리즈

코어클럭 : 800MHz

쉐이더 클럭 : 1000MHz

vec4 (128bit) 기준 코어 수 : 4

트라이앵글 : 800MHz(코어클럭) x2 /6(비율) = 267 Mtri/s

버텍스 : 1000MHz(쉐이더클럭) x1(코어당 rasterizer 수?) x4(코어수) /4 = 1000 Mvtx/s

FP32 연산성능 : 4(코어수) x4(vec4) x2(add+mul) x1000MHz(쉐이더클럭) = 32.0GFLOPS

 

5. GC3000 시리즈

코어클럭 : 800MHz

쉐이더 클럭 : 1000MHz

vec4 (128bit) 기준 코어 수 : 4

트라이앵글 : 800MHz(코어클럭) x2 /6(비율) = 267 Mtri/s

버텍스 : 1000MHz(쉐이더클럭) x1(코어당 rasterizer 수?) x4(코어수) /4 = 1000 Mvtx/s

FP32 연산성능 : 4(코어수) x4(vec4) x2(add+mul) x1000MHz(쉐이더클럭) = 32.0GFLOPS

 

6. GC4000 시리즈

코어클럭 : 800MHz

쉐이더 클럭 : 1000MHz

vec4 (128bit) 기준 코어 수 : 8

트라이앵글 : 800MHz(코어클럭) x2 /6(비율) = 267 Mtri/s

버텍스 : 1000MHz(쉐이더클럭) x1(코어당 rasterizer 수?) x8(코어수) /4 = 2000 Mvtx/s

FP32 연산성능 : 8(코어수) x4(vec4) x2(add+mul) x1000MHz(쉐이더클럭) = 64.0GFLOPS

 

7. GC5000 시리즈

코어클럭 : 800MHz

쉐이더 클럭 : 1000MHz

vec4 (128bit) 기준 코어 수 : 8

트라이앵글 : 800MHz(코어클럭) x2 /6(비율) = 267 Mtri/s

버텍스 : 1000MHz(쉐이더클럭) x1(코어당 rasterizer 수?) x8(코어수) /4 = 2000 Mvtx/s

FP32 연산성능 : 8(코어수) x4(vec4) x2(add+mul) x1000MHz(쉐이더클럭) = 64.0GFLOPS

 

8. GC6000 시리즈

코어클럭 : 800MHz

쉐이더 클럭 : 1000MHz

vec4 (128bit) 기준 코어 수 : 16

트라이앵글 : 800MHz(코어클럭) x4 /6(비율) = 533 Mtri/s

버텍스 : 1000MHz(쉐이더클럭) x1(코어당 rasterizer 수?) x16(코어수) /4 = 4000 Mvtx/s

FP32 연산성능 : 16(코어수) x4(vec4) x2(add+mul) x1000MHz(쉐이더클럭) = 128.0GFLOPS

 

9. GC7000 시리즈 (GC7400)

코어클럭 : 800MHz

쉐이더 클럭 : 1000MHz

vec4 (128bit) 기준 코어 수 : 32

트라이앵글 : 800MHz(코어클럭) x8 /6(비율) = 1067 Mtri/s

버텍스 : 1000MHz(쉐이더클럭) x1(코어당 rasterizer 수?) x32(코어수) /4 = 8000 Mvtx/s

FP32 연산성능 : 32(코어수) x4(vec4) x2(add+mul) x1000MHz(쉐이더클럭) = 256.0GFLOPS

 

 

10. GC7000UL(UltraLite)

코어클럭 : 800MHz

쉐이더 클럭 : 1000MHz

vec4 (128bit) 기준 코어 수 : 2

텍셀필레이트 : 1 Tex/cycle x 800MHz(코어클럭) = 0.8 GTex/s

버텍스 : 2(코어수) x 1GHz(쉐이더클럭) /4 = 0.5 GVert/s

FP32 연산성능 : 2(코어수) x4(vec4) x2(add+mul) x1GHz(쉐이더클럭) = 16GFLOPS

 

11. GC7000Lite

코어클럭 : 800MHz

쉐이더 클럭 : 1000MHz

vec4 (128bit) 기준 코어 수 : 4

텍셀필레이트 : 2 Tex/cycle x 800MHz(코어클럭) = 1.6 GTex/s

버텍스 : 4(코어수) x 1GHz(쉐이더클럭) /4 = 1.0 GVert/s

FP32 연산성능 : 4(코어수) x4(vec4) x2(add+mul) x1GHz(쉐이더클럭) = 32GFLOPS

 

12. GC7000

코어클럭 : 800MHz

쉐이더 클럭 : 1000MHz

vec4 (128bit) 기준 코어 수 : 8

텍셀필레이트 : 4 Tex/cycle x 800MHz(코어클럭) = 3.2 GTex/s

버텍스 : 8(코어수) x 1GHz(쉐이더클럭) /4 = 2.0 GVert/s

FP32 연산성능 : 8(코어수) x4(vec4) x2(add+mul) x1GHz(쉐이더클럭) = 64GFLOPS

 

13. GC7200

코어클럭 : 800MHz

쉐이더 클럭 : 1000MHz

vec4 (128bit) 기준 코어 수 : 16

텍셀필레이트 : 8 Tex/cycle x 800MHz(코어클럭) = 6.4 GTex/s

버텍스 : 16(코어수) x 1GHz(쉐이더클럭) /4 = 4.0 GVert/s

FP32 연산성능 : 16(코어수) x4(vec4) x2(add+mul) x1GHz(쉐이더클럭) = 128GFLOPS

 

14. GC7400

코어클럭 : 800MHz

쉐이더 클럭 : 1000MHz

vec4 (128bit) 기준 코어 수 : 32

텍셀필레이트 : 16 Tex/cycle x 800MHz(코어클럭) = 12.8 GTex/s

버텍스 : 32(코어수) x 1GHz(쉐이더클럭) /4 = 8.0 GVert/s

FP32 연산성능 : 32(코어수) x4(vec4) x2(add+mul) x1GHz(쉐이더클럭) = 256GFLOPS

 

15. GC7600

코어클럭 : 800MHz

쉐이더 클럭 : 1000MHz

vec4 (128bit) 기준 코어 수 : 64

텍셀필레이트 : 32 Tex/cycle x 800MHz(코어클럭) = 25.6 GTex/s

버텍스 : 64(코어수) x 1GHz(쉐이더클럭) /4 = 16.0 GVert/s

FP32 연산성능 : 64(코어수) x4(vec4) x2(add+mul) x1GHz(쉐이더클럭) = 512GFLOPS

 

->

코어클럭과 쉐이더클럭이 따로 있음.

대게 PC용 GPU에서 보이던 모습인데 비반테가 처음인건지, 다른 제품에서도 이미 적용되고 있는데 몰랐던건지 모르겠습니다.

->

트라이앵글(GC4000 이상) : (코어수) /2 x(코어클럭) /6(비율)

텍셀필레이트 : (코어수) /2 x(코어클럭)

버텍스 : (코어수) x(쉐이더클럭) /4

FP32 연산성능 : (코어수) x4(vec4) x2(add+mul) x(쉐이더클럭)

 

 

- 성능

실질적인 성능 지표인 그래픽 벤치마크 결과에 대한 정보를 보면,

 

GL벤치마크 2.7에서 GC6400이 30 fps 라고 합니다.

비교군 성능이 좀 이상하지만요.

GFX벤치 티렉스에 해당하는 부분.

 

아마도 이 자료를 근거로 작성한 그래프같습니다.

이게 믿을만하냐는게 문제인데 GC5000을 보면 티렉스가 16 fps로 나옵니다.

실제 GC5000 탑재인 PXA1928 결과가 18.4 fps 입니다.

(링크 : http://gfxbench.com/device.jsp?benchmark=gfx30&os=Android&api=gl&D=Marvell%20pxa1928dkb)

비반테 자료 자체는 신뢰할만하다는겁니다.

 

 

 

Posted by gamma0burst Trackback 0 : Comment 12

댓글을 달아 주세요

  1. addr | edit/del | reply 지나가던폰덕 2014.11.29 13:30 신고

    그래도 모바일에서 1 GHz 클럭의 GPU는 처음보네요. 코어 클럭이나 쉐이더 클럭이나 이런건 잘 모르겠지만 말이죠.....

    그나저나... 비반테 GPU 보면 예전부터 마벨이 쓰고 있다는 것만 알고 다른 회사는 안쓰는지라 잘 몰랐는데 그래도 게속 만들기는 했었나보네요...

    • addr | edit/del Favicon of http://gamma0burst.tistory.com BlogIcon gamma0burst 2014.11.29 15:40 신고

      실제로 1GHz까지는 안 갈겁니다.
      PXA1908도 GC7000UL로 최하위인데 코어클럭이 640MHz 정도 밖에 안 되는거 같더군요.
      최하위가 이러면 상위제품 클럭은 더 올라가기 힘들지요.

  2. addr | edit/del | reply 흡혈귀왕 2014.11.29 13:37 신고

    개인적으로 이 GPU 굉장히 기대중입니다.
    GC5000 부턴 나름 아드레노320~테그라4 급까지 나와주고

    부족했던 API도 7000시리즈부터 확실해 졌으니...
    단순 다이어그램만 봤을땐 제일 데스크탑용 GPU에 가까운 구조가 아닐까란
    생각이 들더군요......

    삼성 자체 GPU이야기가 나와서 더욱 그렇구요
    (물론 나올려면 최소 2016년이겠죠...ㅎㄷㄷㄷ)

    • addr | edit/del Favicon of http://gamma0burst.tistory.com BlogIcon gamma0burst 2014.11.29 15:41 신고

      본문에 표보면 아시겠지만 비반테가 API 지원은 장난아니었습니다.
      성능 애매하고 쓰는데가 없어서 문제.

  3. addr | edit/del | reply 2014.11.29 14:16

    비밀댓글입니다

    • addr | edit/del Favicon of http://gamma0burst.tistory.com BlogIcon gamma0burst 2014.11.29 15:49 신고

      그 쪽하고 직접적으로 연관이 없어서 따로 들리는건 없습니다.
      제가 받는건 반정도는 간접적인 경로라고 보시면 됩니다.
      찌라시보다야 신뢰도가 높지만요.

  4. addr | edit/del | reply A TNT 2014.11.29 17:15 신고

    버텍스 성능이 변태적이네요... 사실상 아드레노 이상급
    그러면 저 표의 미디엄 프레시젼은 fp16이고 하이 프레시젼은 fp32의 성능인가요?

  5. addr | edit/del | reply BlogIcon 바다관문 2014.12.01 00:38 신고

    으니? 적어도 말리보단 백만배 나은데요? ㄷㄷ

    • addr | edit/del Favicon of http://gamma0burst.tistory.com BlogIcon gamma0burst 2014.12.01 01:01 신고

      실제 제품 나온것도 아닌데 뭘 보고 낫다고 하시는건지요?
      IMG나 ARM아니 비반테나 발표 사양으로는 엄청나게 성능 부풀릴수 있습니다.
      그게 실제 제품화될 수 있는, 현실적인 사양이냐는게 결정적인 문제인거고요.

  6. addr | edit/del | reply Favicon of http://rubp.tistory.com BlogIcon RuBisCO 2014.12.28 19:19 신고

    비방떼야 늘 문제가 생산단가를 줄이면서 같은 성능을 낸다고 적은 수의 유닛을 고클럭으로 굴리다보니 소비전력과 발열문제가 커서 실제 사용환경에선 성능이 개판이 되는게 문제죠.