[petsc-dev] ViennaCL-bindings in next

Karl Rupp rupp at mcs.anl.gov
Sun Mar 24 20:30:16 CDT 2013


Hi Dave,

 > I'm very interested in trying out your new ViennaCL interface in the near
> future.  Looking at the documentation of ViennaCL online, it looks like there
> are preconditioners available within ViennaCL.  Are there plans to provide
> petsc interfaces to the ViennaCL preconditioners in the near future?

Yes, there are a few preconditioners in ViennaCL already, most of them 
using the CPU for the setup phase. I'm planning to make them available 
in PETSc as well, plus adding more GPU-based preconditioners. Stay tuned :-)

Best regards,
Karli


>
> Karl Rupp writes:
>   > Hi,
>   >
>   > the interface to ViennaCL [1] has just been merged to 'next', enabling
>   > PETSc to use OpenCL-enabled devices (most notably Intel's Xeon Phi and
>   > GPUs from AMD in addition to the existing NVIDIA bindings). I tested it
>   > with Vector-, Matrix-, and KSP- examples.
>   >
>   > The new bindings are enabled by the configure flags
>   > --download-viennacl
>   > --with-opencl-include=/path/to/OpenCL-Headers
>   > --with-opencl-lib=/path/to/libOpenCL.so
>   >
>   > The OpenCL headers can be obtained on the Khronos webpage [2] and are
>   > often available via package managers, e.g.
>   > $> sudo apt-get install opencl-headers
>   > or
>   > $> sudo yam install opencl-headers
>   > In such case, the OpenCL include directory is typically /usr/include
>   > (BuildSystem may not detect these headers correctly on Mac OS, I'm
>   > working on this). The OpenCL library comes with your graphics driver and
>   > is usually located at /usr/lib/. There is no separate compiler as for
>   > CUDA needed!
>   >
>   > FAQ:
>   >
>   > - What is the performance difference between OpenCL and CUDA for GPUs?
>   > My experience is that for large problem sizes they are equivalent for
>   > almost all linear algebra kernels. For small problem sizes (kernel
>   > execution less than 1ms), CUDA is currently superior because of lower
>   > latency.
>   >
>   > - Which solvers can I use with the ViennaCL-bindings?
>   > The same as with CUSP. Most notably the usual CG, BiCGS, GMRES.
>   >
>   > - Which preconditioners are provided in the ViennaCL-bindings?
>   > Currently none. You can, however, use all the standard CPU-based
>   > preconditioners in PETSc together with ViennaCL matrices and vectors.
>   >
>   > - Which command line options do I need to use?
>   > Use -vec_type viennacl -mat_type aijviennacl
>   > On Intel's Xeon Phi you also need to pass -viennacl_device_accelerator.
>   > (If you read this email in an archive: Check the manual for current flags).
>   >
>   > Best regards,
>   > Karli
>   >
>   > [1] http://viennacl.sourceforge.net/
>   > [2] http://www.khronos.org/registry/cl/
>




More information about the petsc-dev mailing list