This manual describes the use of ViennaCL and consists of multiple parts:
| Introduction | Provides a first overview of ViennaCL | 
| Installation | How to build the examples and benchmarks in ViennaCL | 
| Basic Types | Description of the basic types in ViennaCL | 
| Basic Operations | Description of the basic operations available | 
| Algorithms | Discusses the use of the various algorithms available | 
| Interfacing Other Libraries | Using ViennaCL with other libraries such as Boost.uBLAS, Eigen, or MTL4 | 
| Memory Model | Explains the memory model used in ViennaCL | 
| Shared Library | How to use ViennaCL as a shared library from programming languages other than C++ | 
| Additional Algorithms (Unstable) | Explains backend-specific (unstable) algorithms in ViennaCL | 
| User-Provided OpenCL Contexts | How to provide your own OpenCL context for use with ViennaCL | 
| Configuring OpenCL Contexts and Devices | How to use multiple compute devices concurrently with ViennaCL | 
| Custom OpenCL Compute Kernels | Shows how to use your own compute kernels in CUDA or OpenCL with ViennaCL | 
| Structured Matrix Types | Describes the structured matrices and associated operations available for the OpenCL backend | 
| Design Decisions | Explains certain design decisions in ViennaCL | 
| Authors and Contributors | A list of authors and contributors to ViennaCL | 
| Versioning | Description of the basic types in ViennaCL | 
| Change Log | Lists the changes to ViennaCL in each release | 
| License | The permissive MIT/X11 license of ViennaCL |