본문 바로가기
지식창고/IT 지식

loop unroll

by eteo 2023. 12. 19.

 

 

loop unroll

 

루프 언롤은 반복문을 효과적으로 최적화하는 기법 중 하나이다. 이 기법은 반복문의 반복 횟수를 줄여 성능을 향상시키는 것을 목표로 한다. 일반적으로 루프 언롤은 컴파일러 최적화에 의해 자동으로 수행되기도 하지만, 때로는 프로그래머가 수동으로 코드를 작성하여 성능을 개선하기도 한다.

 

 

loop unroll 예시

 

 

 

 

 

 

 

장점

 

루프 언롤은 분기체크로 인한 오버헤드를 줄여주고 파이프라인을 더 효과적으로 사용할 수 있도록 하여 연속적인 명령어를 병렬로 처리하는데 도움이 된다. 때문에 특정 상황에서는 성능 향상을 가져온다.

 

 

단점

 

반복문 내의 코드를 복사하므로 코드 크기가 증가로 인한 캐시누락이 발생하여 오히려 성능에 안좋은 영향을 미칠 수 있다. 또한 프로그래머가 직접 루프 언롤을 사용했을 때 코드의 가독성이 떨어지고 오히려 컴파일러가 코드를 최적화하기 더 어려워질 수 있다.

 

 

 

참고할 글 :

 

https://www.tms320f28x.co.kr/board/view.php?page=1&bdId=titechniquedata&sno=59

 

(주)싱크웍스

TMS320F28X 전문가그룹, 싱크웍스, Texas Instruments, TMS320F28X, MCU, DSP, JTAG 에뮬레이터, 모듈, 개발보드, CCS

www.tms320f28x.co.kr

 

최신 프로세서에는 루프에 대한 최적화 기능이 들어 있어서 오히려 루프 언롤을 사용하면 역효과라고 한다.

 

https://www.tomshardware.com/reviews/Intel-i7-nehalem-cpu,2041-3.html