GPU 아키텍처 발전의 분기점이 되었던 다이렉트 X 10

 

과거에는 그래픽카드 시장이 정말 복잡했던 적이 있었습니다. NVIDIA ATI, S3, 트라이던트, 매트록스, 당시 위세가 등등했던 3dfx까지 여러 그래픽 칩 제조사들이 있었지요. 당시에는 그래픽 API 표준이 통일되지 않아, 적잖은 회사들은 자사 그래픽카드와 API를 표준으로 만들기 위해 노력하기도 했습니다. 결과적으로 S3, 트라이던트, 3dfx는 인수당했고, 매트록스는 다른 시장으로 갔으며, 마이크로소프트의 다이렉트 X가 3D API를 통일했습니다. 그리고 이제는 AMD와 NVIDIA가 남아 다이렉트 X 표준을 가지고 경쟁을 하고 있지요.

 

2006년에 첫 선을 보인 다이렉트 X 10은 그래픽카드 아키텍처 설계의 경계점이라 할 수 있습니다. 다이렉트 X 10은 지금까지 있었던 개발자들의 어려운 과제를 해결하였으며 새로운 매커니즘으로 CPU의 의존도를 낮추고, 명령어를 간단하게 하였습니다. 그 중에서도 제일 유명한 것은 버텍스 쉐이더와 픽셀 쉐이더를 통합하여 통합 쉐이더를 만들면서, 쉐이더를 전부 스트림 프로세서에서 처리하게 만든 것입니다.

 

1.jpg

 

통합 쉐이더는 버텍스 쉐이더와 픽셀 쉐이더의 불균형 문제를 해결했습니다.

 

다이렉트 X 10은 2년 가까이 게임과 그래픽카드 발전의 기초가 되어 왔습니다. 하지만 마이크로소프트는 스트림 프로세서의 설계를 강제하지 않아, AMD와 NVIDIA가 자유롭게 설계할 수 있는 공간을 만들어 주었고, 이들 회사들은 다이렉트 X 10이라는 하나의 기능을 실현하기 위해 서로 다른 길을 걷게 됩니다.

 

비록 두 회사가 지향하는 표준은 하나이지만, 서로 다른 접근 방식은 제품의 최종 경쟁력에 영향을 주게 됐습니다. 이때 NVIDIA는 완전히 새로운 설계의 G80을, AMD는 설계를 소폭 계량한 R600을 내놓았는데, 5년 전으로 되돌아가 G80과 R600이 두 회사의 설계 사상에 어떤 영향을 주었는지 봅시다.

 

 

G80과 R600의 경쟁

 

2006년 말에 발표된 G80은 다이렉트 X 10을 처음으로 지원하였습니다. 지포스 8800 울트라는 새로운 성능의 최강자가 되었는데, 이것은 G80 아키텍처에 도입된 여려 혁멱정인 신기술과 새로운 설계를 떼어놓고 설명할 수 없는 것입니다. G80의 스트림 프로세서(NVIDIA는 이를 나중에 쿠다 코어라고 부릅니다) 설계 역시 NVIDIA가 앞으로 출시할 GPU 제품의 기초를 만든 것입니다.

 

2.png

 

G80의 아키텍처 설계는 이전에 없던 형태입니다.

 

다이렉트 X 10에서 쉐이더의 처리에 전에 없던 변화가 생기면서, 전통적인 3D 아키텍처로는 새로운 요구에 부응할 수 없게 되었습니다. NVIDIA는 G80 아키텍처 설계에서 전통적인 SIMD(1개의 명령어에 여러개의 데이터) 방식을 포기하고 MIMD(여러 명령어에 여러 데이터) 방식을 사용하였으며, 통합 쉐이더 유닛도 슈퍼스칼라 방식을 사용하게 됐습니다. 이렇게 하여 그래픽 데이터를 처리할때 1D 스칼라이건 3D 벡터이건 쿠다 코어를 항상 100% 사용할 수 있게 하여, 코어가 불필요하게 놀면서 생기는 성능 손실을 막게 되었습니다.

 

완전한 G80 코어는 8개의 SM(스트리밍 멀티프로세서)로 나뉘며, 각각의 SM 유닛에는 16개의 스트림 프로세서, 8개의 텍스처 필터링 유닛, 4개의 텍스처 어드레싱 유닛, L1 캐시가 있습니다. 이를 전부 합하면 128개의 스트림 프로세서 유닛, 64개의 텍스처 유닛, 24개의 ROP가 있는 것입니다. 스펙에서 뒤질 것이 없는 지포스 8800은 꽤 오랬동안 최강 그래픽카드의 위치에 군립하게 됩니다.

 

2006년에 ATI가 AMD에게 인수당하면서, ATI의 제품 계획에도 어느 정도 영향이 있을 수밖에 없었습니다. G80이 다이렉트 X 10 시대를 반년 정도 통치한 후에야, AMD는 코드네임 R600 아키텍처의 라데온 HD 2000 시리즈를 내놓게 됩니다.

 

3.jpg

 

AMD의 R600 아키텍처.

 

만약 G80이 새로운 것을 만들어 냈다면, R600은 기존의 것을 계승했다고 할 수 있습니다. 비록 다이렉트 X 10의 통합 쉐이더를 지원하긴 하지만, 구체적인 설계는 여전히 전통적인 SIMD 명령어와 4D 벡터 연산 시스템을 사용합니다. 여기에 다이렉트 X 10을 실현하기 위해 4D 벡터를 확장하여 4D+1D 구성을 만들게 되었습니다.

 

4.png

 

R600 아키텍처는 4D+1D 방식으로 통합 쉐이더를 실현하였습니다.

 

통합 쉐이더를 실현하기 위해 R600 아키텍처는 1개의 슈퍼 스칼라 유닛을 기존의 4D 벡터 유닛에 추가하여 4D+1D의 혼합 방식을 사용하였습니다. 이 방법의 장점은 아키텍처 설계가 쉽다는 것입니다. 따라서 스트림 프로세서 유닛의 수는 대폭 늘어났지만 보수적인 아키텍처 때문에 그 효과는 한계가 있습니다. 만약 단순히 스칼라 연산만 해야 하는 경우에는 효율이 1/5로 떨어지게 되며, 이 때문에 높은 수준의 분기 예측 연산을 필요로 하기 때문입니다.

 

R600 코어의 라데온 HD 2900 XT는 320개의 스트림 프로세서 유닛을 가지고 있습니다. 연산 유닛의 수는 G80보다도 많지만 성능은 G80보다 떨어집니다. 그래서 라데온 HD 2900 시리즈의 운명은 비극을 피할 수 없었지요.

 

G80과 R600은 각각 NVIDIA와 AMD가 다이렉트 X 10 시대를 어떻게 맞이하였는지를 보여줍니다. 이들은 5년동안 이어질 그래픽카드 아키텍처의 기초가 되었지만 그 결과는 달랐습니다. G80은 전통을 벗어나 대담하게 MIMD, 슈퍼스칼라 같은 새로운 설계를 사용하여 뛰어난 성능을 발휘했습니다. 반면 R600은 전통을 이어서 1개의 슈퍼 스칼라 유닛을 추가하여 통합 쉐이더를 지원, 설계의 난이도가 줄어들었지만 동시에 효율도 떨어지면서 성능도 낮았습니다.

 

 

RV670/RV770의 작은 업그레이드, GT200의 통용 계산

 

라데온 HD 2000 시리즈에서 큰 재미를 보지 못했던 AMD는 R600 아키텍처를 개선한 라데온 HD 3000 시리즈를 빠르게 발표하였습니다. 코드네임 RV670은 실속이 별로 없었던 512비트 링버스를 포기하고, UVD를 추가하여 동영상 가속을 강화하였습니다. 하지만 제일 큰 변화는 제조 공정의 업그레이드로, 처음으로 55나노 시대에 진입한 제품이기도 합니다.

 

5.jpg

 

RV670의 아키텍처는 크게 변하지 않았으며 제조 공정이 55나노로 업그레이드 된 것이 제일 큰 변화입니다.

 

RV670은 여전히 320개의 스트림 프로세서를 사용하며 내부 구조 역시 4D+1D 방식으로 R600과 같습니다. 라데온 HD 2000 시리즈 고급형에서 사용했던 512비트 링버스를 포기하고 UVD를 추가하여 동영상 성능을 개선하였는데, 다르게 본다면 RV670이야말로 R600 아키텍처의 정식판이라 할 수 있으며, 라데온 HD 2000 시리즈는 테스트용이라고 말할 수도 있겠지요.

 

RV670이 발표된지 반년 이후에 AMD는 또다시 제품을 업데이트합니다. RV770 아키텍처를 사용한 라데온 HD 4800 시리즈는 역시 55나노 공정을 사용하지만 스트림 프로세서의 수를 320개에서 800개로 2.5배 늘렸습니다.

 

6.png

 

RV770 아키텍처

 

제조 공정이 뒷받침되면서 RV770은 800개의 스트림 프로세서를 배치할 수 있었고, 배치 방식도 RV670의 세로 방향에서 가로 방향으로 바뀌면서 한 줄에 80개의 스트림 프로세서 유닛, 4개의 텍스처 유닛을 내장하게 됩니다. 이렇게 스펙과 성능이 라데온 HD 3000/2000 시리즈보다 크게 발전하면서 라데온 HD 4800 시리즈는 1년 반 전에 나온 G80과 경쟁할만한 수준에 올라서게 됩니다.

 

이 1년동안 NVIDIA는 별다른 새 아키텍처의 그래픽카드를 출시하지 않았습니다. 먼저 G80을 업데이트한 G92의 성능이 괜찮았기 때문에 굳이 새 아키텍처를 내놓을 필요가 없었고, 차세대 아키텍처인 GT200의 설계가 매우 복잡하여 시간과 노력이 더 필요했기 때문입니다. AMD가 라데온 HD 4800을 발표하고 얼마 되지 않아 GT200 아키텍처의 지포스 GTX 280/260이 출시됩니다.

 

7.png

 

GT200의 아키텍처

 

G80의 발표 이후에 NVIDIA는 줄곧 GPU를 사용하여 통용 계산을 실현, 쿠다라는 이름으로 GPU 통용 계산을 발전시키려 하였습니다. 따라서 GT200 아키텍처는 그래픽 성능도 개선이 되었지만, 통용 계산에 무게가 실려 있었습니다.

 

GT200은 10개의 TPC 유닛(그래픽을 계산할때는 Texture Processing Cluster, 통용 계산에서는 Thread Processing Cluster)이 있는데, 각각의 TPC에는 3개의 SM(Streaming multiprocessor)이 있고, 각각의 SM은 8개의 텍스처 필터링 유닛, L1 공유 캐시가 있습니다. 또한 1개의 SM은 8개의 쿠다 코어로 구성됩니다.

 

8.png

 

1개의 TPC에는 3개의 SM이 있으며, 공유 L1 캐시는 8IKB에서 16KB로 늘었습니다.

 

9.png

 

SM 유닛의 로컬 캐시는 G80의 32KB에서 64KB로 늘었습니다.

 

그 밖에 SM 유닛에서 FP64 더블 프리시전 부동소수점 연산을 지원하게 되었습니다. 이 기능은 비록 게임에서는 별 쓸데가 없지만 병렬 계산에서는 그 의미가 큰것이며, AMD의 RV770 아키텍처에서 지원하지 않는 기능이기도 합니다.

 

RV770과 GT200은 AMD와 NVIDIA의 마지막 다이렉트 X 10 제품이라 할 수 있습니다. RV770은 우수한 제조 공정으로 스트림 프로세서의 수를 320개에서 800개로 늘렸지만 내부 구조는 별다른 변화가 없었으며, 여전히 R600의 4D+1D 방식을 사용합니다. 이 때문에 AMD의 다이렉트 X 10 지원 그래픽카드 3세대가 모두 G80과 정면 대결할 정도의 성능은 내지 못했습니다. GT200은 G80을 기초로 또 한번 업그레이드하여, TPC와 SM 유닛을 새로 설계하고, 지포스 GTX 280의 성능을 지포스 9800 GTX보다 50% 이상 올렸을 뿐만 아니라 통용 계산에서도 한단계 발전하였습니다.

 

 

스트림 프로세서의 중가. 라데온 HD 5800/6800에서 계속 5D 아키텍처를 사용

 

AMD는 다이렉트 X 10 시대에서 NVIDIA의 최고급 모델과 경쟁할만한 성능을 내주지 못했습니다. 하지만 다이렉트 X 11에서 그 상황을 역전하기 시작하여, AMD는 최초로 다이렉트 X 11을 지원하는 라데온 HD 5800 시리즈를 발표했을 뿐만 아니라, 3D 그래픽 성능도 대폭 개선하였습니다.

 

10.jpg

 

코드네임 Cypress. 라데온 HD 5800 시리즈.

 

비록 AMD가 라데온 HD 5800 시리즈의 사이프러스 코어를 테라스케일 2 아키텍처라고 명명하긴 하였지만, 사이프러스는 여전히 기존의 통합 쉐이더 아키텍처를 그대로 사용하고, 오직 그래픽스 엔진 부분만 큰 개량을 하였을 뿐입니다.

 

사이프러스 아키텍처는 좌우의 2개 부분으로 나뉘는데 모두 10개의 SIMD 어레이가 있고, 각각의 어레이는 16개의 스트림 프로세서가 있어 총 1600개의 스트림 프로세서가 있습니다.

 

11.jpg

 

코드네임 Barts XT. 라데온 HD 6800 시리즈 아키텍처.

 

작년 10월에 AMD는 또 다시 제품 라인업을 업데이트하여, 코드네임 Barts, 라데온 HD 6800 시리즈를 발표했습니다. 라데온 HD 6870은 14개의 SIMD 어레이가 있으며 6850은 12개의 SIMD 어레이가 있습니다. 비록 코드네임은 다르지만 Barts는 Cypress의 스펙을 줄인 것으로, 내부 아키텍처는 그대로 4D+1D입니다.

 

12.png

 

라데온 HD 5800과 6800은 4D+1D 아키텍처를 사용.

 

라데온 HD 5800과 라데온 HD 6800은 TSMC 40나노 공정을 사용하여 발열과 소비 전력을 잘 조절하였으며, 더 많은 수의 스트림 프로세서를 사용할 수 있었습니다. 하지만 아키텍처는 여전히 R600을 기초로 한 것으로, SIMD와 4D+1D 구조는 변하지 않았습니다.

 

 

30억개의 트랜지스터. 페르미 아키텍처의 새로운 혁명

 

NVIDIA의 G80은 다이렉트 X 10 시대에서 큰 빛을 발했습니다. 성능에서 경쟁 상대보다 반년읖 앞섰을 뿐만 아니라 시장 점유율도 높았지요. 그러나 다이렉트 X 11 세대에서 NVIDIA는 AMD보다 뒤떨어지게 되는데, 그 원인은 NVIDIA의 페르미 아키텍처의 스펙이 너무 높아 설계가 매우 어려웠고 그 때문이 발표가 늦어졌기 때문입니다.

 

NVIDIA는 페르미를 차세대 쿠다 계산과 그래픽 아키텍처로 정의하였습니다. G80과 GT200 아키텍처에서 사용자들이 요구했던 것을 받아들여, 더블 프리시전 연산, ECC 메모리 에러 교정, 캐시 시스템, 아톰 액세스 조작 등 여러 부분에서 새로운 설계를 사용하였습니다. 새로운 아키텍처는 계산 능력을 향상시켰을 뿐만 아니라 더 나은 프로그래머블 능력과 계산 효과도 가져다 주었습니다.

 

13.png

 

페르미 그래픽 아키텍처

 

GF100에서 NVIDIA는 TPC-텍스처 프로세싱 클러스터-를 포기하고 GPC-그래픽스 프로세싱 클러스터-라는 개념을 도입하였습니다. GF100의 기본 구조는 신축적인 GPC 유닛, SM(스트리밍 멀티프로세서) 유닛과 메모리 컨트롤러로 구성됩니다.

 

1개의 완전한 페르미 아키텍처는 4개의 GPC, 16개의 SM, 6개의 64비트 메모리 컨트롤러로 구성되어, 총 512개의 쿠다 코어가 있습니다. 각각의 쿠다 코어는 통합 프로세서 코어로서 버텍스, 픽셀, 지오메트리와 계산 커널 처리 등을 모두 처리할 수 있습니다. 또한 통합 L2 캐시를 사용하여 저장, 읽기, 텍스처 조작등을 지원합니다.

 

14.jpg

 

페르미 아키텍처의 SM 유닛 구성

 

GF100은 48개의 ROP가 있어 픽셀의 혼합과 안티 얼리어싱, 아토믹 메모리 조작 등에 사용합니다. 이런 ROP 유닛은 8개가 한 묶음이며 총 6개의 묶음이 있습니다. 각각의 구성은 64비트 메모리 컨트롤러와 연동되어 작동합니다. 메모리 컨트롤러, L2 캐시, ROP 사이의 관계는 매우 밀접합니다.

 

페르미 아키텍처의 주요 특징은 다음과 같습니다.

 

3세대 스트리밍 멀티프로세서:

-각각의 SM에 GT200의 4배인 32개의 쿠다 코어를 포함

-GT200의 8배인 더블 프리시전 부동소수점 성능

Dual Warp 스케줄러. 1 사이클에 2개의 warp 병렬 계산을 실행

각각의 SM에 64KB의 램을 내장. 공유 메모리와 L1 캐시를 알맞게 사용

 

2세대 PTX ISA 아키텍처(PTX 2.0)

-통일된 어드레스 공간으로 C++를 완전 지원

-OpenCL과 다이렉트 컴퓨트 병렬 계산에 특화된 설계

-IEEE 754-2008 32비트/64비트 프리시정 지원

-Predication을 통해 조건문의 성능 개선

 

개선된 아토믹 서브시스템

-L1과 통합 L2 병렬 데이터 고속 캐시의 설정이 가능

-최초로 ECC 메모리를 지원하는 GPU

-아톰 메모리 조작으로 성능을 강화

 

기가스레드 3.0 엔진

-이전 세대보다 10배 강화된 문자 치환 능력

-커널 실행의 병렬 실행 매커니즘

 

GF100은 처음으로 페르미 아키텍처를 사용한 GPU로, 여기에는 지포스 GTX 480과 470이 포함됩니다. 이들 제품은 테셀레이션과 다이렉트 컴퓨트를 포함하여 모든 다이렉트 X 11 하드웨어 특성을 실현하였고, 앞선 병렬 계산 능력 외에도 게임 그래픽에서도 큰 개선이 있었습니다.

 

15.jpg

 

다이렉트 X 11이 가져다준 신기술

 

다이렉트 X 11의 테셀레이션을 예로 들어보면 개발자들의 모델링 작업을 간단하게 만들어줍니다. 그래픽카드가 자동으로 대량의 폴리곤을 생성하여 모델의 정밀도를 높여주기 때문입니다. 다이렉트 X 11의 테셀레이션은 전용 폴리모프 엔진을 통해 완성됩니다. 페르미 아키텍처에서 각각의 SM 유닛은 1개의 폴리모프 엔진 확장을 가지고 있어 높은 효율로 폴리곤을 처리합니다. 각각의 폴리모프 엔진은 전용 버텍스 페치 유닛과 테셀레이터를 가지고 있어 지오메트리 성능을 대폭 올려줍니다.

 

16.png

 

다이렉트 X 11의 중요 기술에 맞춰 설계된 페르미

 

17.jpg

 

AMD보다 뛰어난 테셀레이션 성능

 

 

4D 구조로 바뀐 라데온 HD 6900, 지포스 GTX 500으로 업그레이드

 

라데온 HD 6800 시리즈는 신제품이긴 하지만 아키텍처가 변하지 않아 많은 사람들이 실망하였습니다. 작년 말에 AMD가 출시한 코드네임 Cayman의 라데온 HD 6900 시리즈는 R600 아키텍처 이후 첫번째로 큰 변화가 있었는데, 그것은 바로 VLIW5가 VLIW4 방식으로 명령어 구조가 바뀌면서, 5D에서 4D 아키텍처가 되었다는 것입니다.

 

18.jpg

 

Cayman 아키텍처는 마침내 아키텍처의 변화를 실현하였습니다.

 

R600을 기초로 한 AMD의 전통적인 GPU 아키텍처는 1개의 스트림 프로세서 유닛은 4개의 1D 벡터, 1개의 1D 스칼라와 상응되는 분기 예측 유닛으로 구성되어 있습니다. 이런 아키텍처는 비록 설계가 간단하지만 스트림 프로세서의 수가 늘어날수록 그 단점도 누적되게 됩니다. 왜냐하면 현재의 게임 계산에는 단순 벡터 연산이 차지하는 비중이 갈수록 줄어들며, VLIW5 프로세서의 이용율이 그리 높지 않기 때문입니다.

 

19.jpg

 

VLIW4 아키텍처는 AMD GPU의 이용율 문제를 개선하였습니다.

 

VLIW4 프로세서의 ALU는 4개로 줄어들었습니다. 비록 그 수는 줄어들었지만 ALU 유닛의 기능은 여전히 VLIW5 수준을 유지하고 있습니다. 이런 설계는 명령어 스케줄과 레지스터 관리를 줄여주며 로직 회로의 이용율을 높여줍니다. 그러나 라데온 HD 6900의 혁신은 아키텍처의 조절 뿐이며, 5D에서 4D로의 전환은 여전히 1D 순수 스칼라보다 이용율이 떨어집니다.

 

AMD가 라데온 HD 6900 아키텍처를 조절했을때, NVIDIA도 페르미 아키텍처를 개선하였습니다. AMD가 아키텍처를 개선한 원인이 성능 때문이라면, NVIDIA가 페르미에 손을 댄 이유는 이와 정 반대입니다. 성능 문제가 아니라 발열과 소비 전력 때문이지요. 그래서 나온 코드네임 GF11x의 2세대 페르미 아키텍처가 바로 현재 사용중인 지포스 GTX 500 시리즈입니다.

 

변혁의 시작은 지포스 GTX 460부터였습니다. NVIDIA는 줄곧 일부 코어와 ROP 유닛을 막는 방법으로 중저가형 그래픽카드를 출시해 왔지만, 막혀있는 유닛도 여전히 전력을 소비하고 있습니다. 따라서 NVIDIA는 페르미 코어를 다시 패키징하여, 지포스 GTX 460에 새로운 GF104 아키텍처를 사용합니다.

 

20.jpg

 

GF104 아키텍처는 페르미 아키텍처 최적화의 결과입니다.

 

페르미 아키텍처는 쿠다 코어-SM 유닛-GPU 유닛으로 구성되어 있습니다. GF104 아키텍처의 순서도 이와 같지만, SM 유닛을 구성하는 쿠다 코어의 수가 32개에서 48개로 변했으며, 텍스처 필터링 유닛도 같은 비율로 늘어났습니다. 하지만 폴리모프 엔진, ROP 유닛, 메모리 컨트롤러의 공유가 늘어나면서 GPC와 SM 유닛의 수를 줄일 수 있게 되었고, 코어 크기와 발열 모두 줄어들게 되면서 제품의 수율도 높아지게 됐습니다.

 

이런 아키텍처를 제일 처음으로 사용한 것이 지포스 GTX 460입니다. 지포스 GTX 480/470의 단점을 개선하여 사람들의 주목을 이끌면서 해당 가격대에서 제일 경쟁력있는 제품이 되면서, AMD의 라데온 HD 6850이 가격을 인하하게 만들었고, 지포스 GTX 460 768MB도 상당히 좋은 가격대 성능비를 보여주었습니다. 

 

21.jpg

 

지포스 GTX 460은 지금까지도 인기가 좋은 그래픽카드입니다.

 

 

그래픽 이외의 용도. 통용 계산을 하는 그래픽카드

 

현재 그래픽카드의 성능은 일반적인 게임을 돌리기에 충분하며, 게임 이외에 그래픽카드의 강력한 부동소수점 성능을 제대로 사용하진 못하고 있습니다. 이 문제를 해결하기 위해 상당수의 회사들이 그래픽카드 통용 계산을 개발하여 그래픽카드의 부동소수점 계산 성능으로 어플리케이션을 가속하고 있습니다. 그래픽카드의 통용 계산에 대한 연구는 나온지 꽤 오랜 시간이 지났지만 다이렉트 X 10을 지원하는 G80이 나온 이후부터 본격적인 진전이 생기게 됩니다.

 

22.jpg

 

NVIDIA의 G80/GT200/페르미 아키텍처 기반으로 개발한 쿠다의 활용

 

통합 쉐이더 아키텍처의 탄생에 따라 GPU의 계산은 벡터 기반의 계산에서 스칼라 기반의 병행 계산으로 바뀌게 됩니다. 아키텍처와 계산 방식이 가져다준 제한을 벗어나면서 GPU는 처리 과정의 문제에서 벗어나 그래픽 영역에서 통용 계산 영역으로 확장할 수 있게 됐습니다.

 

23.jpg

 

GT200의 부동소수점 연산 성능은 쿼드코어 CPU의 10배입니다

 

쿠다의 출현은 그래픽카드가 더이상 게임 뿐만 아니라 그래픽카드의 부동소수점 연산 능력을 해방해준 것이 되겠습니다. 그래픽카드는 대규모의 병렬 계산 영역에 적합한데, 과학 계산, 물리 에뮬레이트, 석유 탐사 등이 있습니다. GPU를 사용한 슈퍼컴퓨터는 더 이상 상상속의 이야기가 아니며 현재 세계에서 제일 빠른 슈퍼컴퓨터엔 텐허 1A도 CPU와 GPU의 헤테로지니어스 연산을 사용합니다.

 

24.jpg

 

텐허 1A는 페르미 코어의 테슬라 C2050을 사용했습니다.

 

이런 뜬구름잡는 이야기는 일반 사용자와는 별로 상관이 없겠지요. 하지만 일상 생활에서도 쿠다는 널리 사용되고 있습니다. 예를 들면 동영상 컨버팅, 3D 모델링 가속 등이 있습니다. 여기에는 바다붐, 미디어코더, 미디어에스프레스, TMPGEnc, 3D맥스, 마야, 빌트 등이 있습니다.

 

25.jpg

 

바다붐은 쿠다 가속을 지원하는 대표적인 동영상 컨버터 프로그램입니다.

 

 

새로운 화제거리가 된 물리 가속

 

물리 가속은 자주 이야기되는 문제입니다. 비록 지금 게임의 화질이 계속 높아지면서 진짜와 구분하기 어려운 그래픽을 보여주고 있지만, 사물의 움직임, 폭발, 물체의 이동, 바람에 움직이는 나뭇잎 등은 여전히 자연스럽지 않게 움직이고 있습니다. 이것은 게임에서 물리 효과가 부족하여 생기는 현상으로 운동 규칙이 논리적이지 않아 괴상하게 보이는 것입니다.

 

물리 가속 엔진은 다양한 종류가 있습니다. 하지만 PhysX는 게임에서 사용량이 그리 많지 않았고 전문 작업에서만 주로 사용되었습니다. 왜냐하면 당시에 물리 가속의 대부분은 CPU 기반 연산이었으며, 이런 CPU 연산은 게임 실행에 있어서 큰 부담을 주기 때문에 물리 가속의 보급을 제한하는 요인이었기 때문입니다.

 

PhysX는 Aegia에서 개발한 것으로 당시에는 물리 가속 전용 카드를 사용하였습니다. 나중에 NVIDIA가 인수하면서 쿠다 환경을 이용해 PhysX를 그래픽카드의 소프트웨어 가속으로 변화시켰습니다. 이로서 지포스에서 더욱 사실적인 물리 효과를 볼 수 있게 되었으며 CPU 리소스도 사용하지 않게 됐습니다.

 

NVIDIA의 지원에 힘입어 게임 개발사들이 PhysX를 점점 더 많이 사용하게 되었습니다. 지금은 150종이 넘는 게임이 PhysX를 지원하는데 그 중에는 마피아 2, 메트로 2033, 배트맨 등의 대작 게임이 포함되어 있습니다.

 

26.jpg

 

PhysX를 지원하는 게임

 

 

3D 스테레오

 

27.jpg

 

3D 비전은 고가의 3D 전용 스크린을 구비할 필요 없이, 비교적 간단하게 3D를 제공해 주는 솔루션입니다.

 

28.jpg

 

3D 비전은 전용 3D 모니터가 필요하지 않으며 리프레시율이 120Hz 이상인 모니터만 있으면 됩니다(라고 말하지만 지금은 리프레시율 120Hz인 모니터가 3D 모니터로 취급되고 있으니 -_-)

 

앞에서 말한 몇가지 특징들은 AMD와 NVIDIA 제품의 큰 차이입니다. 이런 부분에서 AMD는 아직 부족하지요. 비록 스트림 통용 계산이 있지만 이쪽 분야에서 AMD는 GPU보다는 CPU를 사용하는것을 원하고 있으며, 물리 가속도 마찬가지입니다.

 

 

앞으로의 길

 

다이렉트 X 10은 그래픽카드의 버텍스 쉐이더와 픽셀 쉐이더를 통합 쉐이더로 합쳤지만, 통합 쉐이더를 어떤 방법으로 실현하는지는 순전히 GPU 제조사에 의해 결정되었습니다. 2가지의 서로 다른 스타일은 제품의 설계에 영향을 주었을 뿐만 아니라 앞으로의 전망이나 계획에도 영향을 주게 되었습니다.

 

AMD는 자신의 CPU를 가지고 있으며 앞으로 계속 퓨전을 통해 그 2가지를 융합하여, APU  제품이 대량으로 출시될 것입니다. AMD는 이미 CPU와 GPU의 결합에서 단맛을 보았지요. NVIDIA의 경우 CPU가 없으며 x86 시장의 진입 장벽이 매우 높기 때문에 ARM을 선택하여 모바일 프로세서 시장을 공략하고 있습니다. 테그라 2 듀얼코어 프로세서는 삼성, LG, 모토로라 등의 대형 회사들이 선택하여 이를 사용한 제품이 여럿 출시되고 있고, 올해 말에는 테그라 쿼드코어 프로세서도 출시될 전망입니다.

 

29.jpg

 

테그라 모바일 프로세서는 NVIDIA의 새로운 성장 동력입니다.

 

데스크탑 시장에서 AMD와 NVIDIA는 모두 차세대 GPU를 준비하고 있습니다. AMD는 앞으로의 게임에 적당하지 않은 4D+1D 아키텍처를 라데온 HD 6900 시리즈에서 개선하였으며, 앞으로도 당분간은 이 아키텍처를 계속 사용할 것입니다.

 

NVIDIA의 야심은 더 큽니다. 앞으로 2세대의 GPU 라인업을 예고한 상황인데, 올해 연말에는 케플러 아키텍처의 GPU를 발표합니다. 28나노 공정에 더블 프리시전 부동소수점 연산 성능은 4배이며, 가상 메모리, 넌 블럭킹 I/O 등의 CPU와 비슷한 기능을 제공합니다. 2013년에는 맥스웰이 차세대 GPU의 계보를 이우며 와트당 성능이 기존 페르미의 10배까지 상승하고, GPU에 ARM 코어의 CPU를 내장하게 됩니다.

 

30.jpg

 

앞으로 GPU 전쟁에서 두 회사가 가게 될 길은 완전히 다릅니다.

 

AMD와 NVIDIA는 현재 위치가 다르기 때문에 두 회사의 스타일이 완전히 다를 수밖에 없습니다. AMD는 보수적인 스타일로 R600 아키텍처 자체가 기존 아키텍처를 수정한 것이며 그 후로도 줄곧 변화가 없었습니다. 비록 다이렉트 X 11을 먼저 지원하기 했지만 다이렉트 X 11의 주요 기능인 테셀레이션은 NVIDIA보다 떨어집니다. 그리고 CPU가 있으니까 GPU를 보다 다용하게 사용하는 영역에서는 보수적일 수밖에 없지요. NVIDIA는 이와 상반되게 아키텍처를 적극적으로 바꾸고 있습니다. G80에서 SIMD를 바꾸고 MIMD를 도입하였으며 완전한 1D 슈퍼스칼라 아키텍처를 도입하였습니다. GPU의 통용 계산이나 ARM 개발에도 적극적이고 말입니다. 물론, 이런 2가지 스타일은 저마다 장단점이 있습니다. 어떤 방법이 끝까지 살아남을 것인지는 두고 봐야 알 일이지요.

 

 

출처: http://www.expreview.com/15154-1.html

기글하드웨어(http://gigglehd.com/zbxe)에 올라온 모든 뉴스와 정보 글은 다른 곳으로 퍼가실 때 작성자의 허락을 받아야 합니다. 번역한 뉴스와 정보 글을 작성자 동의 없이 무단 전재와 무단 수정하는 행위를 금지합니다.