(1) 압도적인 수학연산 전문화
- 칩셋이라고 불리는 부분이 있어서 기계어 명령어를 순차적으로 +가 되게 만듭니다.
일반적인 다양한 일을 해야하기 때문에 cpu는 훨씬 많은 명령어를 가지고 있다.
- 그래픽 카드는 특화된 기능의 명령어를 가지고 있다.
(2) 압도적인 병렬성 일반적인 CPU는 1개의 코어가 1개의 명령어를 처리한다.
-> 기능적으로 본다면 16코어는 한번에 16개의 명령어를 처리할 수 있는 가능성이 있다.
-> 그래픽카드는 픽셀1개 1개를 쓰레드로 처리
-> 1280X720에다가 뭔가를 그리면 1280 x 720개의 쓰레드를 동시에 운용하는 수준의 병렬성을 가진다.
1. SISD( 단일 데이터 스트림 조직)
(1) 단일 프로세서시스템
(2) 실행 과정은 파이프라이닝 되어 있다.
2. SIMD (복수 데이터 스트림 조직)
(1) 배열 프로세서 -> 다수의 pu들을 이용하여 여러 개의 데이터들에 대한 연산을 동시에 처리하는 프로세서
(2) pu들의 동작 -> 제어 유니트 통제
(3) 데이터 스트림은 여러 개를 동시에 처리
3. MISD(단일 데이터 스트림 조직)
(1) N개의 프로세서들이 서로 다른 명령어들을 실행하지만, 처리하는 데이터 스트림은 한 개
(2) 구현 x
4. MIMD(복수 데이터 스트림 조직)
(1) N 개의 프로세서들이 서로 다른 명령어들과 데이터들을 처리
(2) 밀결합 시스템
- 공유 - 기억장치 구조
- 다중프로세서 시스템
(3) 소결합 시스템
- 지역 기억장치를 가진 독립적인 컴퓨터 모듈로 구성
- 프로세서간 통신은 메시지 전송 방식 이용
- 다중컴퓨터 시스템
다렉 함수는 왜 빠르냐?
내부에서 SIMD 연산을 사용한다.
CPU에서 그래픽 카드와 같이 한번에 XYZW를 동시에 연산처리하는 기술
행렬 연산 빠르게하라고? 다렉에서 만든 자료형이 있음 DirectX::XMMATRIX, DirectX::XMVECTOR 언리얼에서도 씀. 다렉함수 쓰려면 이 자료형 써야 함.
내용은 SIMD연산 쓰는거 빼고 쌤이 계산하던거랑 다를 게 없다.