PGI User Forum
 SearchSearch   MemberlistMemberlist     RegisterRegister   ProfileProfile    Log inLog in 

Free OpenACC Webinar

pgf90io_fmtw_init and function inlining
Goto page 1, 2, 3  Next
 
Post new topic   Reply to topic    PGI User Forum Forum Index -> Accelerator Programming
View previous topic :: View next topic  
Author Message
chris.sl.lim



Joined: 11 Jan 2013
Posts: 15

PostPosted: Mon Apr 08, 2013 6:04 am    Post subject: pgf90io_fmtw_init and function inlining Reply with quote

Hi,

I'm getting this error when trying to compile my Fortran program. The executable is created, but it is just skipping the code within the "accelerated" block.

Any ideas on how to fix it?

Thanks,

Chris

Code:
pgfortran tblock-07-5.f90 -o tblock-07-5 -ta=nvidia,time -Minfo=accel,ccff -fast -mcmodel=medium
/tmp/pgaccxwjbfCJOVw66.gpu(272): error: identifier "__pgf90io_src_info03" is undefined

1 error detected in the compilation of "/tmp/pgnvdxGjbf94JpPV8.nv0".
PGF90-W-0155-Compiler failed to translate accelerator region (see -Minfo messages): Device compiler exited with error status code (tblock-07-5.f90: 7424)
set_xlength:
   7424, Generating present_or_copyin(mixl_type(:))
         Generating present_or_copyin(rt(:,:,:,:))
         Generating present_or_copyin(r(:,:,:,:))
         Generating present_or_copyin(x(:,:,:,:))
         Generating present_or_copyin(ni(:))
         Generating present_or_copyin(nj(:))
         Generating present_or_copyin(nk(:))
         Generating present_or_copyin(area_max(:))
         Generating present_or_copyin(vol_total(:))
         Generating present_or_copyout(difmin(:))
   7426, Loop is parallelizable
         Accelerator kernel generated
       7426, !$acc loop gang ! blockidx%x
       7442, !$acc loop vector(128) ! threadidx%x
       7453, !$acc loop vector(128) ! threadidx%x
       7463, !$acc loop vector(128) ! threadidx%x
   7441, Loop is parallelizable
   7442, Loop is parallelizable
   7452, Loop is parallelizable
   7453, Loop is parallelizable
   7463, Loop is parallelizable
   7464, Loop is parallelizable
  0 inform,   1 warnings,   0 severes, 0 fatal for set_xlength


Last edited by chris.sl.lim on Mon Apr 15, 2013 9:12 am; edited 1 time in total
Back to top
View user's profile
mkcolg



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

PostPosted: Mon Apr 08, 2013 1:33 pm    Post subject: Reply with quote

Hi Chris,

Check if you have a write or print statement in your accelerator compute region. These will need to be removed or guarded by a preprocessor macro.

- Mat
Back to top
View user's profile
chris.sl.lim



Joined: 11 Jan 2013
Posts: 15

PostPosted: Mon Apr 15, 2013 7:28 am    Post subject: Reply with quote

Hi Mat,

Linked to the previous post, I'm getting a compiler error:

Code:
Accelerator restriction: unsupported call to support routine 'pgf90io_fmtw_init'


The line number points to a WRITE statement, so I'm presuming this is a error linked to a WRITE statement as in the first post. I was just wondering if I'd be able to solve this with preprocessor macros?

On a slightly unrelated note, I'm having trouble with function inlining and OpenAcc. The compiler is saying that "function/procedure calls are not supported", but I'm using the -Minline flag that reports that all the function calls within the region have been inlined succesfully. Is there something obvious I'm missing?

Thanks for your time,

Chris

Code:
  13246, Accelerator region ignored
  13248, Accelerator restriction: function/procedure calls are not supported
  13372, exbconds_gpu inlined, size=586, file tblock-07.5.f90 (14010)
  13378, set_visforce_gpu inlined, size=1334, file tblock-07.5.f90 (14477)
  13380, set_visforce_gpu inlined, size=1334, file tblock-07.5.f90 (14477)
  13470, Accelerator restriction: unsupported call to support routine 'pgf90io_fmtw_init'
  13592, sumas inlined, size=373, file tblock-07.5.f90 (10129)
  13607, sumflux inlined, size=434, file tblock-07.5.f90 (5221)
  13608, sumflux_dts inlined, size=426, file tblock-07.5.f90 (5624)
  13913, hfromt inlined, size=5, file tblock-07.5.f90 (13101)
  13919, hfromt inlined, size=5, file tblock-07.5.f90 (13101)
Back to top
View user's profile
chris.sl.lim



Joined: 11 Jan 2013
Posts: 15

PostPosted: Mon Apr 15, 2013 9:12 am    Post subject: Reply with quote

Sorry to keep posting under the same thread. Having removed all the PRINT statements, I'm getting these compiler error messages.

The routine "sumflux" is called 5 times in total, and it inlined successfully twice, but not the third time (and then it stops thereafter). Is there a particular reason for this?

Chris

Code:
 13365, Accelerator region ignored
  13367, Accelerator restriction: function/procedure calls are not supported
  13491, exbconds_gpu inlined, size=586, file tblock-07.5.f90 (14157)
  13497, set_visforce_gpu inlined, size=1288, file tblock-07.5.f90 (14624)
  13499, set_visforce_gpu inlined, size=1288, file tblock-07.5.f90 (14624)
  13693, sumas inlined, size=373, file tblock-07.5.f90 (10248)
  13760, sumflux inlined, size=578, file tblock-07.5.f90 (5221)
  13800, sumflux inlined, size=578, file tblock-07.5.f90 (5221)
  13845, Accelerator restriction: unsupported call to 'sumflux'
  14060, hfromt inlined, size=5, file tblock-07.5.f90 (13220)
  14066, hfromt inlined, size=5, file tblock-07.5.f90 (13220)
Back to top
View user's profile
mkcolg



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

PostPosted: Mon Apr 15, 2013 9:43 am    Post subject: Reply with quote

Quote:
The line number points to a WRITE statement, so I'm presuming this is a error linked to a WRITE statement as in the first post. I was just wondering if I'd be able to solve this with preprocessor macros?
I/O statements can't be used in OpenACC compute regions. You can put "#ifdef _OPENACC" around these statements to they are not compiled when targeting OpenACC

Quote:
On a slightly unrelated note, I'm having trouble with function inlining and OpenAcc. The compiler is saying that "function/procedure calls are not supported", but I'm using the -Minline flag that reports that all the function calls within the region have been inlined succesfully. Is there something obvious I'm missing?
Some routines can't be automatically inlined. In this case, it's the call to the I/O runtime routine, "pgf90io_fmtw_init", so removing the I/O statement will work around this issue.

Quote:
Is there a particular reason for this?
I'd need to see the code. Though, mostly likely it's the arguments being passed to it. What's different about this call to 'sumflux'?

- 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 1, 2, 3  Next
Page 1 of 3

 
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