loop unroll
루프 언롤은 반복문을 효과적으로 최적화하는 기법 중 하나이다. 이 기법은 반복문의 반복 횟수를 줄여 성능을 향상시키는 것을 목표로 한다. 일반적으로 루프 언롤은 컴파일러 최적화에 의해 자동으로 수행되기도 하지만, 때로는 프로그래머가 수동으로 코드를 작성하여 성능을 개선하기도 한다.
loop unroll 예시
장점
루프 언롤은 분기체크로 인한 오버헤드를 줄여주고 파이프라인을 더 효과적으로 사용할 수 있도록 하여 연속적인 명령어를 병렬로 처리하는데 도움이 된다. 때문에 특정 상황에서는 성능 향상을 가져온다.
단점
반복문 내의 코드를 복사하므로 코드 크기가 증가로 인한 캐시누락이 발생하여 오히려 성능에 안좋은 영향을 미칠 수 있다. 또한 프로그래머가 직접 루프 언롤을 사용했을 때 코드의 가독성이 떨어지고 오히려 컴파일러가 코드를 최적화하기 더 어려워질 수 있다.
참고할 글 :
https://www.tms320f28x.co.kr/board/view.php?page=1&bdId=titechniquedata&sno=59
최신 프로세서에는 루프에 대한 최적화 기능이 들어 있어서 오히려 루프 언롤을 사용하면 역효과라고 한다.
https://www.tomshardware.com/reviews/Intel-i7-nehalem-cpu,2041-3.html
'지식창고 > IT 지식' 카테고리의 다른 글
Wireshark에서 캡쳐시 UDP/TCP 데이터 뒤에 00 패딩이 붙는 이유 (0) | 2024.01.24 |
---|---|
TCP/IP stack (0) | 2024.01.10 |
CPU 구조 (0) | 2023.12.18 |
스위치, 허브, 라우터, 공유기 차이점 (0) | 2023.12.16 |
ISO 국가표준 규격서 무료 열람 (0) | 2023.12.10 |