[petsc-dev] Possible bugs when using TS with ViennaCL (continued)

Mani Chandra mc0710 at gmail.com
Tue Jan 28 11:49:49 CST 2014


Hi Karl,

It actually works even if I use ComputeResidualViennaCL without using
ViennaCL vecs! Isn't it because there is a consistency check to see where
the data resides whenever there is a call to VecViennaCLGetArray?

I reran the code on another machine with a NVIDIA GeForce 550 ti with 1GB
of global memory. It still fails with the following error:

ViennaCL: FATAL ERROR: Kernel start failed for 'vec_mul'.
ViennaCL: Smaller work sizes could not solve the problem.
[0]PETSC ERROR: --------------------- Error Message
------------------------------------
[0]PETSC ERROR: Error in external library!
[0]PETSC ERROR: ViennaCL error: ViennaCL: FATAL ERROR:
CL_MEM_OBJECT_ALLOCATION_FAILURE
 ViennaCL could not allocate memory on the device. Most likely the device
simply ran out of memory.

To reproduce the error, I only had to turn on the ViennaCL vecs. The error
occurs irrespective of which residual evaluation function I use. I checked
to see if there was any memory usage increase in the CPU memory while the
run was going on but there was none.

Cheers,
Mani


On Tue, Jan 28, 2014 at 10:12 AM, Karl Rupp <rupp at mcs.anl.gov> wrote:

> Hi Mani,
>
>
> > Thanks for the explanation. Do you think it will help if I use a GPU
>
>> which is capable of doing double precision arithmetic?
>>
>
> Your GPU must be supporting double precision, otherwise the jit-compiler
> will fail. However, your GPU might emulate double precision arithmetics
> poorly.
>
>
>  I am using NVIDIA Quadra FX 1800 M. It has 1GB of global memory.
>>
>
> For production runs you definitely want to use a discrete GPU to get the
> benefits of higher bandwidth (through higher heat dissipation...)
>
>
>
>  Unfortunately NVIDIAs' visual profiler does not seem to work with its
>> OpenCL implementation. The code does not crash when I run it on the CPU
>> using Intels OpenCL.
>>
>
> Let me put it this way: This ridiculous move of taking OpenCL debugging
> capabilities out when releasing CUDA 5.0 is not based on scientific
> reasoning...
>
>
>
>  I mean't to say that the code does not crash either with
>> ComputeResidualViennaCL or ComputeResidual with the normal Petsc
>> Vec/Mats but does indeed crash when either of them are used with the
>> ViennaCL vecs.
>>
>
> I'm wondering how ComputeResidualViennaCL will work if the vector type is
> not AIJVIENNACL?
>
>
>  Do you think there is memory allocation at every time
>> step? I thought all the memory would be allocated during initialization.
>>
>
> From your description a memory allocation seems to be the case, yes, but I
> still need to verify this. Did you see a similar increase in memory
> consumption (use e.g. top) with Intel's OpenCL SDK?
>
> Best regards,
> Karli
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20140128/18047623/attachment.html>


More information about the petsc-dev mailing list