All about

제가 공부한 내용을 정리한 글입니다. 제가 나중에 다시 볼려고 작성한 글이다보니 편의상 반말로 작성했습니다. 잘못된 내용이 있다면 지적 부탁드립니다. 감사합니다.

CPU



<'AMD FX' 프로세서의 내부 구조>


CPU(central processing unit)입력 받은 명령을 해석 / 연산 한 후, 이를 통해 결과 값을 출력 장치로 전달하는 컴퓨터의 주요 부품이다.

CPU의 성능 지표는 아래 세가지이다.

 

1.클럭(동작속도)수치
2.코어(핵심 회로)
3.캐시 메모리(임시 저장소)용량

클럭 수치가 높으면 단일 작업을 빠르게 처리하는 데 유리하며, 코어의 수가 많으면 멀티 태스킹 (다중작업)하거나 멀티코어 연산에 최적화된 프로그램을 구동하는데 이점이 있다. 그리고 캐시 메모리가 넉넉하면 덩치가 큰 프로그램을 구동하거나 자주 하는 작업을 반복 처리할 때 작업 효율을 높일 수 있다.




GPU



<그래픽카드의 중심에 탑재된 GPU의 모습>


GPU(Graphics Processing Unit)의 최초 목적은 병렬연산에 특화된 구조를 통한 높은 3d 그래픽 처리였지만 최근에는 그래픽 처리뿐 아니라 이외의 범용 작업에도 GPU의 처리 능력을 보태는 이른바 'GPGPU(General Purpose computing on Graphics Processing Units)‘ 기술이 발전하고 있다.

GPU의 성능 기준은 CPU와 동일하다.




CPU와 GPU, 무엇이 다른가?


<그림으로 표현한 CPU, GPU 내부 구조 차이>


CPUGPU는 둘 다 데이터를 읽어 연산을 통해 답을 도출하는 기능을 수행한다.


하지만 프로세서 내부의 구조를 살펴보면 CPUGPU의 차이는 크다.


CPU는 명령어가 입력된 순서대로 데이터를 처리하는 직렬(순차) 처리 방식에 특화된 구조를 가지고 있다. 내부 면적의 절반 이상이 캐시로 채워져 있기 때문에 GPU에 비해 상대적으로 ALU(Arithmetic logic unit)가 차지할 수 있는 공간이 적다. CPU고정소수점 데이터를 많이 사용하는 문서 작성 등 일상 생활의 작업을 빠르게 수행할 수 있도록 설계된다.


GPU는 여러 명령을 동시에 처리하는 병렬 처리 방식에 특화된 구조를 가지고 있다. 캐시 메모리 비중이 크지 않고 연산을 할 수 있는 ALU 개수가 많다. 1개의 코어에 수백 ~ 수천개의 ALU가 장착돼 있다. GPU CPU로는 시간이 많이 걸리는 3D 그래픽 작업등을 빠르게 수행하도록 설계된다.




<Polygon으로 표현한 토끼>


Polygon3D 그래픽에서 면의 조합으로 물체를 표현할 때의 각 요소이다. 각각의 삼각형 형태의 면이라고 생각하면 이해가 쉬울 듯 하다.


위 그림에서 토끼를 3D로 표현하는데 Polygon 개수가 늘어날수록 더 세세하게 토끼를 표현할 수 있는 것을 볼 수 있다.

GPU는 토끼의 점프라는 한 개의 명령을 위해 각각의 Polygon을 병렬연산함으로써 CPU보다 3D 그래픽을 표현하는 데 더 뛰어나다.




이러한 GPU병렬처리의 우수성을 딥러닝에 적용할 수 있다.


우리가 대용량의 벡터 데이터를 가지고 연산할 때 각 칼럼과 로우에 대한 합,곱 연산을 병렬처리하면 CPU를 통한 처리보다 빠르기 때문에 GPU를 사용하는 기술들이 발전하고 있다.


그러나 주어진 문제에 따라서 처리속도가 CPU가 더 빠른 경우도, GPU가 더 빠른 경우도 있다, 그렇기 때문에 적절하게 조합하여 사용해야 한다


예를 들어 알파고는 1920개의 CPU280개의 GPU로 구성된다.




아래 동영상들을 보면 더 쉽게 CPU와 GPU의 차이에 대해 이해 할 수 있을것 같다.








참고 자료 링크


링크1, 링크2, 링크3, 링크4, 링크5


이 글이 도움이 되셨다면 왼쪽 아래의 공감을 표시하는 하트를 눌러주세요. 감사합니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading