pgf902 TERMINATED by signal 11

Hi all,

I get the following interesting message when compiling:

pgf90-Fatal-/opt/pgi/linux86-64/13.10/bin/pgf902 TERMINATED by signal 11
Arguments to /opt/pgi/linux86-64/13.10/bin/pgf902
/opt/pgi/linux86-64/13.10/bin/pgf902 /tmp/pgf90tYdd5F98I082.ilm -fn myfile.f90 -opt 2 -terse 1 -inform warn -x 51 0x20 -x 119 0xa10000 -x 122 0x40 -x 123 0x1000 -x 127 4 -x 127 17 -x 19 0x400000 -x 28 0x40000 -x 120 0x10000000 -x 70 0x8000 -x 122 1 -x 125 0x20000 -quad -vect 56 -y 34 16 -x 34 0x8 -x 32 12582912 -y 19 8 -y 35 0 -x 42 0x30 -x 39 0x40 -x 199 10 -x 39 0x80 -x 34 0x400000 -x 149 1 -x 150 1 -x 59 4 -x 59 4 -tp nehalem -x 120 0x1000 -x 124 0x1400 -y 15 2 -x 57 0x3b0000 -x 58 0x48000000 -x 49 0x100 -x 120 0x200 -astype 0 -x 121 1 -x 124 1 -accel nvidia -x 163 0x1 -x 186 0x80000 -x 180 0x400 -x 180 0x4000000 -x 189 0x80000 -x 163 0x100 -x 163 0x200 -x 176 0x140000 -x 177 0x0202007f -x 176 0x100 -x 186 0x10000 -x 176 0x100 -x 186 0x20000 -x 176 0x100 -x 176 0x100 -x 189 4 -x 189 0x800 -y 70 0x40000000 -x 186 0x80000 -x 180 0x400 -x 180 0x4000000 -x 163 0x100 -y 70 0x40000000 -y 189 0x4000000 -x 0 0x1000000 -x 2 0x100000 -x 0 0x2000000 -x 161 16384 -x 162 16384 -x 137 1 -x 180 0x4000000 -x 176 0x140000 -x 177 0x0202007f -x 176 0x100 -x 186 0x10000 -x 176 0x100 -x 186 0x20000 -x 176 0x100 -x 176 0x100 -x 189 4 -x 189 0x800 -x 189 0x80000 -x 68 0x1 -x 135 1 -x 68 0x1 -x 9 1 -x 42 0x14200000 -x 72 0x1 -x 136 0x11 -quad -x 119 0x10000000 -x 129 0x40000000 -x 129 2 -x 164 0x1000 -cmdline '+pgf90 Pij_GPU_Acc.f90 -ta=nvidia,fastmath,cuda5.5 -acc -Minfo=accel -lcublas -Mcuda=cuda5.5 -Mlarge_arrays -mcmodel=medium -fast -Mvect=sse -Mcache_align -Mflushz -Mpre -c' -asm /tmp/pgf90BYddrqaHWqKK.sm

This happens when I change this

!$acc kernels loop independent gang (256) private(rhs)
            do  b  = 1, nb
	        ! some code 
!$acc loop independent vector (32)
                do  n  = 1, nn
		    ! some code
                    do i = 1, ni
			!some code
                    enddo
		    ! some code
                enddo

		!some code

!$acc loop independent vector (32) 
               do i = 1,i2
                    temp = 0.0
!$acc loop independent reduction(+:temp)
                    do k = 1,j2
                        temp = temp + x(i,k,r) * y(k)
                    end do
                    z(i+i1-1) = temp
                end do
            enddo

to this

!$acc kernels loop independent gang (256) private(rhs)
            do  b  = 1, nb
	        ! some code 
!$acc loop independent vector (32)
                do  n  = 1, nn
		    ! some code
                    do i = 1, ni
			!some code
                    enddo
		    ! some code
                enddo

		!some code

!$acc loop independent worker (32)
               do i = 1,i2
                    temp = 0.0
!$acc loop independent vector (32) reduction(+:temp)
                    do k = 1,j2
                        temp = temp + x(i,k,r) * y(k)
                    end do
                    z(i+i1-1) = temp
                end do
            enddo

The weird thing is according to Minfo messages it seems to be dying much earlier in the compilation than this. Unfortunately, I may not post the full source - I’m not sure I’ll be able to produce a sanitized example in this case.

Any ideas?

Rob

ps - feel free to wack me over the head if I’m misusing gang/worker/vector statements. I’m just experimenting at this point to figure out how they best go together.

Hi Rob,

The compiler should never seg fault. Even if you were doing something “wrong”, the compiler should emit an error and exit gracefully. If there is any possibly of sending a reproducing example to PGI Customer Service (trs@pgroup.com), we would appreciate it. These are bad bugs, that we would like to get fixed as soon as possible. (Note that you might try removing the “width” values, i.e. the 256, and 32’s, and let the compiler schedule it. I’m not sure it will get you correct code or work around the segv, but it’s worth a try.)

Granted, we have been doing a lot of work on “worker” recently, including having an inner loop “vector” reduction. These improvements will be available in 14.1 due on soon. Hopefully these changes also will fix your compiler seg fault.

  • Mat

Hi Mat,

It’s not too big a deal as excluding the worker statement in (as in the first example) works fine and gives the correct result. I was just trying to shave off a few microseconds :).

I’ll see what I can do about an example, but no promises.

Rob

Just to report that it still seg faulted after removing the width values.

I tried, but I don’t think I can come up with a simplified example without spending a great deal of time on it. We’ll see what happens with 14.1.

Rob