PGI User Forum
 SearchSearch   MemberlistMemberlist     RegisterRegister   ProfileProfile    Log inLog in 

Free OpenACC Webinar

unsupported call to 'pgf90_alloc04_i8'
Goto page 1, 2  Next
 
Post new topic   Reply to topic    PGI User Forum Forum Index -> Accelerator Programming
View previous topic :: View next topic  
Author Message
wiersma



Joined: 16 May 2013
Posts: 29

PostPosted: Tue Nov 05, 2013 10:17 am    Post subject: unsupported call to 'pgf90_alloc04_i8' Reply with quote

Hi all,

I've recently upgraded to 13.10 to fix an earlier problem, but now I get the following error message:
Quote:
Accelerator restriction: unsupported call to 'pgf90_alloc04_i8'


It comes in the following context:
Quote:
185, Accelerator region ignored
227, Accelerator restriction: function/procedure calls are not supported
239, Accelerator restriction: induction variable live-out from loop: k
240, Accelerator restriction: induction variable live-out from loop: k
249, Accelerator restriction: unsupported call to 'pgf90_alloc04_i8'


I understand the live-out business, and I'll fix that up on my own, but I find that last line quite strange. Line 249 is simply
Code:

line 227   do  j = 1, nx

...

            if ( j /= k) then                               
                temp_row = W(k,1:nx)
line 247        W(k,1:nx) = W(j,1:nx)
                W(j,1:nx) = temp_row
                reciproc(k) = reciproc(j)
            endif

...
        enddo


W is declared as:
Code:

real(SELECTED_REAL_KIND(P=12, R = 60)) :: W(nx, nx)

where nx is a dummy variable which isn't very large. I'm compiling with -Mlarge_arrays and -mcmodel=medium. Again, I'll do some more investigating, but it strikes me that this is the wrong error message.

Rob
Back to top
View user's profile
AROM



Joined: 03 Apr 2013
Posts: 39

PostPosted: Tue Nov 05, 2013 6:56 pm    Post subject: Reply with quote

It looks like PGI wants to allocate integer variable for each thread. Memory allocation function couldn't be inlined into the kernel code.
Back to top
View user's profile
wiersma



Joined: 16 May 2013
Posts: 29

PostPosted: Wed Nov 06, 2013 10:04 am    Post subject: Reply with quote

Yes, that's what it looks like. But that doesn't seem to match the code. I've fix the live-out variable, but this allocation error remains.

Any ideas?
Back to top
View user's profile
mkcolg



Joined: 30 Jun 2004
Posts: 6208
Location: The Portland Group Inc.

PostPosted: Wed Nov 06, 2013 1:15 pm    Post subject: Reply with quote

Hi Rob,

The "pgf90_alloc04_i8" message typically means that compiler added a temp array and is trying to allocate it. This can happen when using array syntax since the right-hand side expression needs to be fully evaluated before assigned to the left-hand side. Though, very often the compiler can optimize out the need for a temp array and why this isn't usually a problem.

Why it's happening here, I can't tell from what you've posted. The "i8" indicates that it's trying to allocate an array of INTEGER(8), but "W" is a REAL. Also, expressions with array syntax is just one case where a temp array could be created. So we're missing enough information to give you a good explanation.

Can you please either post or send to PGI Customer Service (trs@pgroup.com) a reproducing example?

Thanks,
Mat
Back to top
View user's profile
wiersma



Joined: 16 May 2013
Posts: 29

PostPosted: Wed Nov 06, 2013 1:44 pm    Post subject: Reply with quote

Thanks Mat. Here is a stripped down version:

Code:

program acc_error_test

  implicit none

  integer :: nx
  integer :: j
  integer :: k
  real(SELECTED_REAL_KIND( P=12,R=60)) :: W(825,825)
 
  nx = 825
 
  k = 1
  W = 0.0
!$acc kernels
  do  j = 1, nx
     
     if ( j /= k) then
        W(k,1:nx) = W(j,1:nx)
     endif
     
     
  enddo
!$acc end kernels

end program acc_error_test


Compiling:
Quote:

~/codes/sandbox> pgf90 -acc -Minfo=accel -lcublas -Mcuda -Mlarge_arrays -mcmodel=medium -fast -o acc_error_test acc_error_test.f90
PGF90-W-0155-Accelerator region ignored; see -Minfo messages (acc_error_test.f90: 18)
acc_error_test:
18, Accelerator region ignored
19, Accelerator restriction: function/procedure calls are not supported
22, Accelerator restriction: unsupported call to 'pgf90_alloc04_i8'
0 inform, 1 warnings, 0 severes, 0 fatal for acc_error_test
~/codes/sandbox>


-Rob
Back to top
View user's profile
Display posts from previous:   
Post new topic   Reply to topic    PGI User Forum Forum Index -> Accelerator Programming All times are GMT - 7 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group