PGI User Forum
 SearchSearch   MemberlistMemberlist     RegisterRegister   ProfileProfile    Log inLog in 

CUDA-x86.

>2Gb data objects: pgf77 v5.2 -mcmodel=medium -Mlarge_arr

 
Post new topic   Reply to topic    PGI User Forum Forum Index -> Programming and Compiling
View previous topic :: View next topic  
Author Message
wkellar



Joined: 19 Aug 2004
Posts: 1

PostPosted: Thu Aug 19, 2004 4:16 am    Post subject: >2Gb data objects: pgf77 v5.2 -mcmodel=medium -Mlarge_arr Reply with quote

hardware - IBM amd64 single proc server 8Gb RAM
OS - suse8.0SLES 64bit (kernel 2.4.21-143-smp)

i have assembler issues with single arrays >2Gb.

the test prog on p47 of the 5.2 release notes works OK (obviously) : if you don't use -mcmodel=medium &c then you get 'relocation truncated' error. however, if you increase the array param in this test prog a bit further, eg to 22000, you get a different class of error:

/tmp/pgf77aaaaasEeaD.s: Assembler messages:
/tmp/pgf77aaaaasEeaD.s:60: Error: .COMMon length (-2054967296.) <0! Ignored.
/tmp/pgf77aaaaasEeaD.s:60: Warning: rest of line ignored; first ignored character is `,'

(or similar). this also happens with my alternative test prog (see base of this post), this prog manifests this alternative error if you change the array limit between about 130M and 140M.


Q: the options suggested by 5.2 release notes (-mcmodel=medium &c) seem *only* to behave the same as -fpic used to do in v5.1. they get me slightly larger arrays than otherwise, as did -fpic in 5.1, but nothing like the proper 5.2 64bit addressing as described in the release-notes table.

in summary - 5.1 & 5.2 both get some mileage out of -fpic for large single arrays, but any extra features in 5.2 seem to add nothing.

do i need to upgrade binutils (in my suse8.0 SLES) or something, to go along with my 5.1-->5.2 upgrade? otherwise, it would seem that the documented 5.2 64bit addressing upgrade is essentially ineffective.


cheers
will



--------------------
my test prog, which won't assemble:

program TEST1
parameter(i_1=140000000)
integer*4 i1(i_1,4)
do i=1,i_1
do j=1,4
i1(i,j) = 0
end do
end do
stop
end
Back to top
View user's profile
mkcolg



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

PostPosted: Thu Aug 19, 2004 10:42 am    Post subject: Need to upgrade binutils Reply with quote

Hi Will,

You need to have at least binutils version 2.14.90.0.5 installed for large array support. From our 5.2-1 release notes http://www.pgroup.com/support/new_rel.htm

Quote:
The 5.2-1 release (and later) PGF90, PGF77 and PGCC compilers now allow individual data objects larger than 2GB, with the addition of the -Mlarge_arrays switch. Note that for the -Mlarge_arrays switch to work properly
1. Options -mcmodel=medium and -Mlarge_arrays are used
2. The 'binutils' version is at least 2.14.90.0.5 (such as the binutils installed in SuSE 9.0)
3. The swap space is 'large'


Your sample program works on a SuSE9.0 and SuSE9.1 system.

Hope this helps,
Mat
Back to top
View user's profile
Display posts from previous:   
Post new topic   Reply to topic    PGI User Forum Forum Index -> Programming and Compiling All times are GMT - 7 Hours
Page 1 of 1

 
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