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/ >
