- 최적화 기술에 대해 알아본다.
- CPU 성능 표현 방법에 대해 알아본다.
- CPU 최적화기술 (independent / dependent) 에 대해 알아본다.
- 메모리 계층구조
최적화된 프로그램을 작성한다는 것
Divide a job into portions that can be computed in parallel
고려사항 : tradeoff (가독성 VS 최적화)
CPE = Cycles per Element
Optimization Practice
/*
data_t: int, float (double)
#define OPER + // 연산자
#define IDENT 0 // 초기값 (덧셈일 경우)
or
#define OPER * // 연산자
#define IDENT 1 // 초기값 (곱셈일 경우)
*/
void combine1(vec_ptr v, data_t *dest) {
int i;
*dest = IDENT; // 초기값 설정 (덧셈: 0, 곱셈: 1)
for (i = 0; i < vec_length(v); i++) {
data_t val;
get_vec_element(v, i, &val); // 벡터 v에서 i번째 값을 가져옴
*dest = *dest OPER val; // 연산 수행 (덧셈 또는 곱셈)
}
}
- 벡터 v의 길이만큼 순회하며, 각 요소의 값을 val에 가져온다.
- *dest에 기존 값과 가져온 값을 OPER 연산을 통해 누적한다.
- 모든 연산이 끝난 후 *dest에 최종 연산 결과가 저장된다.
현대 프로세서 이해하기
Intel P6 microarchitecture
Overall features
1. Superscalar
2. Out of order
3. Branch prediction
4. Speculative execution
5. Register renaming
Latency vs Issue time
Latency : 연산의 총 사이클 수
Issue etime : 연속적인 연산 사이의 사이클 수
'전공과목 스터디 > 시스템 프로그래밍' 카테고리의 다른 글
[시프] Lecture9 (0) | 2024.12.07 |
---|---|
[시프] Lecture 8 (0) | 2024.11.30 |
[시프] Lecture 7 (0) | 2024.11.30 |
[시프] Lecture 6 (1) | 2024.11.30 |
[시프] Lecture 5 (0) | 2024.11.30 |