CPU 성능은 몇년째 거의 변동없음
CPU 전력 효율은 상당히 상승함
GPU 전력효율은 제자리
GPU 성능은 비약적 향상
모바일CPU 성능은 비약적 향상
전력효율도 좋아지는듯
왜 이런 현상이 생길까요?
GPU 제대로 된 플레그쉽급 한번 쓴다치면 700와트정도는 소비한다고 하는데(SLI)
심지어는 4개 달아놓으면 가뿐히 1000와트도 넘어간다는데
그 대부분의 전력이 GPU로만 가는것도 신기하네요.
아예 계산 방식이 달라서 그런건가요? 그렇다 치기엔 모바일씨피유의 성능향상은 대체 뭔지.. 아리송합니다.
현재 최고의 모바일 CPU인 애플사의 A7칩들은(벤치결과는 1등인것 같습니다.)
과거 CPU에 어느정도 성능에 해당할까요?
잘은 모르지만 게임기로 따지자면 PS2와 PS3의 정확히 한가운데점은 넘은것 같다는 생각이 듭니다.
개별 유닛에서 효율을 끌어올리기쉽지 않을 겁니다. 씨피유는 상대적으로 디자인 변걍의 여지가 많지요
gpu 는 전설의 tsmc 때문입니다.
전력 효율이 상당히 상승한다는 자체가 같은 전력에서의 성능이 향상된다는 말이 되죠..
그러나, 전문적인 수준이 아니고서야 cpu 의 성능 자체가 상당히 향상되어서 1cpu 로만 사용해도 되지만 gpu 의 경우 게임 성능 향상에 따라 같이 향상 되어야 하고, 일반인에게는 gpu 가 쓰이는 경우가 많죠.
cpu 가 많이 쓰이는 경우 역시 다중cpu를 사용하면 예전과 같은 와트에 몇배의 성능향상이 있는 거죠.. 경제성의 차이입니다.
요약하자면 , 다중 gpu 를 사용하는 경우가 훨씬 많으므로 그렇게 보일 뿐 전력당 성능 향상은 비슷합니다.
윈도우 돌리며 엑셀이나 워드작업하는 것이라면 맞는 말이겠지만
아직도 동영상 인코딩이나 다른 작업들은 시간 많이 잡아먹잖아요.
그리고 그런 작업을 전문적으로 하는 분들을 위해 인텔에서는 12코어(쓰레드 24개)까지 지원하는 제온을 내고 있죠
하스웰 제온은 16코어인가 18코어까지 넣을거라더군요
그게 바로 인텔이 그래픽칩셋 시장도 일등먹는 이유이고 날고긴다는 엔비디아가 여지껏 영세한 팹리스 업체로 남아있는 이유죠.
클럭의 마지노선이 6기가이고 그이상은 실리콘 기반에서 발열과 크기를 해결 못했습니다. 그래서 멀티 코어로 가는것입니다.
참고로 멀티코어로하면 무조건 빨라지는게아니고 앱이 거기에 맞게 되어야합니다. 뭐 os영향도 큽니다만,,
클럭이 올라가면 무조건 빨라지는데 한계에 온거죠
암튼 6기가 이하에서 소규모 멀티코어로 앱이나 os와 함께 최적화되는 중이죠
글픽은 좀다릅니다. 태생이 멀티코어였고 클럭보단 멀티프로세싱이 필요한영역입니다. 그렇다고 gpu가 cpu를 대체할수 있는것은 아닙니다. 서로 다른세계입니다. *
그런데 멀티코어라는게 제대로 성능을 내려면 어플리케이션이 멀티스레드를 생성하여 실행이되야하는 형태인데, 실제로 일반 어플리케이션이 병렬적으로 처리가능한 부분이 많지 않습니다. 또한 병렬화 가능하더라도 여러가지 synchronization 기법을 써서 프로그래밍을 해야해서 쉽지 않죠. 그래서 체감을 못하는거고요. 병렬 벤치마크 돌리면 지속적으로 발전하고 있는게 느껴집니다. 그리고 멀티코어 아키텍쳐 적으로도 실효성이 있는 변경이 힘듭니다. 여러가지 방법들이 논문으로 많이 나오지만 실제로 적용이 되진 않죠. 검증을 해야하다보니. 전력은 뭐 쉽게 체감이 되는거고 마케팅 포인트다 보니 저희가 잘 아는 부분인거구요.
GPU는 벡터프로세서라서 작은 코어가 대량이 있습니다. 엔비디아 기준으로 작은 코어, cuda 코어 그냥 exeuction unit 여러개 뭉쳐있는 형태라고 생각하면됩니다. GPU는 픽셀에 어떤 정보를 뿌려줄지 연산을 하는게 주요 역할인데, 아시다시피 픽셀 갯수는 많으나 결국 사용되는 instruction 연산의 종류는 몇가지 안됩니다. 따라서 대량의 execution unit을 쿠다코어라는 형식으로 묶어서 instruction 을 동일하게 뿌려서 결과를 출력하는 형태이기때문에 SIMD(Single Instruction Multiple Data) 구조라고 합니다. 이때 많은 수의 쿠다코어가 동작하기때문에 실제 동작하는 execution unit도 비례해서 많은 숫자가 구동됩니다. 거기에 비례해서 전력 소모가 일어나겠죠. GPU 성능은 보통 모든 쿠다 코어가 사용되고 있을때의 초당 floating point 연산이 몇번이 가능한가로 측정합니다. 최근에는 쿠다코어 갯수가 많아져서 GFLOPS를 넘어 TFLOPS 까지 가고 있죠.
결국 GPU 성능은 CPU와는 다르게 어차피 GPU에서 실행되는 어플리케이션이 병렬화가 쉽게 가능한 그래픽 연산같은 것들이기 때문에 체감하기 쉽습니다. 성능도 집적도가 올라감에 따라 비례해서 증가할 수 있죠 많은 쿠다 코어를 때려박으면 되는거다보니. 하지만 GPU에서도 GPGPU 컴퓨팅, 즉 쉐이더(픽셀단위로 연산해주는 단계) 연산할때 일반연산을 하도록 kernel code형태로 CPU에서 GPU로 넘겨줘서 CPU가 할 병렬코드를 GPU로 넘겨줘서 실행 하면 좋을 수 있습니다. 보통 encoding/decoding 연산들인데, 이때는 GPU 성능이 픽셀 연산에서 처럼 성능이 그렇게 좋지는 않습니다. 결국 GPU 성능지표는 GPU 특성에 맞게 벤치마크로 뽑은거라 많이 빨라지는것 처럼 보입니다. 실제로는 쿠다코어 전부다 사용하는 경우는 잘 없습니다.
모바일 CPU는 태생이 ARM 저전력 프로세서 기반입니다. 사실 CPU라 하면 헷갈릴 수 있는데 여러가지 모바일에 필요한 DSP칩이나 통신칩 같은 것들을 ARM 프로세서의 IP를 사서 삼성같은 회사들이 SoC로 묶어서 엑시노스나 테그라 같은걸 찍어냅니다. 모바일 성능은 사실 원래 좋은게 아니었어서 저전력 구현과 함께 CPU에서 사용된 여러가지 기술을 채용하기 때문에 성능은 좋아지나 저전력을 계속 유지 할 수 있습니다.
보통 모바일 AP 들 속도 측정에 DMIPS 를 많이 썼습니다. 물론 현재는 잘안쓰는거 같지만. Dhrystone 명령이 해당 단위당 몇 개 처리되느냐 인데 이게 1년전에 나온 엑시노스 기준으로 펜티엄 4랑 비슷한거 같더군요. 확실한건 모바일 AP들은 아직 컴퓨터에 사용되는 프로세서들이랑 엄청난 성능차가 납니다.