In order to open up ViennaCL to other languages such as C, FORTRAN, or Python, a shared library is under development in the subfolder libviennacl/
. Currently the different BLAS backends for dense linear algebra are available. Sparse linear algebra, iterative solvers, etc. will follow in future releases.
The design and calling conventions are very similar to vendor BLAS libraries. All functions are prefixed 'ViennaCL'. The three backends provide their functionality through functions prefixed ViennaCLCUDA
, ViennaCLOpenCL
, and ViennaCLHost
, respectively. Since we consider the standard BLAS interface rather tedious and error-prone, an additional object-oriented interface is provided as well.
Have a look at examples/tutorial/libviennacl.cpp
as well as the tests located at tests/src/libviennacl*
to get an impression on how to use these methods. Also, all callable functions in the shared library are listed in the public include file libviennacl/include/viennacl.hpp
. Additional documentation will be added incrementally.