On Fri, Nov 13, 2015 at 17:41:53 +0100, Jakub Jelinek wrote: > On Fri, Nov 13, 2015 at 07:37:17PM +0300, Ilya Verbin wrote: > > I don't know which interface to implement to maintain compatibility in the > > future. > > Anyway, currently it's impossible that a process will use the same > > liboffloadmic > > for 2 different offloading paths (say GCC's in exec and ICC's in a dso), > > because > > in fact GCC's and ICC's libraries are not the same. First of all, they have > > different names: liboffloadmic in GCC and just liboffload in ICC. And most > > importantly, ICC's version contains some references to libiomp5, which were > > removed form GCC's version. In theory, we want to use one library with all > > compilers, but I'm not sure when it will be possible. > > Ok, in that case it is less of a problem. > > > > Do you get still crashes on any of the testcases with this? > > > > No, all tests now pass using emul. I'll report when I have any results on > > HW. > > Perfect, I'll commit it to gomp-4_5-branch then.
make check-target-libgomp with offloading to HW also passed :) And this: +++ b/libgomp/testsuite/libgomp.c/target-32.c @@ -3,6 +3,7 @@ int main () { + int x = 1; int a = 0, b = 0, c = 0, d[7]; #pragma omp parallel @@ -18,6 +19,7 @@ int main () #pragma omp target nowait map(alloc: b) depend(in: d[2]) depend(out: d[3]) { + while (x); usleep (1000); #pragma omp atomic update b |= 4; @@ -25,6 +27,7 @@ int main () #pragma omp target nowait map(alloc: b) depend(in: d[2]) depend(out: d[4]) { + while (x); usleep (5000); #pragma omp atomic update b |= 1; demonstrates 200% CPU usage both using emul and HW, so 2 target tasks really run concurrently. -- Ilya