Re: GPULIB troubleshoot [message #80556] |
Mon, 25 June 2012 09:38  |
Michael Galloy
Messages: 1114 Registered: April 2006
|
Senior Member |
|
|
On 6/25/12 7:11 AM, David Grier wrote:
> On 6/25/12 7:49 AM, alx wrote:
>> On 25 juin, 13:32, David Grier <david.gr...@nyu.edu> wrote:
>>> On 6/25/12 4:27 AM, alx wrote:
>>>
>>>
>>>
>>>
>>>
>>>> This message is intended to afficionados of GPULIB (in particular
>>>> Michael Galloy...)
>>>
>>>> I was successfully using a Tesla C1060 over several monthes on some
>>>> workstation running Windows XP 64 bits and IDL8.0. Very successfully.
>>>
>>>> Recently, I upgraded the same machine to Windows 7 64 bits and IDL8.2,
>>>> with the following unsatisfying result:
>>>
>>>> IDL> print,!version
>>>> { x86_64 Win32 Windows Microsoft Windows 8.2 Apr 10 2012 64
>>>> 64}
>>>
>>>> IDL> gpuinit,0, /HARDWARE, ERROR=err, /VERBOSE
>>>> Welcome to GPULib 1.4.4 (Revision: 2107)
>>>> % GPUINIT: using hardware
>>>> Graphics card: Tesla C1060, compute capability: 1.3, memory: 4040 MB
>>>> available, 4095 MB total
>>>> Checking GPU memory allocation...no errors
>>>
>>>> IDL> a = gpuputarr(findgen(10), ERROR=err) & print,err
>>>> 0
>>>> IDL> b = gpuputarr(findgen(10), ERROR=err) & print,err
>>>> 0
>>>> IDL> c = gpumult(a,b,LHS=c, ERROR=err) & print,err
>>>> 8
>>>> The c GPU variable is created, but is in error
>>>
>>>> IDL> print, gpugetarr(c,ERROR=err) & print,err
>>>> 1.43493e-042 1.73472e-018 0.000000 7.34684e-040 0.000000
>>>> 0.000000 0.000000 6.01853e-036 0.000000 2.52435e-029
>>>> 0
>>>
>>>> Does someone have an explanation ?
>>>> alain.
>>>
>>> I see two possible issues
>>>
>>> 1. It appears that c is declared to be the LHS (left-hand side) of
>>> the gpumult() call without first having being allocated.
>>> Have you tried getting gpumult to allocate the necessary GPU
>>> variable?
>>>
>>> IDL> c = gpumult(a, b, ERROR=err) & print, err
>>>
>>> You also might allocate the variable explicitly:
>>> IDL> c = gpufltarr(10)
>>> IDL> c = gpumult(a, b, LHS = c)
>>>
>>> 2. Did you rebuild GPULib when you upgraded your OS and IDL
>>> installation? I've forgotten to rebuild GPULib on
>>> my linux machines after upgrades and have had strange results.
>>>
>>> TTFN,
>>>
>>> David
>>>
>>>
>>
>> Regarding issue 1: preallocation statement was missed in the message,
>> but was done in actual processing.
>> Regarding issue 2: GPUlib cannot be rebuilt (from my side), since the
>> binary DLL (GPUlib.1.4.4) file is distributed without any sources.
>> I forgot to say that, when upgrading OS and IDL, I kept same NVIDIA
>> graphics driver and CUDA version than before... So, I do not think
>> that rebuilding the library would be mandatory.
>> Thanks anyway for the tips.
>> alain.
>>
>
> Point 2 may be the issue. On Unix-like systems, GPULib is linked
> against libidl.so, which changes from version to version. An IDL 8.0
> build of GPULib does not work properly under IDL 8.2 on linux or
> MacOS for this reason -- I know this from first-hand experience.
> I'd bet a similar thing is going on in your case too. Without access
> to the source code, upgrading GPULib to the 64-bit Windows 7 version
> might possibly do the trick. If not, downgrading IDL to version 8.0
> seems to be the most likely remaining option.
Yes, that's what I would suggest in the short term. Building on Windows
is technically possible for users of GPULib, but I would not suggest it
for the faint of heart (it's much easier on Linux and Mac OS X). An
updated version of GPULib should be released shortly.
Mike
--
Michael Galloy
www.michaelgalloy.com
Modern IDL: A Guide to IDL Programming (http://modernidl.idldev.com)
Research Mathematician
Tech-X Corporation
|
|
|