hello, i am trying to optimize omp simd loop as follows int main(int argc, char **argv) { const int size = 1000000; float a[size], b[size],c[size]; #pragma omp simd for (int i=0; i<size; ++i) { c[i]= a[i] + b[i]; } return 0; } i run it using the following command; g++ -O0 --std=c++14 -fopenmp-simd lab.cpp -Iinclude -S -o lab.s when i compared it with code as follows without simd int main(int argc, char **argv) { const int size = 1000000; float a[size], b[size],c[size]; for (int i=0; i<size; ++i) { c[i]= a[i] + b[i]; } return 0; } using following command g++ -O0 --std=c++14 lab.cpp -Iinclude -S -o lab.s I am getting the same assembly. Why is that so? why not omp simd is more efficient? Please help -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171230/72ee3002/attachment.html>
I didn’t look at the assembly, but you didn’t initialize your arrays. Your program isn’t meaningful. On Sat, Dec 30, 2017 at 9:08 AM hameeza ahmed <hahmed2305 at gmail.com> wrote:> hello, > > i am trying to optimize omp simd loop as follows > > int main(int argc, char **argv) > { > const int size = 1000000; > > > float a[size], b[size],c[size]; > > > > #pragma omp simd > for (int i=0; i<size; ++i) > { > c[i]= a[i] + b[i]; > } > > > return 0; > } > > i run it using the following command; > > g++ -O0 --std=c++14 -fopenmp-simd lab.cpp -Iinclude -S -o lab.s > > when i compared it with code as follows without simd > > > int main(int argc, char **argv) > { > const int size = 1000000; > > > float a[size], b[size],c[size]; > > > > for (int i=0; i<size; ++i) > { > c[i]= a[i] + b[i]; > } > > > return 0; > } > > using following command > > g++ -O0 --std=c++14 lab.cpp -Iinclude -S -o lab.s > > I am getting the same assembly. Why is that so? why not omp simd is more > efficient? > > Please help > > > --~Craig -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171230/83904c95/attachment.html>
I even tried following; int main(int argc, char **argv) { const int size = 1000000; float a[size], b[size],c[size]; #pragma omp simd for (int i=0; i<size; ++i) { a[i]=2; b[i]=3; c[i]=4; c[i]= a[i] + b[i]; } return 0; } but the output with and without openmp simd is same. why is that so? On Sun, Dec 31, 2017 at 12:01 AM, Craig Topper <craig.topper at gmail.com> wrote:> I didn’t look at the assembly, but you didn’t initialize your arrays. Your > program isn’t meaningful. > > On Sat, Dec 30, 2017 at 9:08 AM hameeza ahmed <hahmed2305 at gmail.com> > wrote: > >> hello, >> >> i am trying to optimize omp simd loop as follows >> >> int main(int argc, char **argv) >> { >> const int size = 1000000; >> >> >> float a[size], b[size],c[size]; >> >> >> >> #pragma omp simd >> for (int i=0; i<size; ++i) >> { >> c[i]= a[i] + b[i]; >> } >> >> >> return 0; >> } >> >> i run it using the following command; >> >> g++ -O0 --std=c++14 -fopenmp-simd lab.cpp -Iinclude -S -o lab.s >> >> when i compared it with code as follows without simd >> >> >> int main(int argc, char **argv) >> { >> const int size = 1000000; >> >> >> float a[size], b[size],c[size]; >> >> >> >> for (int i=0; i<size; ++i) >> { >> c[i]= a[i] + b[i]; >> } >> >> >> return 0; >> } >> >> using following command >> >> g++ -O0 --std=c++14 lab.cpp -Iinclude -S -o lab.s >> >> I am getting the same assembly. Why is that so? why not omp simd is more >> efficient? >> >> Please help >> >> >> -- > ~Craig >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171231/9687fe24/attachment.html>