loop unrolling - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

loop unrolling

0 امتیاز

سلام.

آیا همیشه loop unrolling مهمه .تو یه سایتی خوندم که gcc تو بعضی از موارد خودش اینکارو انجام میده یعنی در همه شرایط اینطوریه؟ توی این پست fastcode گفته جوری بنویس که کامپایلر خودش حلقه کد را ببره روی sse این با unroll تداخل نداره ؟

int i;
for (i = 0; i < 40; i++) {
if (i % 2 == 0) {
Func1(i);
}
else {
Func2(i);
}
Func3(i);
}

 

سوال شده آذر 7, 1392  بوسیله ی toopak (امتیاز 2,458)   16 48 66

1 پاسخ

+1 امتیاز
 
بهترین پاسخ

آره مهمه .تو بعضی از موارد ساده و ترتیبی کامپایلر خودش اینکارو انجام میده از miss caching جلوگیری میشه .

int i;
for (i = 0; i < 20; i+=2) {
Func1(i);
Func3(i);
Func2(i+1);
Func3(i+1);
}

 

پاسخ داده شده آذر 8, 1392 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد آذر 12, 1392 بوسیله ی BlueBlade
...