Loop unrolling là gì?

Noun Programming
loop unwinding

Loop unrolling là một kỹ thuật biến đổi vòng lặp (loop transformation) giúp tối ưu hóa thời gian thực thi ( execution time) của chương trình. Về cơ bản chúng ta loại bỏ hoặc giảm số lần lặp lại (iteration). Loop unrolling làm tăng tốc độ của chương trình bằng cách loại bỏ lệnh điều khiển vòng lặp và lệnh kiểm tra vòng lặp.

Chương trình 1:


// This program does not uses loop unrolling.
#include
  
int main(void)
{
    for (int i=0; i

Chương trình 2:


// This program uses loop unrolling.
#include
  
int main(void)
{
    // unrolled the for loop in program 1
    printf("Hello\n");
    printf("Hello\n");
    printf("Hello\n");
    printf("Hello\n");
    printf("Hello\n");
  
    return 0;
} 

Output:


Hello
Hello
Hello
Hello
Hello

Chương trình 2 hiệu quả hơn chương trình 1 vì trong chương trình 1 cần kiểm tra giá trị của i và tăng giá trị của i mỗi vòng lặp.

Learning English Everyday