PGI User Forum
 SearchSearch   MemberlistMemberlist     RegisterRegister   ProfileProfile    Log inLog in 

CUDA-x86.

Scalar variable live-out from loop
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: 6125
Location: The Portland Group Inc.

PostPosted: Wed Sep 08, 2010 5:00 pm    Post subject: Reply with quote

Hi WmBruce,

'live-out' means that the variable's value is being used after the accelerator region. For example, if the variable is used on the right-hand side of an expression or if it was passed into the function. The problem being that the compiler doesn't know which thread's value to store back into the CPU's copy. The solution is usually to privatize the variable or remove the 'live-out' dependency.

The other possibility is that it's compiler issue and in looking through our issue tracking system I do see one that is similar. In this case, the same 'live-out' error occurs when using an accelerator region within a contained subroutine. If this is the case for your code, then the only work-around is to make the subroutine independent of it's parent routine.

If neither of these are helpful, can you please send a reproducing example to PGI Customer service (trs@pgroup.com)?

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



Joined: 18 May 2009
Posts: 14

PostPosted: Mon Sep 13, 2010 2:11 pm    Post subject: Reply with quote

thanks.

We don't think it is the first choice as we changed its name so that it only occurred in the region.

The second case is doubtful as we expanded all the region code to in-line. We declare the region before the main loop and, after some preliminaries, do a region do vector, parallel, ...

where the ln2 index variable occurs for the first time.

What is the prognosis for the method to be able to handle subroutines/function calls? In-lining makes the code long and fragile.
Back to top
View user's profile
mkcolg



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

PostPosted: Mon Sep 13, 2010 3:50 pm    Post subject: Reply with quote

Quote:
What is the prognosis for the method to be able to handle subroutines/function calls? In-lining makes the code long and fragile.
No break through as of yet as we're still hampered by the lack of a linker for the GPU. For CUDA Fortran on Fermi, we have developed a method to use device data from external modules (See http://www.pgroup.com/lit/articles/insider/v2n3a1.htm) which is good first step.

- 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