기타

SMT (AMD 젠, Intel) vs CMT (AMD 불도저)

하늘흐늘 2017. 3. 5. 18:44
반응형

AMD가 드디어 Zen아키텍처로 개발한 Ryzen을 발표하였습니다. 예상한 대로 제대로된 가성비로 승부를 한 듯 보입니다.  솔직히, 기존 제품은 가성비로 따지기에도 인텔과 차이가 있어보였는데 이번 CPU는 굉장히 괜찮은 듯 보입니다. 

 

관련 아키텍처에 대한 아래 글을 보다가 CMT 구조를 포기하고 SMT 구조를 채택했다고 해서 좀 찾아보았습니다. 

믿을 수 없는 가성비, AMD '라이젠 프로세서' 성능 확인!

 

SMT, CMT 용어를 자세히 이해하기 위해서는 CPU 내부 아키텍처를 조금 이해하고 있어야 합니다. 하지마 여기서는 간략히 인텔의 하이퍼스레딩 (Hyper Threading)을 기반으로 설명할까 합니다. 

 

하이퍼스레딩은 SMT이고, SMT은  Simultaneous MultiThreading의 약자로 1 Core에서 동시에 2개의 쓰레드를 병렬적으로 실행시킵니다. 물론 그럴듯 하게 보이는 거구 2 Core에서 각각 1개씩 실행시켜 2개의 쓰레드가 동시에 실행되는 거보다 당연히 성능은 떨어집니다. 어디까지나 1 Core의 처리량을 극대화 시키기 위한 기술의 하나일 뿐입니다. 최근의 AMD 젠, 라이젠(Ryzen)은 이 SMT를 채용했다고 합니다.

 

과거 AMD의 불도저는 CMT를 채용했는데 CMT는 Throuput Computing의 개념을 가진 것으로 2개의 쓰레드를 스케줄링에 기반하여 2개처럼 보이게하는 하여 처리량을 극대화 시키는 기술입니다. 불도저는 정수 연산을 한번에 한개 쓰레드 밖에 사용할 수 없다고 합니다.  

 

더 큰 차이를 이해하고 싶다면 CPU의 명령(Instruction) 실행들의 동시성과 공유 부분들을 보면 더욱 명확할 듯 싶은데 그냥  SMT는 각각의 쓰레드의 명령이 동시에, CMT는 스케줄링에 의하여 동시에 2개가 실행되는 것처럼 보이도록 1개씩 실행된다고 보면 될 듯합니다. 

 

참고로 SMT 기술은 1 Core에서 2개의 쓰레드를 실행시키니 당연히 OS나 게임과 같은 SW에서 최적화 될 때 성능 향상이 있습니다. 이건 Intel이나 AMD나 마찬가지입니다. 고로 최적화 되지 않은 상태에서는 SMT를 껐을 때 성능 향상이 있었다는 글을 자주 보게 됩니다. 

 

좀 더 해당 부분에 관심이 있다면 아래 글을 참고 부탁드립니다.

Simultaneous multithreading


반응형