세계 최초로 다이렉트 X 11을 지원하는 그래픽카드인 라데온 HD 5870의 소개와 벤치마크입니다.

 

사실 엄청나게 긴 글인데 -_- 오늘 안으로 올리겠다고 작정했으니, 예전에 중복되는 내용으로 올렸던 것들은 생략합니다. 출처는 http://www.pcpop.com/doc/0/442/442339.shtml

 

 

다이렉트 X 11

 

다이렉트 X 10이 나온지 4년이 지나 주류에 편입된 지금, 다이렉트 X 11이 등장했습니다. 다이렉트 X 11은 이전 버전과 비교하여 5가지 특징이 있습니다.

 

001222190.jpg

 

테셀레이션(Tessellation). 멀티 스레딩(Multi Threading). 다이렉트 컴퓨트 11(DirectCompute), 쉐이더 모델 5.0(Shader Model), 텍스처 컴프레션(Texture Compression).

 

 

쉐이더 모델 5.0

 

쉐이더는 3D 오브젝트에 진행하는 조작을 가리키는 것으로, GPU에 의해 실행되는 어플리케이션입니다. 쉐이더 모델의 뜻은 '랜더링 엔진 최적화 모드'로서 GPU의 랜더링 명령어 세트라고 볼 수 있겠습니다.

 

쉐이더 모델 1.0은 다이렉트 X 8.0

쉐이더 모델 2.0은 다이렉트 X 9.0b

쉐이더 모델 3.0은 다이렉트 X 9.0c

쉐이더 모델 4.0은 다이렉트 X 10

쉐이더 모델 5.0은 다이렉트 X 11에서 지원하기 시작했습니다.

 

높은 버전의 쉐이더 모델은 낮은 버전의 명령어 셋트를 모두 가지고 있으며, 이들 명령어를 확충하고 개선함과 동시에 새로운 기능들을 추가합니다. 그럼 다이렉트 X 11의 쉐이더 모델 5.0에는 어떤 특징이 있는지 보도록 하겠습니다.

 

001222987.jpg

 

통합 쉐이더 아키텍처의 특징으로 인하여, 쉐이더 모델 5.0은 완전히 스트림 프로세서에 맞춰 설계되었습니다. 모든 유형의 쉐이더-픽셀, 버텍스, 지오메트리, 컴퓨트, Huull, 도메인-가 새로운 명령어 세트에서 효과를 볼 수 있습니다.

 

쉐이더 모델 5.0의 새로운 명령어에는 다음 특징들이 있습니다. 

 

쉐이더가 직접 샘플링 데이터를 출력하여 덮어 쓸 수 있습니다. 이 경우 테두리를 측정하는 것이 더욱 정확해지고 안티 얼라이싱 효과와 연산 효율이 나아지게 됩니다.

 

Gather 함수의 텍스처 수확을 가속. 한개의 텍스처 명령어에서 4개 점의 샘플링 값을 읽을 때, 특정 색에 나눠 샘플링을 할 수 있고, 자동으로 그림자 반사 효과 값을 식별할 수 있습니다. 더 빠르고 나아진 그림자 효과가 가능하고 SSAO를 실현할 수 있습니다.

 

수학 함수를 사용하여 간단한 2차원 텍스처 도안을 정의할 수 있습니다. 수학 함수를 이용하여 수시로 높이 효과를 내어, 표면의 굴곡을 표시하는 텍스처-즉 기하 텍스처를 생성할 수 있습니다. 이 기능은 고성능, 고화질의 텍스처 필터링을 제공합니다.

 

데이터값을 32비트 부동소수점과 16비트 부동소수점 사이에 상호 전환이 가능합니다. 간단하고 높은 효율로 더블 프리시전을 지원합니다.

 

회전, 순서 배열, 패키징, 압축, 압축 해제 등을 지원, 데이터 압축/압축 해제의 속도와 전송률이 빨라졌습니다.

 

이 중에 샘플링 데이터와 Gather 함수의 경우에는 다이렉트 X 10.1을 기준으로 발전시킨 것이며, 쉐이더 모델 5.0이 쉐이더 모델 4.1에서 더욱 자동적이고 민첩하게 작동합니다. 특정 색 단위로 샘플링이 가능하며, 자동으로 그림자 효과의 값을 인식하기 때문에 정확도와 효율이 더욱 높아졌습니다.

 

다이렉트 X 10.1과 다이렉트 X 10의 명령어는 비슷하며, 현재의 다이렉트 X 10.1 게임은 쉽게 다이렉트 X 11로 바꿀 수 있습니다.

 

 

멀티 스레드

 

001222879.jpg

 

다이렉트 3D 11의 새로운 기능. 멀티 스레드 처리입니다. 딜레이 실행 명령을 통해 하나의 렌더링 과정을 여러개의 스레드로 나눌 수 있습니다. 프로세서 코어/스레드 수는 딜레이 수에 따라 결정됩니다. 멀티 스레드 함수는 매우 광범위하여 하나의 프레임을 몇개의 그림으로 나눌 수 있고, 각각의 그림은 또 여러개의 구역으로 나눌 수 있습니다. 모든 구역들은 스레드 중에서 병행 실행됩니다.

 

바로 실행하는 스레드(제일 왼쪽)은 전통적인 렌더러와 차이가 없습니다. 오른쪽 2개의 딜레이 실행이라고 써진 것들은 리소스를 먼저 예측하여 수에 맞춰 생성됩니다. 예를 들어 텍스처를 처리하고 픽셀을 만들고 상수 버퍼 등의 조작은 모두 멀티 스레드에서 병렬 처리되며, 멀티 코어 CPU의 풍부한 자원을 통해 프로그램 실행에서 기다리는 시간을 줄이고, 이를 통해 CPU의 병목 현상을 줄입니다.

 

001223221.jpg

 

멀티 스레드 기술은 매우 융통성이 있어, 게임에서 프로그램 코드를 통해 조절되고, 다이렉트 X가 자동으로 분배할 뿐만 아니라, 드라이버에서 병렬 실행 최적화를 할 수 있습니다. 즉, 드라이버가 멀티 코어 최적화를 하지 않아도, 다이렉트 X 11 라이브러리에서 가상 방식으로 새로운 기능을 실행할 수 있습니다.

 

멀티 스레드 기술은 SLI나 크로스파이어 같은 멀티 그래픽카드에서 더욱 중요합니다. 이전까지는 멀티 GPU가 다이렉트 X에서 한개의 가상 GPU로 인식되며, 모든 GPU는 반드시 공유 버퍼를 통해 CPU를 조절하게 됩니다. 랜더링 스레드의 분석과 합병 명령어의 딜레이가 매우 컸기에 GPU의 효율이 더 낮아지게 됐던 것입니다. 하지만 다이렉트 X 11에서는 만약 쿼드코어 CPU에 4웨이 크로스파이어를 구성했을 경우, 각각의 코어가 1개씩 GPU 렌더링 스레드를 담당할 수 있게 되어, CPU의 부담을 균등하게 나뉘게 됨과 동시에, GPU의 리소스를 효율적으로 사용, 게임 성능을 더 높일 수 있습니다.

 

사실 멀티 스레드 기술은 다이렉트 X 9, 10, 심지어 오픈 GL에서도 사용할 수 있습니다. 하지만 API와 함수 명령어의 한계 때문에 멀티 스레드를 켜면 명령이 많이 중복되어, 성능 향상의 한계와 심지어 떨어지게까지 만들게 합니다. 따라서 마이크로소프트는 예전의 API 모드로 멀티 스레드를 사용하는 것을 권장하지 않고, 엄격한 테스트와 최적화를 하길 권장하고 있습니다.

 

 

2개의 새로운 텍스처 압축 포멧

 

풍부한 텍스처 디테일은 그래픽의 품질을 결정하는 아주 중요한 요소입니다. 현재 게임은 초 대규모에 엄청나게 세밀한 텍스처를 사용하는 방향으로 발전하고 있습니다. 하지만 대규모 텍스처는 매우 큰 비디오 메모리와 대역폭을 사용합니다. 따라서 텍스처 압축으로 이 문제를 해결할 수 있으며, 대규모 텍스처에 최적화된 계산법으로 압축을 진행하게 됩니다. 만약 텍스처 압축이 제대로 되지 않는다면 비디오 메모리 2GB도 부족할 것입니다.

 

000361373.jpg

 

하지만 현재의 텍스처 압축 기술은 HDR을 지원하지 않습니다. 이것은 HDR을 켰을 경우 비디오 메모리 점유량이 많은 원인이기도 합니다. 이 문제를 해결하기 위해 다이렉트 X 11에는 2가지 새로운 압축 계산법, BC6H와 BC7을 도입했습니다. 그 중에서 BC6H는 HDR 그래픽을 위해 전문적으로 설계된 압축 계산법이고, 압축비는 6:1입니다. BC7은 고화질 RGB[A] 텍스처 설계를 위한 계산법으로 압축비 3:1입니다.

 

000971002.jpg

 

위 그림은 BC6H 압축 모드로 압축을 하기 전과 후의 효과를 비교한 것입니다. 왼쪽은 HDR 효과를 준 원본 이미지이고, 중간은 압축 과정에서 손실되는 디테일, 오른쪽은 압축 후의 이미지입니다. 이렇게 보면 손실되는 부분이 육안으로 보이지 않을 정도이지만, 비디오 메모리 사용량은 대폭 줄어들게 됩니다.

 

000971003.jpg

 

이 그림은 BC7을 LDR 텍스처 압축에 사용한 것과 전통적인 BC3 텍스처 압축을 비교한 것입니다. 기존의 BC3 텍스처에서는 대량의 디테일 손실을 보며 압축 후의 효과가 많이 떨어지지만, BC7 계산에서는 아주 적은 부분만의 손실이 있으며 효과는 매우 좋습니다.

 

 

다이렉트 컴퓨트. 통용 계산으로 끝나지 않는다

 

다이렉트 X 11에는 컴퓨터 쉐이더나 다이렉트 X 컴퓨트라는 이름의 GPU 통용 계산이 포함될 것이라 알려졌었습니다. 이는 정식 버전에서 다이렉트 컴퓨트로 바뀌어졌는데, 다이렉트 '엑스'가 사라진 이유는 3D 어플리케이션에만 한정짓지 않고, GPU를 통용 계산에 널리 쓰겠다는 의미입니다.

 

GPU 통용 계산에는 NVIDIA의 CUDA, ATI의 스트림, 오픈 CL 표준이 있고, 여기에 다이렉트 컴퓨트가 추가되었습니다. 

 

오픈 CL은 오픈 GL 기반으로, 전체 업계가 공동으로 제정하는 오픈형 표준입니다. 상대적으로 융통성이 크고 강력하지만 개발하기가 어렵습니다.

 

다이렉트 컴퓨트는 다이렉트 X와 비슷하게 마이크로소프트가 주도하는 통용 계산 API입니다. 윈도우즈에 내장하여 소비자들에게 다가가며, 쉽게 사용할 수 있고 호환성이 높다는 점이 특징입니다.

 

CUDA와 스트림은 그래픽 아키텍처나 병렬 컴퓨터 아키텍처에 더 맞으며, NVIDIA와 ATI가 자사의 GPU 아키텍처에 맞춰 개발하는 것입니다. 따라서 이에 맞는 드라이버, 개발 키트 등이 있으며, 라이센스를 가지고 있는 프로그래머가 사용할 수 있습니다.

 

001225543.jpg

 

ATI 스트림.

 

000939990.jpg

 

NVIDIA CUDA.

 

000931184.jpg

 

오픈 CL을 지원하는 회사들.

 

 

다이렉트 컴퓨트 10/11 버전의 구별

 

비록 다이렉트 컴퓨트는 공개된지 얼마 되지 않았지만, 벌써 3가지 버전이 존재합니다. 다이렉트 X 버전과 대응하는-10, 10.1, 11-데, 비록 다이렉트 컴퓨트는 지금까지 다이렉트 X의 하위 개념이었지만 앞으로는 자신만의 유저들을 끌어들이게 될 것입니다.

 

001148991.jpg

 

001082444.jpg

 

간단하고 직관적인 조작. 윈도우즈 7에 내장된 GPU 기반 동영상 전환 프로그램입니다.

 

10월에 발표될 예정인 윈도우즈 7은 다이렉트 X 11과 다이렉트 컴퓨트를 내장하여 GPU 통용 계산을 네이티브 지원합니다.

 

001225589.jpg

 

다이렉트 컴퓨트 10과 11의 차이는 다음과 같습니다.

 

스레드 파견이 2D에서 3D로 변경. 단일 3D 어레이로 2D 스레드 어레이를 대체하여 더 빠르고 효율적으로 리소스를 사용합니다.

 

스레드 제한이 768개에서 1024개로 늘어나 동시에 처리할 수 있는 스레드 수가 1/3이 늘어나, 병렬 계산 성능이 향상되었습니다.

 

스레드 공유 캐시가 16KB에서 32KB로 늘어나 스레드 사이에 공유하는 데이터 양이 배로 늘어났습니다.

 

공유 캐시 저장에 256비트의 쓰기 제한이 있었지만, 32KB를 전부 쓸 수 있고 읽기/쓰기 제한이 사라져, I/O의 압박이 줄어들고 버퍼 사용률이 더 높아졌습니다.

 

또한 각각의 스레드가 보호를 받는 메모리 구역 내를 조작할 수 있게 되어, 다른 스레드와의 충돌을 피하고, 프로그래머가 CPU에게 하는 것처럼 GPU에서 프로그램을 짤 수 있게 되었습니다.

 

더블 프리시전을 지원, IEEE754 표준의 64비트 부동 소수점 연산을 쓸 수 있습니다.

 

새로운 부가 버퍼 포멧을 지원하여, 전통적인 버퍼 데이터의 끝에 위치, 버퍼 공간의 이용률을 높이고 비디오 메모리의 압력을 줄여줍니다.

 

순서에 상관 없이 쓸 수 있는 컴퓨트 쉐이더가 1개에서 8개로 늘어나, 8개 위치의 버퍼를 동시에 엑세스 할 수 있습니다.

 

순서에 상관 없이 쓸 수 있는 픽셀 쉐이더를 새로 8개 지원하게 되어, 그래픽과 관련된 통용 계산의 실행 성능을 개선했습니다.

 

Gather4를 지원, 텍스처 데이터의 처리 속도를 4배 증가시켰습니다.

 

이렇게 보면 다이렉트 X 11과 마찬가지로, 다이렉트 컴퓨트 11의 개선은 시스템 리소스의 사용을 낮추고 효율을 높이는 쪽이라는 것을 알 수 있으며, 다이렉트 X 11 그래픽카드는 더 강력한 통용 계산 성능을 제공할 수 있게 됩니다. 

 

 

다이렉트 컴퓨트 11의 새로운 특수 효과. OIT

 

연기, 불, 물의 흐름, 유리, 나뭇잎, 울타리, 머리카락.. 게임 중에는 여러가지 반투명 물체가 등장하는데, 프로그래머는 이러한 물체들을 고정된 모델로 만들기 매우 힘듭니다. 그들은 불규칙적이고 항상 변하는 특징을 가지고 있기에 단순하게 픽셀 쉐이더나 텍스처 맵핍으로 만들 수가 없습니다. 따라서 이런 오브젝트에 Order Independent Transparency, OIT를 사용하게 됩니다.

 

001225592.jpg

 

지금까지는 프로그래머들이 각각의 프레임을 렌더링 하기 전에, 투명 모델링에서 심도를 배열하거나 심도를 벗어난 멀티 패스 계산법을 사용하여 정확한 투명도를 구해 냈습니다. 하지만 이런 방법은 투명하지 않은 모의 일부에만 후처리하여 구해내는 투명 효과만큼 정확하진 않습니다. 또한 리소스 사용량도 많지요.

 

다이렉트 X 11에는 처음으로 외부 전용 회로를 사용하지 않으면서, 각각의 픽셀 공간 데이터 구조에 여러 투명 표면의 배열을 실현하는 OIT의 지원이 추가되었습니다. 그 해결 방법은 GPU가 연산에 참여하게 하는 것인데, 다이렉트 컴퓨트 11에서 새로 추가된 기술입니다. 소프트웨어에서 직접 관리하지 않아도 버퍼의 레벨에 따라 데이터를 나눌 수 있으며, 각각의 픽셀 투명층 수에 따라 단독 메모리에 분배할 수 있습니다. 이렇게 하여 프로그램의 설계 복잡도를 현저하게 낮췄습니다.

 

다이렉트 X 10에서는 기본적으로 이를 지원하지 않아 전통적인 방법을 사용할 수밖에 없었습니다. 하지만 다이렉트 X 11은 화질이 더 좋아졌을 뿐만 아니라 실행 효율이 매우 높아졌고, 대량의 부가 버퍼를 사용하여 비디오 메모리의 대역폭 소모량을 줄일 수 있습니다.

 

 

다이렉트 컴퓨트 11의 새로운 특수 효과: 렌더 백 엔드의 원경 처리

 

디지털 카메라로 사진을 찍은 다음에 포토샵으로 후보정을 하는 것과 마찬가지로, 3D 모델은 GPU 내부에서 랜더링을 한 후에 백 엔드에서 후처리를 한 다음에 스크린에 표시됩니다. 이것은 렌더 포스트 프로세싱(Render Post-Processing)이라 하며, 흔히 사용하는 안티 얼라이싱, 이등방성 필터링, 모션 블러, 색채 반사 등이 여기에 해당합니다.

 

GPU는 렌더링을 마친 다음에 전문적으로 후처리를 위한 모듈을 가지고 있는데 이것을 렌더 백 엔드(Render Back-Ends)라고 하는데, 흔히 말하는 ROPs(Raster Operation)입니다. 이 모듈은 스트림 프로세서와 비디오 메모리 컨트롤러 사이에 위치하여, 렌더링이 끝난 다음에 데이터를 직접비디오 메모리와 스크린에 표시해 줍니다.

 

다이렉트 X 10에서 ROP는 매우 중요했습니다. 만약 대량의 후처리 특수 효과를 사용한다면 픽셀 쉐이더가 ROP의 처리를 기다리는 상태가 쉽게 발생했었습니다. 따라서 여러 다이렉트 X 10 게임은 GPU에 주는 부하가 다이렉트 X 9c와 비교할 정도가 아니었습니다. 다이렉트 X 11에서는 기묘한 방식으로 ROP의 부담을 줄였는데, 스크림 프로세서와 ROPs의 협동 작업을 통한 것이며, 원리는 여전히 스트림 프로세서를 사용하는 것입니다.

 

각종 후처리 특수 효과는 최종 효과가 비록 천차만별이긴 하지만, 대다수가 공통적인 특징을 가지고 있습니다. 그것은 인접한 위치의 픽셀이나 인접 프레임의 픽셀이 비교용으로 필요하며, 그 후에 이것들을 비교 분석하여 합성한다는 것입니다. 이 동작은 사실 한개의 함수면 바로 완성되는데 그것은 Gather4입니다. 이것은 컴퓨트 쉐이더가 월권하여 데이터 샘플링을 할 수 있게 해주며, 텍스처 유닛과 ROP의 부담을 줄여주는데 도움을 줄 뿐만 아니라, 컴퓨트 쉐이더의 데이터 샘플링 속도는 기존 전용 유닛의 4배에 달합니다.

 

000570115.jpg

 

다이렉트 X 10 버전의 심도 처리

 

구체적인 예를 들어서, 다이렉트 X 10에서 모션 블러나 심도 특수 효과는 모두 지오메트리 쉐이더를 통해 실현되었습니다. 지오메트리 쉐이더가 움직이는 물체의 좌표를 변환하고 픽셀을 모니터링하거나, Depth Map 중의 텍스처 데이터를 분석하여 거리를 분석하여 버퍼에 넣은 것입니다. 후에 몇개의 다른 시각에서 렌더링을 하여 마지막에는 그래픽을 합성하는데, 다이렉트 X 9.0c보다 더 정확하고 빠른 효과가 가능하며 화질도 뛰어납니다. 하지만 지오메트리 쉐이더는 ROP의 어떤 일도 도울 수 없기에 데이터 처리량은 몇배로 늘어나, 성능 하락이 심해집니다.

 

001225931.jpg

 

다이렉트 컴퓨트 11에서는 새로운 명령어를 추가하여 렌더 백 엔드의 특수 효과가 최대한도로 비디오 메모리의 엑세수 수를 줄이고, ROP의 부담을 대폭 줄이도록 하였습니다. 스트림 프로세서는 더 많은 태스크를 담당하지만(지오메트리, 컴퓨트, 픽셀 쉐이더), 그래도 상대적인 평형을 유지하여, 다이렉트 X 10에서처럼 GPU 리소스의 부하가 불균형을 이루는 상황은 만들지 않습니다.

 

 

다이렉트 컴퓨트 11의 새로운 특수 효과: 렌더 백 엔드의 HD Ambient Occlusion

 

Ambient Occlusion은 아주 복잡한 광원 기술로서, 광선이 물체에 반사되고 흡수됨에 따라 영향을 받는 위치에 적절한 그림자를 그려내는 것으로, 더 풍부한 광선 효과를 낼 수 있습니다.

 

001226026.jpg

 

H.A.W.X에서 Ambient Occlusion과 다이렉트 X 10.1을 지원합니다.

 

Ambient Occlusion은 다이렉트 X 10.1의 새로운 특성으로 Gather4를 사용하면서 빠르고 정확하게 텍스처 필터를 할 수 있게 되었습니다. 비록 다이렉트 X 10.1 버전의 Gather4는 단일한 색에만 적용할 수 있지만, 그림자와 SSAO를 처리하기에는 매우 괜찮습니다. 왜냐하면 Z 버퍼는 한가지 색의 분량으로 이루어져 있기 때문입니다. 다이렉트 X 10 그래픽카드에서는 업데이트를 통해 SSAO를 지원하며, NVIDIA도 드라이버에서 이를 지원합니다. 하지만 성능 손실이 커서 기본값은 꺼져 있습니다.

 

001225987.jpg

 

스토커의 그림자 효과. HDAO의 유무.

 

다이렉트 X 11에서 Ambient Occlusion은 더 우수한 버전이 나왔는데, AMD는 그것을 High Definition Ambient Occlusion, 줄여서 HDAO라고 부릅니다. 이것은 일종의 텍스처 그림자 효과로서 보통의 Ambient Occlusion보다 더 나은 효과를 보여주면서도 시스템 성능을 보장합니다. 아래는 AMD의 HDAO 데모.

 

001226032.jpg

 

HDAO를 껐을때. 188fps

 

001226033.jpg

 

HDAO를 켰을때. 20fps 정도만 하락.

 

001226034.jpg

 

다이렉트 컴퓨트 11에서 HDAO를 켰을때. 44fps가 상승.

 

001226062.jpg

 

에얼리언 vs 프레데터에서의 HDAO.

 

 

낮설지 않은 테셀레이션(Tessellation)

 

테셀레이션의 다이렉트 X 11의 중요 기술의 하나입니다. 테셀레이션은 ATI의 독자적인 기술이긴 하지만, 이것이 NVIDIA가 테셀레이션을 지원하지 않는다는 것은 아닙니다. 다이렉트 X 11에 테셀레이션이 추가되고 나서 앞으로 NVIDIA의 다이렉트 X 11 그래픽카드도 지원을 추가할 것입니다.

 

000475759.jpg

 

 

테셀레이션은 많은 사람들에게 강렬한 이미지를 남겨주었습니다. ATI의 1세대 다이렉트 X 10 그래픽카드인 R600(라데온 HD 2900XT)에서 처음으로 등장한 특수 모듈로서, 라데온 HD 4000 시리즈까지 줄곧 이어져 왔습니다. 비록 지금까지 한개의 게임도 이를 직접 사용하진 않았지만(...) ATI는 포기하지 않고 지원을 계속하였으며, 마침내 그 결실을 보게 되었습니다.

 

001222190(1).jpg

 

001226229.jpg

 

마침내 다이렉트 X 11에서 마이크로소프트가 테셀레이션을 정식으로 추가하게 됐습니다.

 

 

2009년의 RV870: 테셀레이션이 정식으로 다이렉트 X 11에 추가

 

비록 AMD의 노력에도 불구하고 C 게임 제조사들이 테셀레이션을 아직까지 사용하지 않았지만, 이 기능은 컴퓨터 그래픽 회사의 관심을 받았습니다. 왜냐하면 컴퓨터 그래픽은 모델링의 디테일을 세밀하게 만들어야 하는데, 테셀레이션을 사용하면 아주 적은 자원만으로 모델의 묘사를 더 세밀하게 할 수 있기 때문입니다.

 

001082439.jpg

 

이후에 AMD는 컴퓨터 그래픽 쪽에 치중하여 시네마 2.0을 발표, 중소형 회사에 기술 제공을 하여, 테셀레이션을 더 잘 사용하도록 보급함과 동시에 광고 효과를 노립니다. 그래서 다이렉트 X 10 시절에는 ATI가 모든 그래픽카드에서 테셀레이션을 지원했지만, 다이렉트 X 10.1에서는 그때처럼 요란한 선전은 하지 않습니다.

 

001082438.jpg

 

몇년 동안 발전한 후에야 테셀레이션은 그 기능과 특징을 인정받고 다이렉트 X 11에 정식 포함되게 됩니다. 그러자 세계 최초의 다이렉트 X 11 지원 게임인 배틀필드 차기작에서 프로스트바이트 엔진의 최신 버전을 사용하겠다고 밝혔는데, ATI R600 데모에서 사용한 엔진이 바로 그것입니다.

 

000445198.jpg

 

DICE 렌더러 아키텍트인 Johan Anderson은 다이렉트 X 10에서 다이렉트 X 11로 건너오는데 걸리는 시간은 3시간 뿐이며, 그 중에서 코드의 색인과 전환 부분이 제일 시간을 많이 잡아먹는다고 하였습니다. 이렇게 하여 배틀필드 엔진이 다이렉트 X 11을 지원하도록 만드는데 걸리는 시간이 그렇게 짧은 이유를 이해할 수 있씁니다. 2년 전에도 배틀필드 엔진은 테셀레이션을 지원할 수 있었으며, 지금은 필요한 요소를 조사하고 복사하여 붙여넣은 다음 코드를 바꿔 내놓은 것입니다.

 

배틀필드 엔진을 사용하는 게임이 적지 않으니, 테셀레이션과 다이렉트 X 11은 빠르게 보급될 것으로 기대됩니다.

 

 

다이렉트 X 11 버전 테셀레이션의 개선

 

당연히, 마이크로스프트가 R600의 테셀레이션을 그대로 다이렉트 X 11에 갖다 쓰진 않았으며, 최적화를 하여 렌더 스트림에 완벽하게 결합되도록 하였습니다. 이렇게 하여 더 높은 효율로 폴리곤과 곡면을 처리할 수 있습니다.

 

001226253.jpg

 

위 그림은 다이렉트 3D 11의 실행 흐름과 테셀레이션입니다.

 

Hull 쉐이더는 2개 단계로 작동합니다. 픽셀을 조작하는 단계에서는 표면을 전환하며, 부드러운 곡선을 예로 들 경우 면을 작은 덩어리로 나눠 하나의 점을 한번에 한개씩 조작합니다. 다음은 곡면 상수 단계로 평면 테셀레이터와 다른 상수를 설정합니다. 각각의 입력 그래픽은 한번 실행됩니다.

 

001226254.jpg

 

테셀레이터에서는 각각의 입력된 그래픽 범위 내에서 새로운 버텍스를 만들어 냅니다. 새로 정의된 점의 수는 Hull 쉐이더에서 계산해낸 평면 테셀레이션 계수에 따릅니다. 아래의 삼각형을 보면 등급에 따라 더 복잡한 구조로 변하는 것을 볼 수 있씁니다.

 

001226255.jpg

 

도메인 쉐이더는 테셀리에션 처리된 평면에 위치하는 모든 설정된 점을 평가합니다. Hull 쉐이더에서 만들어는 조절 점을 사용하여 다른 종류의 표면을 실현해 내고, 맵핑 전환을 하여 텍스처의 위치를 움직이는 데이터를 읽어내고, 버텍스의 위치를 이동시킵니다.

 

001226257.jpg

 

ATI의 테셀레이터는 새로운 고정 기능으로 다이렉트 3D 11의 테셀레이션 계산을 사용할 수 있고, 모든 다이렉트 3D 하드웨어와 XBOX360에서 지원하며, 개발자 키트를 통해 다이렉트 3D 9 환경에서도 사용할 수 있습니다.

 

테셀레이션 모듈의 작동에 맞춰, 다이렉트 X 11에는 2가지 새로운 쉐이더가 추가되었는데 헐 쉐이더와 도메인 세이더가 그것으로, 테셀레이터의 앞뒤에 위치합니다. 지금까지 다이렉트 X 10 라데온 그래픽카드에는 이들 기능이 없었습니다.

 

001226372.jpg

 

다이렉트 X 9와 11의 테셀레이션 계산법 비교입니다.

 

다이렉트 3D 11의 테셀레이션 계산은 한번의 조작으로 완성됩니다. 별도의 계산이나, 하드웨어적으로 표면 테셀레이션 처리가 필요할때 전용 하드웨어 없이 복잡한 폴리곤과 기하학적 도형을 그려낼 수 있습니다. 이는 100분의 1의 크기에 속도는 3배 더 빠른 효과가 있습니다.

 

다이렉트 3D 11의 테셀레이터는 더 많은 테셀레이션 등급이 있습니다(64대 15). 각각의 네트워크는 더 많은 폴리곤을 용납할 수 있습니다.

 

다이렉트 3D 11의 테셀레이터는 간결하게 어플리케이션 포트에 사용할 수 있습니다. 픽셀을 조절하느 역할이 전부 도메인 쉐이더와 헐 쉐이더로 넘어가고, ATI의 테셀레이터는 버텍스 텍스처의 읽기를 담당합니다.

 

비록 처리 과정은 다르지만 작동 원리는 비슷합니다. 지금까지 다이렉트 X 11 테셀레이션의 원형 테스트는 전부 ATI의 다이렉트 X 10 그래픽카드에서 진행되었습니다. 게임에서 하드웨어적인 제한도 없고, 현존하는 ATI 라데온은 테셀레이션 효과를 실현할 수 있습니다. 그저 다이렉트 X 11 쪽이 더 빠르고 좋은 효과를 낼 수 있을 뿐입니다.

 

 

다이렉트 X 11에서 테셀레이션의 응용 사례

 

 001226257.jpg

 

(이 그림은 앞에서 쓰였던 것이니 설명은 생략)

 

이전의 라데온 다이렉트 X 10 그래픽카드는 시대를 초월한 테셀레이션을 지원했습니다. 따라서 곧 선보일 다이렉트 X 11 게임에서 제일 많이 사용되는 신기술은 테셀레이션입니다. 테셀레이션의 도입으로 모델 디테일을 대폭 높일 수 있습니다.

 

001226301.jpg

 

에얼리언 vs 프레데터

 

001226307.jpg

 

캐릭터 테셀레이션.

 

001226308.jpg

 

테셀레이션으로 범프 맵핑을 대체.

 

001226310.jpg

 

DiRT2에서의 테셀레이션은 존재하지 않는 곳이 없습니다.

 

001226347.jpg

 

 

다이렉트 X 11 지원 게임. 4/4 분기에 4종 발표

 

2006년 11월에 최초의 다이렉트 X 10 그래픽카드인 지포스 8800GTX를 발표했을 때, 당시에는 다이렉트 X 10 게임의 그림자도 보이지 않았으며 7월이 되서야 최초의 다이렉트 X 10 지원 게임인 로스트 플래닛이 발표되었습니다.

 

2007년 11월에는 최초의 다이렉트 X 10.1 지원 그래픽카드인 라데온 HD 3870이 발표되었으며, 5개월 후에 다이렉트 X 10.1을 지원하는 어새신 크리드가 발표됐습니다.

 

그럼 지금, 최초의 다이렉트 X 11 그래픽카드인 라데온 HD 5870이 나왔지만, 역시 다이렉트 X 11 게임은 아직 나오지 않았습니다. AMD는 2009년 4/4 분기에 4종의 다이렉트 X 11 게임이 정식 발표될 것이라고 하며, 2010년에는 여러 대작들이 다이렉트 X 11 엔진으로 나올 것입니다.

 

 001226349.jpg

 

의외인 것은, 다이렉트 X 10.1 게임인 배틀 포지가 리스트에 올라가 있다는 것입니다. 패치를 통해 다이렉트 X 11로 업그레이드 될 것인데, 그 시기는 9~10월이 될 것입니다.

 

다이렉트 X 10.1을 지원했던 스토커 : 클리어 스카이의 후속작은 다이렉트 X 11을 기본 지원하는 게임입니다.

 

D.I.R.T 2는 다이렉트 X 11 엔진으로 제작되었습니다.

 

 

RV870의 아키텍처

 

다이렉트 X 10에 들어선 이후로 ATI와 NVIDIA는 GPU 아키텍처에 그리 큰 변화는 없었습니다. NVIDIA의 G9x와 GT200은 모두 G80의 MIMD 스칼라 프로세서 아키텍처이며, ATI는 R600의 SIMD 슈퍼스칼라 프로세서입니다.

 

RV870의 코어 아키텍처는 R600, RV670, RV770과 본질적인 차이는 없습니다. 제조 공정을 개선하고 대량의 트랜지스터를 집적한 초 고 스펙의 GPU입니다.

 

001222719.jpg

 

RV770의 코어 구조

 

RV870은 RV770/RV790에서 스트림 프로세서의 수 외에도, 텍스처 유닛과 ROP 등의 수를 두배로 늘렸습니다. 따라서 같은 클럭의 라데온 HD 4890과 비교하면 라데온 HD 5870의 이론적인 데이터 처리 성능은 두배입니다.

 

002191381.jpg

 

 위에서부터 차례대로 코드네임, 제조 공정, 트랜지스터, 코어 크기, 스트림 프로세서, 텍스처 유닛, ROP, 메모리 용량, 메모리 종류, 메모리 버스, 코어 클럭, 쉐이더 클럭, 메모리 클럭, 부동 소수점 연산 성능, 텍스처 필 레이트, 메모리 대역폭, 전원 포트, 대기 전력, 최대 전력, 출력 단자, 해상도입니다.

 

 

RV870, 싱글 칩, 듀얼코어 프로세서

 

RV870의 코어 구조에는 큰 특징이 있습니다. 그것은 스트림 프로세서가 하나로 되어 있는게 아니라 2개로 나뉘어 있고, 여기에 관련된 텍스처 유닛과 캐시 또한 두개로 나뉘어 있다는 것입니다.

 

001222732.jpg

 

절반으로 나뉘어 있는 스트림 프로세서를 관찰하면 그 구조는 RV770과 거의 달라진 것이 없습니다. RV870의 절반은 RV770이며, 그 주요 스펙은 다음과 같습니다.

 

좌/우 각 10개의 SIMD 어레이, 각각의 어레이는 4개의 텍스처 유닛과 캐시가 포함. 각각의 SIMD 어레이에는 16개 스레드 프로세서가 존재. 모든 스레드 프로세서에는 5개의 스트림 프로세서가 포함.

 

이런 구조는 듀얼코어 CPU와 매우 비슷합니다. 2개의 '코어'는 독립되어 있고 L1 캐시는 단독 사용, L2 캐시와 메모리 컨트롤러, 그리고 기타 버스 모듈은 공유합니다. 뿐만 아니라 코어 사이에 전용 데이터 공유 요청 통신이 오가게 됩니다. 그렇다면 왜 프로세서를 이전처럼 하나로 만들지 않고 두개로 나눈 것일까요?

 

 001222731.jpg

 

 RV770의 스트림 프로세서 분포

 

AMD의 그래픽 칩 연구 개발 총 감독은 RV870 코어에 지금까지 유래가 없던 21.5억개의 트랜지스터가 집적되어, 칩 설계와 제조의 난이도가 상당히 높아졌다고 지적했습니다. 만약 복잡한 스트림 프로세서 부분을 여러개의 모듈로 나눈다면 복잡도는 대폭 줄어들고 연구 개발의 진도가 빨라지며 제품 수율도 향상하게 됩니다.

 

물론 RV870은 한 덩어리의 코어이며, 스트림 프로세서 부분을 모듈화 하는 것이 성능을 발휘하는데 영향을 주진 않습니다. 왜냐하면 GPU가 원래 여러개의 코어들이 모여있는 프로세서이기 때문에, CPU처럼 소프트웨어적인 문제 때문에 제약을 받진 않습니다. 하지만 만약 2개의 독립된 GPU 사이에 크로스파이어로 듀얼 그래픽카드를 구성한다면, 그래픽카드 드라이버와 게임의 지원이 매우 중요하게 됩니다.

 

 

RV870의 코어 컨트롤 엔진

 

RV870의 그래픽 코어는 몇가지 모듈로 나뉘어 있는데, 어떤 개선이 되었는지 하나하나 뜯어서 보도록 하겠습니다.

 

Command Processor

Graphics Engine

Ultra-Threaded Dispatch Processor

Stream Processing Units

Texture Units

Cache & Buffer

Shader Export & Render Back-Ends

Memory Control

Display Controllers

 

001222771.jpg

 

Command Processor : 커맨드 프로세서는 PCI-E 버스로의 발사나 명령어 스트림의 접수를 담당합니다. GPU가 드라이버 프로그램이 정해진 시간 간격에 맞춰 정해진 데이터 조작을 하도록 하는데, 이때 Parallel DMA Engine를 통하게 되며, 시스템 메모리나 로컬 비디오 메모리의 리소스 사용을 조절합니다.

 

Graphics Engine : 전에는 Setup Engine이라고 불렸던 모듈로, GPU가 명령어를 분배하고 설치하는 것을 책임지는 모듈입니다. GPU 내부의 여러 모듈에게 실행해야 할 명령어 데이터 준비를 시키는 것이 주요 역할이며, 나눠야 할 모듈의 종류에는 Tessellator, Vertex Assembler, Geometry Assembler, Rasterizer, Hierarchial-Z 등이 있습니다.

 

RV870과 RV770를 비교하여 제일 큰 변화라면 2개의 ROP와 여러 레벨의 Z 버퍼 모듈이 있다는 것인데, 지금까지의 GPU에는 오직 한개만 있었습니다. 이것은 RV870이 '듀얼코어'이기 때문이 아니라, 버텍스 쉐이더와 지오메트리 쉐이더에 하나씩 나눴기 때문입니다.

 

버텍스 데이터가 패키징이 된 다음, 버텍스 폴리곤 내부에 더 이상 사용하지 않는 독립 하드웨어 유닛을 삽입합니다. 스트림 프로세서에서 처리하지 않으며, 다이렉트 X 11에서 새로 추가된 헐 쉐이더와 도메인 쉐이더가 이를 대신합니다. 이 두 쉐이더는 텍셀레이터를 도와 조작을 세분화하여 진행하며, 새로운 버텍스를 생성합니다.

 

다음에는 폴리곤의 2D 좌표를 Rasterizer를 거친 후에 픽셀 데이터를 얻어냅니다. 이것은 스크린의 매개 점의 데이터 정보를 얻어내는 것이기도 합니다. 이 부분 조작을 진행할때 스캔 전환으로 모든 점의 Z 축 데이터를 얻어내며, 이 데이터는 Z 버퍼 캐시에 전송되어 나중에 사용하게 됩니다.

 

이제 우리는 왜 RV870이 2개의 ROP와 멀티 레벨 Z 버퍼 모듈로 나뉘어져 있는지 이해할 수 있습니다. 바로 다이렉트 X 11의 테셀레이터와 관계가 있는 것입니다. 최종적으로 얻어낸 모델을 변형하는 것은 매우 복잡하며 처리해야 할 명령어의 수는 매우 많기에, 태스크를 나눠 데이터를 같이 사용하는 것이 매우 중요합니다. RV870은 캐시의 연속성 성능을 개선하였습니다.

 

Hierarchical Z는 매우 지능적인 기술로서, GPU가 좌표 Hierarchical Z가 각각 버텍스의 Z축 위치를 끊임없이 비교하는데, 일단 Hierarchical Z가 이 버텍스가 표시될 필요가 없다는 것을 발견한다면 바로 후속 렌더링을 피하도록 해줍니다. 이것은 Tessellator의 성능 손실을 막아줍니다.

 

다이렉트 X 9나 다이렉트 X 10 어플리케이션에서 2배로 늘어난 Rasterizer와 Hierarchical Z는 GPU가 고해상도와 멀티 스크린에서 높은 성능을 낼 수 있도록 해줍니다.

 

Ultra-Threaded Dispatch Processor : 마지막으로, 모든 픽셀/버텍스/지오메트리/텍스처/컬러 등의 데이터는 Interpolators를 거친 후에 쉐이더에서 처리되도록 넘겨집니다. 당연히 이전까지는 필수 작업으로 데이터를 새로 패키징해서 지정항 통합 쉐이더 유닛 연산에 맞췄는데, 이 부분의 태스크는 스레드를 나눠 프로세서에서 완성됩니다.

 

 

RV870 스트림 프로세서 스펙과 특징의 해석

 

RV870의 SIMD 어레이를 확대하여, 스트림 프로세서의 마이크로 아키텍처를 봅시다. RV870에는 총 320개의 Thread Processor가 있습니다. 이것은 더 이상 쪼갤 수 없는 최소 단위로, 이전의 쉐이더 유닛에 해당됩니다. 각각의 스레드 프로세서 내부에는 5개의 다른 기능을 가진 프로세서 코어가 있기에, RV870에는 총 1600개의 스트림 프로세서가 있는 것입니다.

 

001222767.jpg

 

RV870의 스레드 프로세서 구조

 

스레드 프로세서 내부에는 5개의 스트림 프로세서가 Branch Unit의 조절에 따라 데이터 스트림과 조건 연산을 처리합니다. General Purpose Registers에 데이터를 저장하거나 출력하지만, 명령어를 저장하진 않습니다. 전통적인 GPU ALU 아키텍처와 다른 것은 5개 스트림 프로세서가 동적으로 조절되어 자유롭게 어떤 조합 형식의 명령이건 처리할 수 있습니다. 예를 들면 1+1+1+1+1, 2+2+1, 4+1과 같은 조합이 가능합니다.

 

 000476755.jpg

 

크게 보면 RV870은 여전히 SIMD 벡터 아키텍처이지만, 미시적으로 보면 슈퍼 스칼라 아키텍처라 할 수 있으며, 완벽히 Co-issue(벡터 명령어와 스칼라 아키텍처의 병렬 실행)를 지원, 단일 클럭 사이클에 5번의 MAD(Multiply-Add) 연산을 진행 가능합니다. 다른 부분에서는 5개의 1D ALU에 중에 좀 더 커진 부분이 있는데, MAD 외에도 다른 특수한 연산(SIN, COS, LOG, EXP 등의 함수)을 지원, 특수 조건에서의 연산 효율을 높였습니다.

 

스트림 프로세서 부분에는 RV870이 다이렉트 X 11에 새로 증가뒨 조작 쪽의 명령을 추가하였으며, Sum of Absolute Differences 연산을 최적화하여, 명령어 실행 속도를 12배 개선하였습니다. 이 명령은 오픈 CL 레벨에서 실행 가능합니다. SAD 계산이 제일 많이 사용되는 분야는 H.264/AVC 코딩의 벡터 연산으로, 전체 AVC 코딩 시간의 80%를 차지합니다. 만약 RV870을 사용하여 동영상 코딩같은 통용 계산을 한다면 성능이 대폭 상승할 것입니다. RV870의 싱글 프리시전 부동 소수점 연산 능력은 2720기가플롭스로, 더블 프리시전 부동 소수점 연산 성능은 1/5 정도인 544 기가플롭스입니다. 경쟁상대인 지포스 GTX 285의 싱글 프리시전 연산 성능이 1063 기가플롭스이지만, 더블 프리시전에서는 1/8로 떨어져 133기가플롭스밖에 안되었던 것과 비교하면, 과학 연산의 수요를 맞추기 어려울 것으로 보입니다.

 

 

그래픽 렌더링 부분

 

RV870의 텍서처 유닛과 L1 캐시는 SIMD 엔진과 어레이 형태로 묶여 있습니다. 좌우에 각각 10개의 SIMD 어레이가 있으며, 각각의 SIMD는 4개의 텍스처 유닛과 L1 캐시와 묶여 있습니다. 비록 RV870의 스트림 프로세서와 텍스처 유닛의 수가 전부 배로 늘어나긴 했지만, 각 조의 SIMD 어레이를 구성하는 유닛의 수는 늘어나지 않았습니다. 그러나 RV870에서 일부 개선이 있긴 합니다.

 

001222773.jpg

 

텍스처 대역의 상승: 1초에 680억개의 쌍선형 필터링을 완성하고, 2720억번의 32비트 텍스처 수거를 실행.

L1 캐시: 용량 160KB, 대역 1TB/s

L2 캐시: 용량 512KB, 대역 435GB/s

새로운 다이렉트 X 11 특징: 16k x 16k 텍스처 지원, 새로운 BC6/7 HDR 텍스처 압축 계산.

 

다이렉트 X 11의 새로운 특징 외에, RV870의 텍스처 유닛 부분 개선은 게임 성능 향상을 가져오며, 완전히 각도가 없는 쌍선형 텍스처 필터링을 지원하게 됩니다. 성능이 줄어드는 이전의 비등방성 필터링 계산법과 마찬가지로 이상적인 디테일 조정을 통해 더 높은 품질의 텍스처 맵핑 품질을 보여줍니다.

 

 

통용 계산 부분

 

 002195802.jpg

 

새로운 64KB Global Date Share 캐시

각각의 SIMD 어레이가 32KB 로컬 데이터 캐시를 공유, 모두 20조로 탄력적인 설정 가능

텍스처 유닛이 통용 계산 중에 데이터 수거를 책임지며, 각 조의 텍스처 유닛(4개)는 8KB L1 캐시를 공유, 모두 20개

각각의 비디오 메모리 컨트롤러는 128KB L2 캐시를 귀속

다이렉트 컴퓨트 11의 부가 버퍼 이용 기술을 지원

 

 

ROP와 안티 알리아싱

 

텍스처 유닛과 비슷하게, RV870의 ROP 유닛 수는 두배로 늘어났습니다. 따라서 안티 알리아싱 성능이 역시 배로 늘어나게 됐습니다. 이것 외에도 상당한 개선이 있습니다.

 

001222772.jpg

 

텍스처 유닛이 직접 ROP 유닛의 컬러 버퍼 데이터를 엑세스 할 수 있음

CFAA 성능이 대폭 개선

샘플림 효율이 증가, 높은 배율의 AA 성능 개선

직접 최고화질의 SSAA를 제공

AAA와 CFAA에서 SSAA와 완벽하게 호환

 

001227416.jpg

 

AMD 공식 자료입니다. 라데온 HD 5870에서 8xAA를 켠 후에 성능이 4xAA보다 하강 폭이 매우 적습니다. 경쟁 상대인 지포스 GTX 285는 8xAA에서 성능 손실이 매우 큽니다. 이것은 RV870에서 늘어난 ROP의 수와 개선된 연산 방법 덕분입니다.

 

 

더 클럭이 높고 절전형인 4세대 GDDR5

 

RV770에서는 처음으로 GDDR5를 사용하였지만 그 위력은 제대로 나오지 않았습니다. 라데온 HD 4870의 메모리 클럭은 900MHz(3600MHz와 같음)밖에 안 나왔으며, 1세대 제품이었기 때문에 GDDR5의 여러 장점들이 제대로 발휘되지 못했습니다. 거기에 전력 소모량과 발열도 비교적 컸었지요.

 

GDDR5 메모리 표준은 AMD의 주도로 만들어졌으며, AMD는 RV790과 RV740 코어에서 메모리 컨트롤러를 고쳐 문제를 해결, GDDR5의 저녁 소모량을 잘 조절하였습니다.

 

002195774.jpg

 

RV870 코어에서는 메모리 컨트롤러를 다시 개선하여, AMD는 벌써 3세대 GDDR5 메모리를 사용하게 됐습니다. 이번 GDDR5 메모리의 클럭은 1200Mhz(4800MHz와 같음)까지 올라가, GDDR3 메모리 클럭의 두배에 달하게 됐습니다. 이와 동시에 전력 소모량 조절도 매우 출중하여, 라데온 HD 5870의 아이들시 전력 소모량은 27W밖에 안됩니다.

 

앞에서 코어 구조를 설명하면서 RV870의 내부는 거의 모든 스펙들이 두배로 늘어났지만, 메모리 컨트롤러만 여전히 256비트를 유지하고 있음을 알 수 있습니다. 스트림 프로세서와 텍스처 유닛이 배로 늘어났다면 메모리 컨트롤러도 그만큼 늘어나야 할텐데, 왜 384비트나 512비트 메모리 컨트롤러를 사용하지 않았을까요?

 

AMD의 GPU 연구개발 디렉터는 GDDR5 메모리의 클럭이 GDDR3의 두배이기에, 라데온 HD 4870과 4890에서 256비트만으로도 512비트 메모리 버스에 해당하는 대역을 낼 수 있었다고 합니다. 100GB/s를 넘는 메모리 대역은 rV770/RV790 코어에 있어서 상당히 풍부한 것이었으며, 이것 때문에 많은 오버클럭커들이 메모리 컬럭을 오버해도 성능 차이가 그리 크지 않았던 것입니다.

 

RV870 코어를 보면 스트림 프로세서, 텍스처, ROP가 전부 두배로 늘어났으니 메모리 대역폭 역시 이에 따라 높아져야 합니다. 이때 1세대 GDDR5 메모리의 대역폭으로는 한계가 있었기에, AMD는 클럭이 더 높은 3세대 GDDR5 메모리를 사용했지만, 150GB/s의 대역폭은 RV870에게 만족할만한 수준이 아닌 것이 사실입니다. 그러나 병목 현상은 일어나지 않는 것이, 코어 클럭과 메모리 클럭의 평형을 맞추고 있기 때문입니다.

 

만약 512비트 메모리 컨트롤러를 사용한다면 성능은 이에 따라 올라가겠지만 다른 댓가를 치뤄야 할 것입니다. 512비트 메모리 컨트롤러는 상당한 트랜지스터를 차지하여 GPU 코어의 크기를 늘리게 되고, 512비트는 최소 16개의 비디오 메모리를 필요로 하기에 기판과 전원 부 등의 설계 난이도가 대폭 상승하게 되어 득보다 실이 많습니다.

 

GDDR5의 특징에 대해서는  http://gigglehd.com/zbxe/special/3069877 여기서 설명했으니 생략하고, 3세대 GDDR5의 특징은 다음과 같습니다.

 

에러 탐지와 교정 기능이 있어 고클럭에서의 전송 효율이 높아졌고, 비디오 메모리 클럭의 온도 보정이 있어 5GHz 이상의 고클럭에서도 더 안정적으로 작동하며, 전압과 클럭의 빠른 전환이 가능하여 전력 소모량과 발열을 대폭 낮춥니다.

 

002195803.jpg

 

2D 모드에서 라데온 HD 5870의 코어 클럭은 850MHz에서 157Mhz로 떨어졌고, 메모리 클럭은 1200MHz에서 300Mhz로 떨어졌습니다. 이렇게 하여 전력 소모량은 겨우 27W. 

 

 

ATI Eyefinity 3/6 스크린 출력

 

RV870에는 6채널 디스플레이 컨트롤러를 가지고 있어서, 어떤 출력을 사용하건 6채널로 2560x1600 해상도 10비트 출력이 가능합니다.

 

001227623.jpg

 

이것을 Eyefinity라고 하며, 최대 6개의 디스플레이포트를 사용할 수 있습니다. 일단 지금 출시된 5870은 3개 모니터만 지원하는데 이것은 ATI가 고의적으로 막은 것일까요?

 

001227624.jpg

 

이것은 듀얼링크 DVI의 문제입니다. 듀얼링크 DVI가 2개의 디스플레이 채널을 점유하기 때문입니다. 하지만 시장에 판매되는 30인치 모니터가 대부분 듀얼 링크 DVI를 사용하기에, 5870은 호환성을 위해 2개의 dVI 포트를 사용, 최고 3개의 출력을 지원합니다.

 

001227645.jpg

 

만약 6스크린 출력을 전부 사용하고 싶다면 이 크고 아름다운 라데온 HD 5870 Eyefinity 에디션을 쓰면 됩니다. 6개의 디스플레이포트를 제공하여 완벽한 6스크린 출력을 지원합니다.

 

001227689.jpg

 

이런 다양한 조합이 가능합니다.

 

001227690.jpg

 

디스플레이포트 6개가 장착된 모델의 출력 조합.

 

001227691.jpg

 

일단 4포트 버전은 3개의 출력을 지원합니다.

 

Eyefinity는 카탈리스트 드라이버에 완전히 내장, 히드라비전 데스크탑 관리자에서 더 강력하게 변화할 수 있습니다.

 

002195894.jpg

 

002195906.jpg

 

002195907.jpg

 

002195908.jpg

 

이런 다양한 조합들이 가능합니다.

 

001227705.jpg

 

2560x1600 해상도의 30인치 델 모니터 3대를 동원.

 

001227706.jpg

 

크라이시스 벤치마크

 

001227707.jpg

 

니드 포 스피드 시프트

 

001227716.jpg

 

월드 오브 워 크래프트

 

001227709.jpg

 

파 크라이 2

 

001227710.jpg

 

 

구글 어스

 

001227712.jpg

 

스트리트 파이터 4. 이건 좀 문제가 있군요 -_-a 이런 해상도로는 게임이 불가능하니까요.

 

 

라데온 HD 5870의 외관

 

001227483.jpg

 

공식 이미지입니다.

 

002195775.jpg

 

검은색 플라스틱.

 

002195776.jpg

 

뒷면은 금속 백 플레이트가 설치되어 있습니다.

 

002195778.jpg

 

블로워 팬의 통풍구.

 

002195777.jpg

 

있을거 다 있는 출력부. HDTV나 S 비디오는 없지만 -_-a

 

002195790.jpg

 

 

라데온 HD 5870의 크기는 라데온 HD 4870X2나 지포스 GTX 295와 완전히 같습니다.

 

001227478.jpg

 

라데온 HD 5870의 무게 955g.

 

001227479.jpg

 

지포스 GTX 295의 무게 1.2kg.

 

...미묘한 말이지만, 단위가 다르군요 -_-a

 

 

라데온 HD 5870의 기판

 

002195784.jpg

 

히트파이프+알루미늄 방열판+블로워 팬

 

002195782.jpg

 

빽빽한 부품들.

 

002195781.jpg

 

RV870의 코어는 45도 회전해 있습니다. R600이 생각나는군요.

 

21.5억개의 트랜지스터가 내장, RV770의 2.25배이지만 40나노 공정으로 코어 크기는 263 제곱 밀리미터에서 334 제곱 밀리미터로 1.27배 늘어난 것에 그쳤습니다. 이건 400 제곱 밀리미터인 GT200b보다 상당히 작은 것입니다.

 

코어 클럭은 850MHz로 라데온 HD 4890과 같습니다. 나중에 고클럭 버전인 5890이 나올 수도 있겠지요.

 

002195780.jpg

 

삼성 0.5ns GDDR5 메모리. 32M x 32비트, 8개가 1GB 256비트를 구성.

 

002195779.jpg

 

6핀 보조전원 2개입니다.

 

002195786.jpg

 

코어 전원 컨트롤 칩은 볼테라의 VT1165MF입니다. 6페이즈 전원부를 지원하지만 여기서는 4페이즈만 사용하기에 한쪽이 비어 있습니다. 디지털 전원부 그래픽카드의 코어 쪽은 대부분 VT1165MF를 사용했는데, 라데온 HD 2900XT, HD 4870, HD 4890, 지포스 GTX 280 등이 있습니다.

 

002195788.jpg

 

4페이즈 코어 전원부. 1개의 연속된 4페이즈 인덕터를 사용하며, MOSFET은 4개의 VT1157SF입니다. VT1157SF는 신형 내장식 IC+MOSFET으로, 전류량이 얼마인지는 알려지지 않았지만 30A라고만 쳐도 4개가 모여 120A가 되니 라데온 HD 4870보다 낮지 않습니다. 뿐만 아니라 rV870의 I/O 출력 쪽에는 별도의 전원부가 있습니다.

 

002195789.jpg

 

코어 I/O 전원부에는 vT1157SF 한개가 사용됩니다. 기판 앞쪽에 위치하여 GPU의 메모리 컨트롤러와 I/O 부분의 전원을 공급합니다.

 

002195787.jpg

 

메모리 전원부는 2개의 VT243WF를 사용합니다. 전원 컨트롤 칩이 없는데 VT235WF의 집적도가 매우 높아 컨트롤 칩, 드라이버 IC 회로, MOS를 전부 내장하고 있기 때문입니다. 따라서 VT235WF가 vT1157SF보다 크기가 더 크지요. 2 페이즈가 메모리에 공급하는 전류량은 60A입니다.

 

이렇게 보면 라데온 HD 5870의 전원 설계는 4+1+2이지만 나중에 5+2+2로 확충할 수 있으니, 레퍼런스 기판의 전원부는 더 늘릴 여지가 남아 있는 셈입니다. 디지털 전원부에는 또다른 장점이 있는데, 소프트웨어를 통해 직접 코어/메모리에 전압을 더 줄 수 있다는 것입니다. 하드웨어 개조 없이도 이런 일이 가능하니 오버클럭커들이 좋아할만한 일일듯.

  

 

벤치마크

 

코어 i7 975 3.3GHz, MSI X58 이클립스, 커세어 도미네이터 DDR3-1600 9-9-9-24-1T 2GB x2, 히타치 1TB, 커세어 1000W, 윈도우즈 7 RTM 7600.16385 64비트, 다이렉트 X 11, 지포스 190.89 베타, 카탈리스트 9.9, 델 3007 모니터의 환경에서.

 

라데온 HD 5870 1GB 850/4800MHz

라데온 HD 4870X2 2GB 750/3600MHz

라데온 HD 4890 1GB 850/3900Mhz

지포스 GTX 295 1792MB 576/1242/1998MHz

지포스 GTX 285 1GB 648/1476/2484MHz

 

로 테스트했습니다.

 

 

먼저 3D마크 06. 다이렉트 X 9.0c 벤치마크

 

001223390.jpg

 

001223391.jpg

 

비록 5870의 이론적인 성능이 4870X2보다는 좋지만, 메모리 대역폭과 용량에서는 부족한게 사실입니다. 따라서 이 정도의 성능 차이가 납니다. GTX 295의 경우 4xAA에서는 좋은 성능이 나지만 8xAA에서는 성능 하락이 꽤 있는 편입니다. 반면 라데온 쪽은 그보다는 성능 하락이 적습니다.

 

 

다음은 3D마크 밴티지.

         

001223392.jpg       

 

3마크 밴티지는 쉐이더 성능에 편중되어 있습니다. 따라서 클럭이 더 높은 5870이 4870X2보다 성능이 더 좋습니다. 다만 GTX 295는 2개 GT200 코어의 위력으로 28억개에 달하는 트랜지스터로 밀어 부치고 있습니다.

 

 

다음은 3D마크 밴티지의 부가 테스트들입니다.

 

000767220.jpg

 

001224419.jpg

 

텍스처 필은 텍스처 촤표값을 회전, 축소, 확대하는 식으로 텍스처를 전체 화면에 채웁니다.

 

000767221.jpg

 

001224420.jpg

 

16비트 부동소수점 포멧 HDR 컬러를 반복적으로 알파 채널을 통해 직접 랜더링 오브젝트에 채워 넣는 컬러 필입니다.

 

000767222.jpg

 

001224421.jpg

 

POM은 고해상도 맵과 글로벌 일루미네이션으로 선명한 오브젝트 표면을 묘사합니다.

 

000767223.jpg

 

001224422.jpg

 

GPU Cloth는 버텍스 쉐이더와 지오메트리 쉐이더로 버텍스의 좌표를 대량으로 변환시킵니다.

 

000767224.jpg

 

001224423.jpg

 

GPU 파티클은 버텍스 쉐이더의 색을 극한까지 압착하는 테스트입니다.

 

000767225.jpg

 

001224424.jpg

 

페를린 노이즈는 순수하게 픽셀 쉐이더로 페를린 노이즈 함수를 계산하는 것입니다.

 

다음은 크라이시스입니다.

 

001223393.jpg

 

1920x1200에서 5870은 30프레임을 보장합니다. 싱글 코어에서 30프레임이 나오는 최초의 그래픽카드 되겠습니다.

         

001223394.jpg

 

2560x1600에서는 확실히 성능 하락이 있으며, 메모리 때문에 4870X2와의 성능 차이도 많이 줄어들었습니다.

 

다음은 월드 인 컨플릭트

 

001224162.jpg

 

메모리 대역에 민감한 게임이기에 5870의 성능이 좀 떨어집니다.

 

다음은 바이오 해저드 5

 

001224141.jpg

 

001224142.jpg

 

NVIDIA 최적화 게임이다보니 지포스가 앞서는 것은 당연할지도. 다음 버전의 드라이버에서 5870의 성능이 개선되길 기대해 봅니다.

 

다음은 H.A.W.X.

 

001224383.jpg

 

001224384.jpg

 

여기서는 또 라데온의 성능이 잘 나옵니다. 2560x1600 8xAA에서 최고의 성능을 뽑아주는건 5870.

         

다음은 스토커 : 클리어 스카이

 

001224108.jpg

 

001224109.jpg

 

5870의 성능이 4870X2보다는 못하지만 안티 알리아싱을 켜면 비슷한 성능이 됩니다. GTX 295는 4xAA에서 제대로 작동하지 않았습니다.

 

다음은 파 크라이 2

 

001223395.jpg

  

001223396.jpg

 

기본 상태에서는 5870과 4870X2가 엎치락 뒤치락, 안티를 올리면 5870이 4870X2를 압도합니다.

 

다음은 스트리트 파이터 4

 

001224126.jpg   

 

다들 괴물같은 성능이 나오지만, 8xAA에서의 성능 하락은 라데온 쪽의 절대적인 우세입니다.

 

다음은 니드 포 스피드 : 시프트

 

001224222.jpg

 

스트리트 파이터 4와 비슷한 결과가 나오고 있습니다.

 

다음은 미러스 엣지

 

001224393.jpg

 

피직스를 켰을때 라데온에서 심한 프레임이 있는건 어찌보면 당연할 것입니다.

 

다음은 에너미 테라토리

 

001224382.jpg 

 

여기서도 비슷합니다. 4xAA에서는 지포스, 8xAA에서는 라데온이랄까요.

 

마지막으로 전체 시스템의 전력 소모량.

 

001227725.jpg

 

먼저 5870 크로스파이어와 GTX 295 쿼드 SLI.

 

001224406.jpg  

 

 빨간색은 풀로드. 연두색은 아이들. 이건 설명하고 자시고 할 것도 없습니다.

 

 덤으로 5870 크로스파이어와 GTX 295 쿼드 SLI의 성능 비교.

 

 001227726.jpg

 

카드 아래에 있는 숫자들은 클럭. 3D마크 밴티지 아래의 게임 이름들은 크라이시스, 파 크라이 2, H.A.W.X, 스토커, 월드 인 컨플릭트, 바이오 해저드 5, 스트리트 파이터 4, 에너미 테라토리입니다.

   

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