CMT

라이젠, 어떤 걸 봐야 할까?

2017. 3. 23. 00:46

ㅎㅎㅎㅎ 글쓰기를 좋아해서 블로그를 시작했는데, 막상 글 하나에 6시간 이상 투자하다 보니 꾸준한 업로드가 어렵네요
블로그 컨셉은 새로운 IT 소식에 대해 여러 매체들의 정보를 한 곳에서 볼 수 있게 하려는 것이었​는데요...
새 IT 소식이 올라오는 빈도는 빠르고, 글쓰기가 느린 저로서는 감당이 되지 않네요.
이 글도 내용 준비 외에 초안 작성만 5시간 정도 썼네요.
임시 저장 해놓고 글 마무리나 다듬기, 추가 내용 보충도 해서 작성한 글입니다...ㅎㅎ

라이젠, 반응

요즘 라이젠이 출시되면서 CPU쪽이 떠들썩 합니다. 긍정적인 반응도 있고 부정적인 반응도 있습니다.
라이젠 후기들을 보면 "이거 사도 되는건가..."하는 생각이 들게 하는 내용도 있습니다.
그 오해와 진실을 후기로 파헤쳐보려고 합니다.

라이젠의 장점은 8코어에 있습니다.
8코어는 멀티 쓰레딩을 지원하는 단일 프로그램에서 성능 향상이 생깁니다.
그리고 8코어는 멀티 태스킹이 훨씬 부드럽습니다.

또한 라이젠은 인공지능 기술인 SenseMI를 통해 더 조용하고 빠른 연산이 가능해졌습니다.

마지막으로 아직은 소프트웨어적인 최적화가 덜 되어있는 라이젠 무작정 따라하는 최적화를 준비했습니다.

멀티쓰레딩

많은 분들이 8코어로 멀티태스킹을 생각할 때 라이젠 8 단일작업 멀티쓰레딩 성능에 대해 얘기해보려고 합니다.

AMD에서 2011년 CMT구조의 CPU가 출시될 때, 제가 우려했던 부분은 멀티쓰레딩 게임이 없다는 것이었습니다.
SMT는 이론적으로는 싱글 쓰레드 프로그램에서도 성능하락이 없었고, 멀티 쓰레드를 지원하면 성능이 향상되는 구조였습니다.

SMT는 하나의 코어에 디코더를 두개 두는 방식입니다.

CPU는 원래 하나의 쓰레드만 처리할 수 있습니다. 하나의 코어로 여러 개의 쓰레드를 처리하려면 여러 개의 쓰레드를 굉장히 짧은 순간동안 바꿔가며 연산해야 합니다. 이게 우리가 컴퓨터를 하면서 보는 멀티 태스킹입니다.

그런데, 이 과정에서 코어가 연산하지 않는 순간이 생깁니다. 이 때, 디코더를 하나 더 두면, 코어가 연산하지 않는 순간을 줄일 수 있습니다. 이론 상으로는 성능은 감소하지 않습니다.

반면, CMT는 멀티 쓰레드 프로그램에서는 성능향상이 컸지만, 싱글 쓰레드 프로그램에서는 성능하락이 있는 구조였습니다.
때문에 8코어라고 홍보를 했지만, 실제로는 인텔의 듀얼코어에도 못미치는 벤치마킹 결과가 나타났습니다.

이후로도 몇년이 지나도록 반응이 없다가, 2016년 오버워치가 출시되면서 갑자기 비셰라가 업청난 상승세를 타게 됩니다.
8쓰레드를 지원하니 10만원대 CPU가 i5를 앞서는 오버워치 후기가 나왔기 때문입니다.

비셰라는 2013년에 출시된 CPU입니다. 그런데 3년 뒤, 놀랍게도 오버워치 출시 이후 이 CPU가 다나와 추천 피시에 사용됩니다.

이러한 역사는 라이젠에서도 우려되는 부분입니다.
지금까지는 인텔이나 AMD나 8쓰레드 CPU가 주력이었고, 지금의 프로그램은 그에 맞춰서 프로그래밍 되어 있습니다.
그래서 라이젠이 비셰라와 같은 길을 걸을 수 있는 우려가 생기는 겁니다.

그렇다면 우선 짚고 넘어가야 할 부분은, 흔히 벤치마킹 프로그램에서 테스트 하는 16쓰레드나 싱글 쓰레드의 퍼포먼스가 아니라 그 사이의 프로그램의 퍼포먼스 입니다.
멀티 쓰레드 프로그램이지만, 16쓰레드는 아니어서 라이젠의 일부 코어만 활용하는 프로그램의 퍼포먼스를 봐야 합니다.

이게 실제로 사용자가 느끼는 퍼포먼스가 될 것입니다.

인텔의 주력제품인 i7은 4C 8T CPU입니다. 라이젠에 비해 클럭이 높기 때문에 싱글코어 퍼포먼스는 더 좋은 편입니다.
라이젠은 현재 비슷한 가격으로 8C 16T CPU를 제시합니다. 클럭이 낮아서 싱글코어 퍼포먼스는 떨어집니다.

그러면 8쓰레드 게임에서는 라이젠은 i7을 이길 수 없는걸까??
정답은 아니요 입니다.

8개 쓰레드의 프로그램을 8개의 물리코어로 처리하면 같은 8 쓰레드를 사용하더라도 성능이 더 높게 나타납니다.

American Truck Simulator 게임이 CPU의존도가 높아서 이 게임으로 보여주려고 합니다.

Windows 의 Power Plan이 균형 조정일 때

3개의 물리코어가 활성 상태입니다. 6개의 쓰레드를 사용하고 있구요.
전체 CPU이용률은 16%입니다.
130FPS가 나옵니다. 차량이 없어서 프레임 편차는 1~2입니다.

Windows 의 Power Plan이 고성능일 때

코어파킹이 꺼집니다. 코어 0,3,5,7,9,15. 즉, 6개의 쓰레드를 사용하고 있습니다.
차이점이라면 서로 다른 물리코어를 가리켜서 6개의 코어가 활성 상태입니다.
그리고 활성 상태인 물리코어의 가상코어는 코어 1을 제외하고는 연산하고 있지 않습니다.
전체 이용률은 15%입니다.

쓰레드 분배가 고르지 않고 코어 0과 15를 특히 많이 사용하고 있습니다.
155FPS가 나옵니다. 마찬가지로 차량이 없어서 프레임 편차는 1~2입니다.

놀랍게도 6개의 물리코어를 사용할 때 약 20%의 성능 향상이 생깁니다.
고성능 파워 플랜에서 더 높은 성능을 보여줍니다.

연산에 사용되는 쓰레드와 이용률은 같은데 활성 물리 코어만큼 성능이 향상되는 것을 볼 수 있습니다.
같은 양의 연산을 하더라도 물리코어를 사용한다면 6개의 쓰레드를 동시에 처리하게 됩니다.

반면, 같은 양의 연산에 있어 가상코어를 사용한다면 6개의 쓰레드를 "동시에" 처리하는 건 아닙니다. (상단의 SMT설명 참고)
그 외에도 SMT는 캐시와, 버스를 공유하기 때문에 병목의 가능성이 있습니다.
그래서 멀티쓰레드 프로그램이라면 가능한 한 물리코어가 많이 활성화 되는 것이 성능 향상에 도움이 됩니다.
즉, 물리 코어에 쓰레드를 분배하는 것이 성능 향상에 도움이 되는 것입니다.

i7의 경우에도 코어파킹이 작동한다면 4쓰레드 프로그램을 이용할 때 i5보다 성능이 떨어지는 결과가 나타나기도 합니다.

참고 글 1

4세대 i7의 글에도 게이밍에는 HT를 끄는 것을 추천하는 댓글이 많습니다.

그리고 코어파킹과의 이슈에 대한 언급도 이 글에 있습니다.

참고 글 2

여기서는 6700에서도 HT를 켜면 게임 성능이 감소한다고 합니다.

그래서 i7을 위해 8쓰레드 게임을 만들었는데, 이게 왠걸... 비셰라가 갑자기 떠버린 겁니다...

라이젠과 같은 8C 16T CPU에서는 16쓰레드 프로그램이면 좋겠지만, 대부분 게임은 아직 16쓰레드까지는 지원하지 않습니다.
그렇다고 SMT를 끄자니 16쓰레드 프로그램에서는 SMT의 성능이 증가하는 게 뚜렷하게 보입니다.
그래서 게임의 쓰레드를 물리코어에 우선 할당할 필요가 있습니다.

글 하단에서 무작정 따라하는 최적화를 확인하세요.

AMD가 CMT를 버리고 SMT로 전향하면서 멀티 쓰레드를 조금 내려놓고 싱글 쓰레드 퍼포먼스도 챙기는 모습을 보입니다.
하지만 SMT구조에서도 AMD는 멀티 쓰레딩에 강점을 가지고 있습니다.

AMD는 멀티 쓰레드가 미래의 중요한 컴퓨터 기술이 될 것을 강조하는 듯합니다.

출처 : 다나와

1700x는 3.4Ghz up to 3.8Ghz이고
6900k은 3.2Ghz이고 up to 3.7Ghz입니다.
그런데 이 벤치 결과는 상당히 인상적입니다.

라이젠이 싱글 쓰레드에서는 4% 밀리는데, 멀티 쓰레드는 40%에 가까운 차이로 압도하고 있습니다.

출처 : guru3d.com

이러한 양상은 CPU-Z에서도 확인 가능합니다. CPU-Z는 Multi Thread Ratio라는 값이 있습니다.
Multi Thread Ratio는 (멀티쓰레드 점수) / (싱글 쓰레드 점수)의 결과입니다.

즉, 멀티쓰레드 점수가 싱글 쓰레드 점수에 비해 높을수록 Multi Thread Ratio는 증가합니다.
그리고 Multi Thread Ratio가 증가하면 멀티코어 효율이 증가하는 것입니다.

같은 8C 16T인 Intel Core i7 6800K는 Ratio가 7.27입니다.
AMD Ryzen 7 1800x는 Ratio가 8.88입니다.

인텔은 물리코어가 8개임에도 불구하고 8배 조차도 달성하지 못합니다.
하지만 AMD는 8배를 넘는 결과가 나타납니다.

비셰라와 마찬가지로, 쓰레드가 많은 게임이 출시되면 라이젠은 빛을 발할겁니다.

비셰라와 다르게 라이젠은 16개 이상의 쓰레드를 이용하는 게임이 나오면 경쟁 제품을 압도할 것입니다.

멀티태스킹

멀티 코어라고 하면 많은 사람들이 결국은 멀티 태스킹을 떠올리게 됩니다.

라이젠 덕에 8코어 CPU가 비교적 만만한 가격대로 내려오면서 프로그래머나 영상, 디자인쪽이 아닌 게이머들의 관심을 받기 시작했습니다.

그런데 대부분 8코어가 클럭이 낮아서 게임에서 약하다는 결과가 나오면서 오히려 부정적인 인식이 생겼습니다.

"어차피 게임하면서 다른거 하는 사람 없다"라는 반응이 꽤 많이 보입니다.

저도 4C 8T제품을 사용할 때는 같은 생각을 가지고 있었습니다. 왜 게임을 하면서 다른 걸 보려고 하는걸까??

저는 144Hz 모니터를 씁니다. 게다가 민감해서 130FPS도 화면이 밀리거나 끊기는 게 느껴지고, 랭크전에서는 짜증날 정도로 민감한 부분이라 멀티태스킹은 거의 안했습니다.

그런데 8코어가 생기니 게임하면서도, 144FPS를 유지하면서도 다른 작업이 가능해지니 다른 것을 보게 됩니다.

라이젠 사고 나서 가끔은 게임을 두개 켜기도 하고, 친구 방송이나 유튜브를 재생하면서 게임을 하기도 합니다.

프레임 드랍이 없기 때문입니다.

게임 하면서 다른 걸 보지 않았던 게 아니라 게임을 하면서 다른 걸 보지 못했던 겁니다.

그래서 라이젠이 멀티 태스킹에 얼마나 강한지 보여주려고 합니다.

저는 영상처럼 높은 사양을 요구하는 멀티 태스킹은 하지 않습니다.

다만 이러한 성능 상의 여유 덕분에 멀티 태스킹에 더 이상 부담을 느끼지 않게 되었다는 것을 보여주고 싶습니다.

-------------------------------- 녹화 영상 --------------------------------

-----------------------------------------------------------------------------

이 영상은 디스플레이 녹화와 영상 재생을 CPU로 처리했을 때와 GPU로 처리했을 때의 차이를 보여줍니다.

먼저 CPU로 처리하면서 오버워치 프레임을 확인하고, 'GPU로 처리하는 것'을 녹화한 영상을 재생하면서 설명을 진행합니다.

영상 처리를 GPU로 할 경우 최대 143FPS가 나옵니다.

이 때 CPU사용률은 53%입니다. 한타 때는 80FPS까지 떨어질 수 있습니다.

영상 처리를 CPU로 할 경우 최대 254FPS가 나옵니다.

이 때 CPU사용률은 84%입니다. 한타 때에도 최소 120FPS보장됩니다.

같은 상황에서 CPU를 먼저 사용하고 이후 GPU로 처리하면서 오버워치의 FPS를 비교합니다.

CPU로 처리했을 때는 평균 80FPS정도 높게 나옵니다.

GPU로 처리하면 프레임이 낮게 나오는데, 그 뿐 아니라 녹화된 영상 자체가 끊기는 모습을 보여줍니다.

이전 i7-4790k를 사용할 때는 듀얼 모니터 이면서도 게임하다가 할 일이 생각나면 메모장에 할 일을 적었습니다.

그런데 라이젠은 게임하다가 할 일이 생각나면 그냥 할 일을 하면 됩니다. 프레임 감소나 프레임 드랍을 걱정할 필요 없습니다.

(지금은 시작표시줄이 가득해서 뭐가 있는지 모르는 건 비밀)

SenseMI

SenseMI는 라이젠에 탑재된 기술입니다.

Pure Power : CPU온도와 리소스 사용량을 모니터링하여 전력소비를 최소화하는 기술입니다.

전압을 자체적으로 조절할 수 있습니다.

Precision Boost : 25Mhz단위로 클럭을 조절합니다.

XFR : 자동오버클럭입니다. 쿨링 상태에 따라 자체적으로 작동 클럭을 향상시킵니다.

Neural Net Prediction : 신경망 예측 기술입니다. 앱의 행동에 빠른 프로세서 경로를 준비하여 성능을 향상시킵니다.

Smart Prefetch : 앱에서 필요한 데이터를 미리 가져옵니다. 인공지능 기술로 학습기능을 가지고 성능을 향상시킬 수 있습니다.

출처 : AMD.com

성능이 개선되었다는 후기(하드웨어 배틀)가 있습니다.

블소에서 성능차이 없이 CPU 이용률이 감소하고 3차 실행에서는 성능도 증가합니다.

아쉽게도 저는 하나의 게임만 하는 게 아니어서 큰 CPU 이용률 감소를 느끼지 못했습니다.

그래서 추가적인 테스트는 없습니다.

그런데 AMD 공식 페이지의 설명에 따르면 조금 재미있는 부분이 있습니다.

Neural Net Prediction : 프로그램이 CPU를 사용하는 맵을 "임시"로 생성

Smart Prefetch : 응용 프로그램이 자체 데이터에 액세스하는 방법을 학습

위 설명에 따르면 Smart Prefetch에는 "임시"라는 단어가 없습니다.

처음 하드웨어 배틀 후기가 떴을 때 PC방의 라이젠은 가격이 비쌀 것이라는 짤도 있었는데 사실이 될지도 모릅니다.

Windows 업데이트(2017.03.16)

쓰레드 분배 개선 업데이트가 되었습니다. 그 외에도 버그 개선 업데이트가 있었습니다.

몇몇 명령어를 사용할 때 충돌 현상 해결됬다고 합니다. 오버클럭 안정화 테스트에서 문제가 있던 분 다시 시도해보세요!

쓰레드 분배의 효과는 아래 사진으로 볼 수 있습니다.

앞서 American Truck Simulator를 통해 설명했던 부분입니다.

업데이트 이전에는 8쓰레드 프로그램에서 아이러니하게도 10개의 쓰레드를 사용합니다.

업데이트 이후 물리코어에 쓰레드를 할당해줍니다.

첫번째 사진에서는 들쭉날쭉 하지만, 두 번째 사진에서는 코어를 최대한 사용합니다.

이용률을 정확히 알 수 없지만 서로 비슷해 보입니다.

American Truck Simulator에서 본 것 같이, 이용률은 비슷한데, 물리코어에 우선 할당함으로써 20%의 성능 향상이 생겼습니다.

물리코어에 우선 할당하니 코어 파킹을 활성화하면 성능이 크게 떨어지던 부분이 해소됬습니다.

정리하며... 마지막 푸념 글

게임에서 다소 약한 모습을 보이더라도 충분히 강력한 성능을 가지고 있으며, 멀티 태스킹이나 영상처리에 있어서는 경쟁 제품보다 우수한 성능을 보여주고 있습니다.

이런 성능에도 경쟁 제품 대비 100만원가량 더 싼 가격이라는 것이 라이젠의 경쟁력입니다.

인텔도 신제품이 공개될 때마다 소프트웨어 최적화가 덜되어 이전 모델보다 성능이 떨어진다는 후기/벤치마킹이 나오기도 했습니다.

얼마 되지 않은 카비레이크도 이런 대우를 받기도 했습니다.

라이젠이 GTX 1080에서 대역폭 문제가 있다는 부분도 GTX 1080ti에서 오히려 격차가 감소하는 모습을 보이며 라이젠의 문제가 아닌 것을 증명해 주었습니다.

당분간은 성능 이슈가 계속 나타날 것이고, 그것이 점차 해소되는 방향으로 움직일 것입니다.

다만 보드의 문제는 이해하기 어려운 부분이 없지않아 있습니다.

분명히 AM4와 B350은 작년 9월 제품이 출시됐습니다. 소캣과 칩셋 공개는 그 전에 이루어졌을 것입니다.

하지만 6개월, 반년이 지나 아직도 바이오스 문제가 생기고 있습니다.

램 호환성, 코어 끄기 문제는 모든 램을 써볼 수 없고 모든 게임을 플레이 할 수 없으니 이런 부분은 이해 할 수 있습니다.

그런데 Racing GT나 F-Stream Utility는 왜 여태까지 안정화 하지 못한건지 모르겠습니다.

Racing GT는 보드 출시 전부터 프로그램이 있었지만 실행이 안됐습니다.

F-Stream은 3주가 지나서야 프로그램이 홈페이지에 게제되었습니다.

F-Stream은 나름 안정화는 된것 같은데 사실상 불안정한 기능은 전부 제거한 듯이 부실한 모습을 보여줍니다.

어떤 분은 보드가 완벽하게 출시되기 전에 라이젠을 판매한 AMD 잘못이 있다고 합니다.

하지만 그건 아닙니다.

이미 반년을 기다렸습니다.

지금 라이젠 보드 물량이 부족한 건 전 세계적인 현상이고, 이는 보드 회사들이 물량을 충분히 만들지 않은 것입니다.

회사는 손해가 적어야 이익이 커지기 때문에 라이젠이 언론상으로 유명세를 타더라도 실제로 팔릴지 안팔릴지는 확신하기 어렵습니다. 그래서 기존의 AMD보드 판매량 만큼 물량을 공급했을 것입니다. 보드를 소량만 생산했을 것입니다.

그러므로 보드가 안정되기 전에 라이젠이 먼저 출시되어 라이젠의 저력을 보여준 건 빠른 최적화를 위해 오히려 좋은 선택이었다고 봅니다.

이게 2등의 비애입니다. 그리고 이걸 지켜보는 즐거움이 있는 게 2등의 특징이기도 합니다.

이상으로 라이젠 후기를 마칩니다. 계속 인텔을 견제하며 선의의 경쟁 하기 바랍니다!

+ Recent posts