기글 하드웨어 뉴스 리포트
| 출처: : | http://pc.watch.impress.co.jp/docs/colum...78851.html |
|---|
모바일 GPU의 성능을 100GFLOPS까지
2년 반에 38배의 성능 향상을 이뤄내다. 이것이 태블릿의 그래픽 성능 향상 주기입니다. 초기 아이패드에서 2GFLOPS였던 GPU의 순수 연산 성능이 최신 아이패드 4에서는 76.8GFLOPS로 크게 늘었습니다. PC에서 완만한 성능 향상과 완전히 다른 성능 급상승이 모바일 디바이스 세계에서 일어나고 있습니다.
모바일 디바이스에서는 ARM CPU 코어도 성능을 자꾸 높이고 있습니다. 그러나 GPU 코어의 성능 상승은 CPU 코어를 크게 넘어섭니다. 그 배경에는 태블릿/스마트폰의 급격한 화면 해상도 향상과 3D게임의 보급, 그리고 그래픽 성능을 뒷받침하는 모바일 메모리 기술의 발전이 있습니다.
그 결과 현재의 모바일 SoC(System on a Chip)의 다이는 GPU 코어가 대부분을 차지하고 있습니다. 특히 애플 SoC에서 그 변화가 큽니다. 다른 회사도 애플에 대항하기 위해 SoC 내부의 GPU 코어를 강화하고 있습니다. 적어도 태블릿에서 차지하는 비중만 따지면 지금의 주인공은 GPU이며, CPU 코어는 조연 정도의 위치가 되버렸습니다.
애플은 자사의 모바일 SoC Apple Ax 시리즈 GPU 코어에 Imagination Technologies의 PowerVR SGX 계열 코어를 쓰고 있습니다. 애플은 직접 GPU 코어를 개발중이긴 하지만, 자사 코어로 대체하기 전까지는 계속해서 PowerVR을 쓸 것으로 보입니다. Imagination Technologies도 애플의 강한 그래픽 성능 요구에 맞춰 GPU 코어를 계속 확장하고 있습니다. 그리고 지금은 차세대인 PowerVR Series6(Rogue)으로 전환을 노리는 중입니다.
PowerVR의 로드맵
아래 차트는 Imagination Technologies의 웹사이트에 있는 The rise of GPU compute(http://withimagination.imgtec.com/index.php/powervr/the-rise-of-gpu-compute)라는 블로그에 나온 차트를 바탕으로 그린 것입니다. 원래 차트에는 GFLOPS가 나와있지 않기 때문에 계산해서 보완했습니다.
PowerVR Series6의 GFLOPS 성능은 올해 1월에 Rogue 아키텍처 코어를 발표했을 때의 숫자를 넣었습니다. 윈도우 차트의 비율은 아래 그림에 나온 GFLOPS 값과 합쳤습니다.
PowerVR 시리즈 5/6의 GPU 성능
이 차트를 보면 Imagination Technologies이 GPU 성능을 크게 증가하고 있음을 잘 알 수 있습니다. 그림에서는 오른쪽 2개의 기둥이 PowerVR Series6의 G64x0와 62x0의 성능입니다. 2013년부터 시장에 나올 Rogue 아키텍처부터는 100GFLOPS의 성능 범위에 들어가 드디어 PC 그래픽과 비슷하게 됩니다.
작동 클럭을 배로 끌어올린 Rogue 아키텍처
PowerVR Series6의 성능을 기존의 애플 제품과 비교하면 아래 그림이 됩니다. 초대 아이패드부터 아이패드 4까지 주요 제품의 성능과 ALU(Arithmetic Logic Unit, 연산 유닛) 수를 PowerVR Series6의 1세대와 비교한 것입니다. 애플은 급격하게 ALU를 늘성능을 높였음을 알 수 있습니다.
애플 제품의 프로세서 성능
그리고 PowerVR Series6에서는 현재 태블릿 중 최고 성능인 아이패드 4를 순수 성능으로 능가함을 알 수 있습니다. PowerVR Series6의 1세대는 28nm 프로세스가 목표이기 때문에, 애플이 내년에 32nm 프로세스(A6/A6X)부터 28nm로 전환하면 PowerVR Series6을 사용할 수도 있습니다. 애플이 PowerVR Series6을 사용해서 현재의 성능 향상 주기를 맞출 수 있을 것입니다.
PowerVR Series6의 연산 성능이 높은 이유는 Imagination Technologies가 아키텍처를 바꿨기 때문입니다. PowerVR Series6은 GPU 코어의 구성을 바꾸고, 보다 대규모 프로세서 구성을 쉽게 할 수 있도록 만들었습니다. GPU 코어 내부의 명령 제어를 큰폭으로 바꿔 다이 면적이나 전력사용량 당 성능 효율을 높이려 했습니다. 또 동작 클럭은 기존의 200~300MHz에서 최고 600MHz으로 높입니다.
작동 클럭을 높인 건 GPU 코어의 연산 유닛의 파이프라인 구조가 달라졌음을 의미하고 있을 가능성이 높습니다. 프로세스 기술을 발전시키는 것 만으로는 이렇게 클럭을 높게 올리는 건 어렵기 때문입니다.
프로세서의 파이프라인을 깊게 하면 보다 높은 클럭으로 작동할 수 있습니다. 기존의 PowerVR은 부동 소수점 연산 유닛을 4사이클의 실행 지연시간으로 돌리는 파이프라인 구조를 쓰고 있었습니다. 즉, 연산 유닛은 4 스테이지의 파이프라인 구조입니다.
기존의 PowerVR 스레드 스케줄러
1개의 연산 유닛이 1개의 명령을 실행하는데 4 사이클이 걸립니다. 그러나 파이프라인 구조를 채택함으로서 새 명령의 실행을 1 사이클마다 시작할 수 있습니다. PowerVR 아키텍처의 경우에는 사이클마다 다른 스레드의 명령을 실행하며, 그 때문에 4 사이클의 지연 시간을 감추기 위해 4 스레드를 병렬로 실행하게 됩니다.
Imagination Technologies은 PowerVR Series6의 클럭을 2배로 끌어올리는 것이 4 스테이지의 파이프라인을 8 스테이지로 깊게 만든 덕분이라 추측합니다. 그 경우 명령의 실행 지연시간은 4 사이클에서 8 사이클로 늘어납니다. 그 때문에 실행 지연시간을 감추기 위해 2배인 8 스레드가 필요합니다.
즉 ,PowerVR Series6은 클럭을 높이기 위해 온더 플라이로 실행할 수 있는 스레드 수를 늘리지 않으면 안 됩니다. 그러기 위해서는 현재 16 에트리인 스레드 풀도 확장할 필요가 있습니다. 커버해야 하는 메모리 액세스 레이턴시의 사이클 수가 늘어나기 때문입니다.
PowerVR의 스레드 스케줄링
Imagination Technologies가 파이프라인을 깊게 했다면 제어해야 하는 스레드 수가 늘어나며 스레드 제어 부분의 오버헤드 역시 늘어나게 됩니다. 또 파이프라인을 깊게 하면 관련 회로가 늘어나 클럭 디스트리뷰션도 복잡해지고 전력 소비가 늘어납니다. 하지만 이런 댓가를 지불해도 그 만큼의 성능 향상이 있다면 감내할 만 합니다.
AMD도 ATI 시절 파이프라인을 깊게 만들었던 적이 있습니다. 라데온 HD 2900(R600) 시절에 명령 시퀸서를 배로 늘려서 기존의 4 사이클에서 8사이클로 실행 지연시간을 감추는 사이클 수를 늘렸습니다.
PowerVR Series5에서 Rogue로 오면서 SIMD 폭이 크게 바뀜
동작 클럭을 높이는 한편, PowerVR Series6은 컨트롤 오버헤드를 줄이는 개선도 더했을 것으로 보입니다. Imagination Technologies는 2012년 8월에 업데이트한 PowerVR Performance Recommendations라는 문서에서 기존의 PowerVR Series5와 PowerVR Series6의 프로그래밍 차이를 설명했는데, 여기서 분기 밀도의 변화에 대해 서술했습니다.
일반적으로 GPU는 SIMD 형태의 실행 유닛을 갖추고 여러 데이터에 대해 같은 명령을 실행합니다. 그 때문에 여러 스레드를 벡터로 처리하는 경우에는 각각의 스레드를 개별적으로 조건 분기시킬 때 문제가 생깁니다.
구체적으로는 프레디케이션을 통해 SIMD의 각 레인 스레드마다 명령 실행 여부나 연산 결과를 레지스터에 작성하는지를 마크 레지스터를 통해 선택합니다. 프레디케이션에 의해 겉으로 보기에 각 레인은 스칼라 프로세서인 것처럼 동작합니다. 하지만 실제 하드웨어는 SIMD이며 프로그램의 실행 경로는 SIMD 전체로 실행됩니다. 프레디케이션을 써서 그 결과가 반영되지 않는 것일 뿐입니다. SIMD 실행의 크기는 NVIDIA 아키텍처에서 32 스레드, AMD 아키텍처는 64 스레드입니다.
백터의 조건 분기 제어
그러나 기존의 PowerVR Series5는 그런 PC용 GPU처럼 큰 분기 밀도를 가지고 있지 않습니다. PowerVR Series5는 1개의 버텍스나 1개의 픽셀 단위로 조건 분기가 가능합니다. 여기에 대해서는 POWERVR SGX OpenGL ES 2.0 Application Development Recommendations라는 Imagination Technologies의 문서에 표기되어 있습니다.
PowerVR Series5는 프로그램중에 조건 분기가 있었을 경우, 이론적으로는 버텍스/픽셀마다 다른 명령 실행 패스를 실행할 수 있습니다. 하지만 실제로는 버텍스와 픽셀 모두 다수의 스레드로 분리되기 때문에 다수 스레드의 밀도를 가지고 있습니다. 예를 들어 RGBA 픽셀이라면 4스레드가 되니까 하드웨어적인 분기 밀도는 4스레드가 됩니다.
반면 PowerVR Series6는 분기 밀도가 더 커집니다. Imagination Technologies의 문서에 의하면 픽셀 쉐이더 프로그램의 분기는 픽셀 단위의 밀도로 이뤄지는 것이 아니라 일관된 크기를 가지고 있습니다. 즉 PowerVR Series6는 보다 큰 분기 밀도를 가지고 있는 것으로 추측됩니다.
PC용 GPU는 모두 PowerVR Series5보다 분기 밀도가 훨씬 큽니다. 이것은 분기 밀도를 늘리는 게, 명령 제어 유닛을 간략화하고 칩의 연산 유닛 비중을 높일 수 있기 때문입니다. 즉 GPU 코어의 일정한 다이 면적 당 연산 유닛의 수를 늘리기가 쉬워집니다.
PowerVR Series6에서 분기 밀도(로직 벡터 길이)를 어느 정도로 늘렸는지가 핵심입니다. The rise of GPU compute라는 포스트에서는 PowerVR Series6의 실행 모델을 scalar/wide SIMD execution model이라 부르면서 NVIDIA나 AM와 비슷한 방식임을 시사하고 있습니다. 즉 비교적 폭이 넓은 SIMD 유닛으로 프레디케이션에 의해 분기를 제어, 스칼라 프로세서로 동작하는 방법입니다.
그러나 PowerVR Series6의 SIMD 밀도는 아직까진 분명하지 않습니다. PowerVR의 개발자 전용의 포럼에서도 이 점에 대해 질문이 나왔지만 Imagination Technologies는 아직 분명하지 않다고만 답했습니다. PowerVR Series6의 실행 유닛은 16 ALU가 두개 포함되었다는 말이 있어 16-way의 SIMD가 아닐까 예상되지만, NVIDIA나 AMD처럼 여러 사이클동안 같은 명령을 실행하는 경우도 있으니 아직은 모릅니다.
어쨌건 보다 넓은 SIMD로 변경은 GPU 코어의 컨트롤 오버헤드를 줄이고, 성능/다이 크기/전력의 효율을 높이는 효과가 있습니다. 이것은 고클럭에 따른 복잡도의 증가를 줄여줄 수도 있습니다.
예상 이상으로 대규모인 PowerVR Series6의 클러스터 구성
The rise of GPU compute를 보면 단일 코어 PowerVR G6400에서 최고 210GFLOPS를 목표로 하고 있음을 알 수 있습니다. 그러니까 멀티 코어 구성인 PowerVR Series6(Rogue)에 대해서도 조금 다르게 생각할 필요가 있습니다. Rogue 아키텍처는 클러스터 구성을 쓰는데 1세대 G6400은 4클러스터, G6200은 2클러스터입니다. 현재 알려진 것은 클러스트 내부의 연산 유닛 ALU 파이프가 16개를 단위로 한다는 것. 1 클러스터 16 ALU였던 경우 G6400 계열은 총 64 ALU가 되니까 600MHz로 작동할 때 연산 성능이 76.8GFLOPS밖에 되지 않습니다.
그러나 G6400 시리즈는 4 클러스터로 210GFLOPS를 달성하니까 GPU 코어 내부의 ALU의 수는 더 많다고 볼 수 있습니다. 600MHz로 동작한다고 보면 176개의 ALU가 있으면 210GFLOPS가 나옵니다. 4 클러스터 구성으로 176 APU가 있다면 1 클러스터에 44개의 ALU가 있어야 합니다.
ALU를 16개씩 1개의 그룹으로 묶었다고 가정하면 1클러스터에 16 ALU의 파이프가 3묶음으로 총 48 ALU가 나옵니다. 4 클러스터를 구성한 G6400은 총 192 ALU가 나옵니다. 이 192개의 ALU를 600MHz로 동작시키면 성능은 230GFLOPS가 됩니다.
그러나 600MHz는 이론적인 최고 클럭이며 실제는 550MHz 정도가 현실적이라고 Imagination Technologies가 보고 있습니다. 이 경우 192 ALU×550MHz=210GFLOPS가 나옵니다. Imagination Technologies의 웹 사이트에 나온 이미지에도 PowerVR Series6은 ∼600MHz로 표기되었으며 항상 600MHz로 작동하는 것이 아닙니다.
현재 정확한 스펙은 나오지 않았지만, 각 클러스터마다 16 ALU의 그룹이 3개씩 들어갔을 것으로 추측됩니다. 이 추측대로 그린 PowerVR Series6(Rogue) 시리즈의 추정 구성도가 아래 그림입니다.
PowerVR Series(Rogue)의 블럭 다이어그램
GPU 클러스터 구성이 보다 크다는 이 가정은, PC용 GPU와 많이 닮았다는 것을 의미합니다. 또 기존의 PowerVR Series5 XT의 멀티코어 구성과 비교하면 보다 쓸데없는 중복 부분이 줄어들었음을 의미합니다. 클러스터를 이 크기로 하면 멀티 코어 구성은 앞으로 쓰지 않고 클러스터를 늘려 GPU를 강화하는 방식을 쓰게 될지도 모릅니다.
클러스터와 같이 스케일이 커지는 텍스처 유닛
PowerVR Series6의 Rogue 아키텍처에서는 2 클러스터로 1개의 텍스처 유닛 군을 공유합니다. 기존의 PowerVR Series5의 아키텍처에서는 텍스처 유닛은 코어 전체에서 공유하는 유닛이었지만, PowerVR Series6은 클러스터와 밀접한 제휴 관계가 있습니다. 그 때문에 클러스터를 늘려 연산 성능을 높이면 동시에 텍스처 유닛도 늘어나게 됩니다.
이것은 PC용 GPU에선 당연한 것입니다. PC용에서는 연산에 대한 텍스처의 비율을 일정하게 유지하는 것이 중요합니다. PowerVR Series6의 텍스처 유닛군의 쓰루풋은 아직 완전히 알려지진 않았습니다. 그러나 ALU와 같이 덩치가 커진 것은 중요합니다.
모바일 디바이스 전용 애플리케이션 프로세서는 오랜 세월동안 메모리 대역이 병목 현상을 일으키는 주범이었습니다. 프로세서 내부의 성능은 제조 공정의 미세화로 트랜지스터 수가 늘어나면서 같이 늘었지만, 메모리 대역은 이를 따라갈만한 속도로 증가하지 않았기 때문입니다. 그 때문에 모바일 전용 GPU는 메모리 대역의 사용을 억제하는 타일링 아키텍처가 일반적입니다.
GPU의 렌더링 방식 차이
타일링계 아키텍처에서는 온칩 메모리 덕분에, 픽셀 처리를 할 때 외부 메모리 액세스할 필요가 없습니다. 그러나 텍스처를 읽어들이기 위한 외부 메모리 엑세스를 없앨 수는 없습니다. 텍스처는 캐시를 써도 효과가 크지 않아 메모리 대역의 제약에 큰 영향을 받습니다. 위 그림의 오른쪽이 PowerVR의 아키텍처인데 텍스처 데이터를 읽을 때 부하가 생기는 것을 알 수 있습니다.
그 때문에 모바일 GPU는 연산 유닛의 수를 늘리고 텍스처 유닛을 분리하는 것이 합리적입니다. 공정 미세화로 연산 성능은 쉽게 늘리지만, 메모리 대역의 한계 때문에 텍스처 유닛을 늘리는 건 큰 의미가 없기 때문입니다.
하지만 최근 2~3년 동안 모바일 전용 DRAM의 상황은 크게 달라졌습니다. 2년마다 2배 주기로 메모리 대역이 확장되면서 공정 미세화에 의한 성능 향상을 따라잡고 있습니다. 적어도 2015년까지는 이 빠른 주기의 메모리 대역 향상이 계속됩니다. 그 때문에 모바일 GPU에서 메모리 대역의 문제는 줄어들게 됐습니다.
모바일을 위한 저전력 DRAM의 로드맵
PowerVR Series6의 Rogue 아키텍처는 이런 트렌드에 맞췄다고 볼 수도 있습니다. PowerVR Series6은 여전히 타일링 계열의 Tile Based Deferred Rendering (TBDR)을 쓰는 것으로 보이지만, 텍스처 유닛에 대해서는 지금까지 그랬던 것처럼 연산 유닛과 분리할 방침은 보이지 않습니다.
결론적으로 PowerVR Series6은 연산 성능과 같이 늘어난 텍스처 성능을 기대할 수 있습니다. 이론적으로는 텍스처를 많이 쓰는 그래픽을 보다 빠르게 처리할 수 있습니다.
20nm 프로세스가 Rogue의 주 목표?
Imagination Technologies현재 같은 계열의 GPU 아키텍처를 여러 세대의 프로세스 기술에서 계속 사용하고 있습니다. PowerVR Series5는 65nm 프로세스부터 45/40nm, 그리고 32/28nm까지 계속되고 있습니다. PowerVR Series6(Rogue)계열은 28nm 프로세스부터 시작하지만 20nm가 주요 목표이며 16/14nm 프로세스에서도 계속될 것으로 추측됩니다. PowerVR Series6이 TFLOPS 급의 성능을 낼 수 있다는 Imagination Technologies의 발표는 그런 프로세스의 진화도 염두에 둔 것으로 추측됩니다.
만약 PowerVR Series6의 1 클러스터가 48 ALU로 구성되어 있다면, 4 클러스터 구성의 PowerVR G6400 계열에서는 192 ALU의 구성이 됩니다. 현재 모바일 SoC에서 제일 큰 GPU를 갖고 있는 애플 A6X의 경우 32nm 프로세스로 제조한 PowerVR SGX554 MP4가 128 ALU를 갖추고 있습니다. 28nm 프로세스로 이행한다면 같은 크기의 다이 사이즈에 192 ALU의 GPU 코어를 탑재할 수 있을 것입니다. 그 경우는 애플의 A7X 세대 SoC는 A6X의 3배가 되는 200GFLOPS 클래스의 GPU 성능을 달성할 수 있게 됩니다.
애플 Ax 시리즈, 아이패드/아이폰 시리즈의 변화
Imagination Technologies는 PowerVR Series6(Rogue)의 2세대 코어를 벌써 발표했습니다. PowerVR G6630은 6 클러스터 구성이지만 28nm 프로세스로 이걸 작은 크기의 다이로 만들긴 힘들 것입니다. SoC 제조사는 벌써 20nm 프로세스의 칩 설계에 들어갔으며, 6 클러스터 PowerVR G6630은 20nm를 목표로 한 것으로 추측됩니다.
주요 파운드리의 프로세스 로드맵
그럴때면 잡아 놓은 외계인을 더 갈구거나 좀 더 기술력이 뛰어난 문명의 외계인을 납치하는 수 밖에.. ^L^
그만큼 스마트폰이 나오기 이전까지는 모바일기기들..에 대한 투자가 부족했었죠,,
수요가 지지부진 하던 pda시절에는 심하다 싶을 정도로,,,성능향상이 지지부진했었거든요,,
pda폰들,,,특히 1~2년에 대략 arm시퓨 100mhz 깨작깨작 올리는 수준이었죠..(당시에도 기술이 부족해서는 아니었고)



Piloteer