PGI User Forum
 SearchSearch   MemberlistMemberlist     RegisterRegister   ProfileProfile    Log inLog in 

CUDA-x86.

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



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

PostPosted: Wed Nov 06, 2013 2:34 pm    Post subject: Reply with quote

Hi Rob,

The quick work around is to compile with "-i8" or declare "j" as "integer(kind=8)".

I'll need to ask why were generating the integer(8) temp array when j is an integer(4), but it looks to me to be due to address offsets for large array support. Though, let me get the definitive answer.

- Mat
Back to top
View user's profile
wiersma



Joined: 16 May 2013
Posts: 29

PostPosted: Thu Nov 07, 2013 12:11 pm    Post subject: Reply with quote

That works, but now as I try to unstrip down (or is it strip up?) my code, the following produces the same error (compiling with -i8 doesn't help).

Code:

program acc_error_test

  implicit none

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

end program acc_error_test
Back to top
View user's profile
mkcolg



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

PostPosted: Thu Nov 07, 2013 2:59 pm    Post subject: Reply with quote

I'll put together a problem report to see if our compiler engineers can get the code generation cleaned up so this will accelerate easier. The work-around is to set the value of pivot to a temp variable.

Code:
program acc_error_test

   implicit none

   integer(kind = 8) :: nx
   integer(kind = 8) :: j
   integer(kind = 8) :: k, pv
   integer(kind = 8) :: pivot(825)
   real(SELECTED_REAL_KIND( P=12,R=60)) :: W(825,825)



   nx = 825

   k = 1
   W = 0.0
   pivot = 1
 !$acc kernels
 !$acc loop independent
   do  j = 1, nx

      if ( j /= k) then
         pv = pivot(j)
         W(pv,1:nx) = W(j,1:nx)
     !    W(pivot(j),1:nx) = W(j,1:nx)
      endif


   enddo
 !$acc end kernels

 end program acc_error_test


- Mat
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 Previous  1, 2
Page 2 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