Author : Daeguen Lee

(Any action violating either copyright laws or CCL policy of the original source is strictly prohibited)

(※ 이 글은 월간 smart PC사랑 2011년 11월호에도 수록되었습니다.)




"½모듈 = 1코어, 1코어 ≠ ½모듈"

이 무슨 생뚱맞은 소리일까요.
2분의 1모듈은 1코어지만 1코어는 2분의 1모듈이 아니다?

이 파트에서는 불도저의 '모듈 내의' 코어를 선택적으로 꺼 가며 테스트하여 '2코어로써의' 모듈의 성능과
공유 자원 없이 오롯히 '모듈당 1코어'로 작동할 때의 성능을 비교해 보고자 합니다.
이를 통해 모듈 구조가 기존의 전통적인 코어 설계와 비교했을 때 가지는 특징을 알아볼 수 있을 것입니다.

특히 이 테스트를 통해, '4모듈 4코어' 성능이 기본 스펙인 '4모듈 8코어'와 큰 차이가 없음을 보여 낸다면
지금까지의 낮은 싱글스레드 성능은 단지 테스트 툴의 under-optimization일 뿐이란 것을 증명하는 게 됩니다.
또한 동시에 앞으로 (App 혹은 OS차원의) optimization을 통해 가능해질 성능 향상폭을 가늠해볼 수도 있겠죠.

테스트의 기본적인 아이디어는 다음과 같습니다.


▲ 이 그림은 이제 익숙하시죠?
기본 스펙 그대로, 4모듈 8코어인 불도저의 다이입니다.

(실제로는 아래 사진처럼 생겼습니다)


▲ 어때요? 그림과 비슷한가요?

아무튼. AMD는 그간 코어 갯수를 달리하는 라인업을 파생시킬 때 별도의 다이를 찍어내는 대신
똑같은 다이 (= 코어 갯수가 가장 많은 다이) 를 찍어낸 뒤 '비활성화' 하는 방법을 사용해 왔습니다.
이런 방식으로, 4코어 불도저를 만든다면 아래와 같은 구조가 될 것입니다.

 



▲ 회색 상자로 가려진 부분이 비활성화된 영역입니다.
2모듈 4코어 불도저... 쉽게 이해가 가시죠?

하지만 4코어를 만드는 방법은 그것뿐이 아닙니다.


▲ 이렇게.
각 모듈에서 '코어'로써 기능하는 단위를 하나씩 제거하는 것으로도 4코어를 구현할 수 있습니다.
이 경우 불도저는 '4모듈 4코어'라는 매우 이색적인 단위로 작동하게 됩니다.
사실상 하나의 모듈이 하나의 코어처럼 작동하니 전통적인 쿼드코어 CPU로 보더라도 괜찮을 것입니다.

지금까지 설명한 바와 같이, 저는 이제 2모듈 4코어 불도저와 4모듈 4코어 불도저를 비교해 보려 합니다.

그런데...
이 테스트엔 한가지 문제점이 있습니다.


▲ 바이오스에서부터 이미 3 & 4번 코어, 5 & 6번 코어, 7 & 8번 코어가 쌍으로 묶여 있는 겁니다...
...이 실험은 아이디어 차원에서 끝날 운명이었던 걸까요?

.
.
.


▲ 그럴 리 없죠!!
특별한 바이오스를 이용해 각 모듈 내부의 '코어'를 선택적으로 켜고 끄는 것이 가능합니다.
상단의 사진은 보시다시피 각 모듈별로 코어 하나를 끈 것이고 (2, 4, 6, 8번을 끄고 1, 3, 5, 7번 활성화)
하단의 사진은 두개의 모듈만을 모두 활성화한 것입니다. (5 & 6, 7 & 8번을 끄고 1, 2, 3, 4번 활성화)

테스트 결과는 아래와 같습니다.
(※ 시간 관계상 게임 테스트는 해 보지 못했습니다. 다음주 중에 포스팅하도록 하겠습니다)


1. Fritz Chess Benchmark


(※ CU: Compute Unit / C: Core)

▲ 두둥!
4CU/8C와 4CU/4C를 비교해 보면 코어 갯수가 절반이 되었지만 성능은 20% 정도밖에 떨어지지 않았습니다.
2CU/4C와 4CU/4C를 비교하자면 강제로 공유해야만 했던 FPU 자원을 풀어 준 셈일 뿐인데 거의 40% 가까이 성능이 올랐습니다. 즉 4CU/8C와 4CU/4C의 성능 차보다 2CU/4C와 4CU/4C의 성능 차가 더 큰 셈입니다.


2. wPrime 32M


▲ 이하 동문...


3. WinRAR Benchmark


▲ 여기서는 2CU/4C와 4CU/4C의 성능 차가 별로 없습니다.
WinRAR 벤치는 다른 CPU간의 비교에서도 불도저가 비교적 선전했던 항목이라는 사실을 상기해 보자면
WinRAR 벤치에서는 정수 연산을, 그것도 멀티스레딩에 최적화된 정수 연산을 많이 활용하는 듯 합니다.
즉 이미 많이 최적화된 상태이기에 모듈 구조에 따른 차이에도 큰 반응성을 보이지 않는 것입니다.
(앞서 큰 차이를 보인 테스트의 경우 지금 WinRAR가 보인 수준까지 최적화를 할 여지가 있다는 말도 됩니다)


4. 3DMark 06


▲ 이하 동문...


5. 3DMark Vantage


▲ 이것도 위에서 했던 말에 덧붙일 말이 없네요.
3D마크 밴티지도 FX-8150이 비교적 좋은 성능을 보이던 벤치 중 하나였습니다.


6. 3DMark 11


▲ (이하 동문...)


7. MAXON Cinebench R10


▲ (...)


8. MAXON Cinebench R11.5


▲ (......)


9. Blender 2.59

 



▲ (.........)


10. TechARP x264 HD Benchmark


▲ (............)


11. Daum PotEncoder Video Transcoding


▲ (...............)

.
.
.

See what I mean? :-)

한가지 더 덧붙이자면, 여기서 누차 언급한 '최적화'란 말이, 뭐랄까...

- 펜티엄 II 시절에 펜티엄 III가 출시되고 SSE가 상용화되기를 기다리던 속도
- 펜티엄 III 시절에 펜티엄 4가 출시되고 SSE2가 상용화되기를 기다리던 속도
- 네할렘 시절에 샌디브릿지가 출시되고 AVX가 상용화되기를 기다리던(x) 기다리는(o - 현재 진행형) 속도

...뭐 이런 기억들 때문에 손에 잡히지 않는, 만져지지 않는 막연한 무언가로 느껴지실지 모르겠습니다.
이 대목을 위해 불도저에 대한 기술 문서 일부를 발췌해 보겠습니다.


.
.
.

...파트 6은 Windows 8에서의 테스트로 진행됩니다. ;-)

Coming soon!