본문 바로가기
스마트폰/퀄컴 Qualcomm

긱벤치 ML을 통한 Adreno GPU 사양 추정. (A7x, A6x, A5x) (update 23.11.05.)

by gamma0burst 2023. 10. 24.
반응형

 

 

- 긱벤치ML(Geekbench ML)이 점수를 근거로 퀄컴 Adreno GPU ALU 사양을 추정해봄.

GPU의 물리적 사양을 추정하는 방법을 대충 훑어보면

스마트폰 출시 초기에는 그래픽 성능 벤치마크 결과로 비슷한 제품군끼리 간접 비교했고

이후 GFX벤치 중 ALU 테스트같은 로우엔드 벤치마크가 추가되면서 이를 함께 활용해서 교차검증했음.

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

하지만 그래픽 성능 벤치는 아키텍처가 같은 제품 간 비교에서는 그럭저럭 잘 맞지만 아키텍처가 바뀌면 비교하기 어려워지고, 이런 간접비교 방식은 비교 제품이 늘어날수록 오차가 누적됨.

로우엔드 벤치마크도 연산성능 이론치를 제대로 보여주지 못 해서 간접비교 방식에서 벗어나지 못 했음.

이후 gpu gflops, clpeak같은 연산성능을 직접 측정하는 앱들이 나와서 테스트 결과에서 바로 ALU 사양을 계산하는 것이 가능해졌는데

생각보다 정교하게 테스트해야되고, 앱 자체의 문제도 있어서 인터넷 상에 돌아다니는 결과들 중 오염된 결과가 다수 섞여있을 가능성이 높음.

(gpu gflops는 MUL 연산 성능이 33% 부풀려지는 문제가 있어 픽스된 이력이 있고, clpeak는 이론치보다 높은 결과가 나오는 등 테스트 결과를 무조건 신뢰하기 어려움.)

정교한 테스트로 직접 제품을 갖고 측정하는게 가장 확실하겠지만 다른 사람의 테스트 결과로 해볼 수 있는 방법을 찾던 중 긱벤치 ML이 FP32, FP16, INT8 기반인걸 확인하고 정합성이 있는지 확인해봄.

 

 

- 확인된 공식 사양

퀄컴이 공식적으로 밝힌 ALU 관련 내용은 이 둘임.

A640 FP32 연산성능 954.7 GFLOPs (585MHz 기준), A640 ALU 스펙은 A630의 1.5배.

계산해보면 A640은 768ALU이고 8:1 비율로 클럭당 FP32 연산 1회 가능한 SFU가 포함된 구조로 추정.

그러면 A630은 512ALU가 됨.

이걸 기준삼아 다른 제품의 긱벤치 ML 결과와 비교할 것.

 

 

- 긱벤치 ML 결과 비교

결과를 클럭으로 나눠서 정규화한 후 A640 결과를 100%로 놓고 상대적인 비율을 계산.

(A5x 라인 중 A530 미만은 점수가 너무 낮아서 1점 차이로 사양 추정값이 바뀔 수 있어서 여기에 적용하기 어려움.)

FP32, FP16, INT8, 총점 결과를 보면 FP32에 비해 FP16, INT8 점수가 떨어지는 경우가 보여서 FP32를 기준으로 두는게 적절하다고 판단함.

A630의 결과는 66%가 나와서 이론치와 일치함.

개인적으로 결정적인 증거는 없지만 A540이 256ALU인건 거의 맞다고 보는데 이 결과도 30%가 나와서 어느정도 들어맞는 편.

 

 

- 컴퓨트 유닛(compute unit)

긱벤치 컴퓨트 테스트에서 시스템 정보를 보면 컴퓨트 유닛 항목이 있음.

GPU 클러스터 정도로 생각되는데 이게 GPU 구조를 모두 보여주지는 않음.

 

다이샷을 보면 GPU 중 ALU에 해당하는 영역의 최소단위(이하 ALU 블록로 지칭)가 있는데 이게 다이상 클러스터와 일치하지도 않고 긱벤치의 컴퓨트 유닛 값과 일치하지도 않음.

스냅8 gen2의 경우 다이샷에서 ALU 블록은 12개인데 다이샷에서는 3클러스터로 보이고 컴퓨트 유닛은 6으로 나옴.

전체 ALU 숫자를 어떻게 추정하든 그 값이 타당하려면 ALU 블록 내 ALU 수가 16, 24 등의 배수로 맞아들어가야함. 거기서 적절한 값을 고르고 ALU 블록 수를 곱해가는게 적절한 방법임.

단순히 64, 128 배수로 적당히 끼워맞춰서 될게 아니라고 생각함.

 

그렇게 추정한 ALU 개수에 따른 이론상 FP32 연산 성능과 긱벤치 ML 결과 간 상관관계를 표시한 것.

 

 

- Adreno GPU ALU 숫자 추정

(추정값이니 공식 정보나 반례가 있다면 알려주세요.)

 

- 2023.11.03. update

A640 ALU 블록 수 4 → 6 , ALU/Block 192 → 128 로 변경.

(https://www.microsoft.com/en-us/research/uploads/prod/2022/02/mobigpu_mobicom22_camera.pdf)

 

- 2023.11.05. update

Adreno 680 / 685 / 690 추가.

위의 논문 내용을 근거로 A640 다이 이미지를 재검토.

기존 분석(야매로 한듯...)으로는 2클러스터, 각 클러스터의 대칭구조로 2개 단위의 ALU 블록이 있는 것으로 표시되어있었음.

1클러스터 내에 128ALU가 3개있다는 논문 내용을 다이 이미지에 맞춰보면 ALU 배치는 위와 같은 구조로 추측됨.

 

아래와 같이 8cx, 8cx Gen2, SQ1, SQ2는 Floorplan이 같고, GPU는 클럭만 차이가 있음.

Adreno 680/685/690 같은 구조로 위와 같이 A640과 같은 형태의 클러스터가 4개있음. (A640은 2클러스터)

 

-

A740 A730 A725 A710 A660 A650 A644 A640 A642 A642L A630 A620 A619 A918 A616 A615 A612 A610 A540 A530 A680 A685 A690

 

 

반응형

댓글