Frequently Asked Questions
What is the benefit of computations on the GPU?
Modern GPUs are able to carry out much more floating point operations per second (FLOPs) than a single CPU, provided that the computation can be suitably parallelized. Moreover, the memory bandwidth of GPUs is approximately a factor of ten higher than for the CPU. For more detailed numbers, see the Benchmark pages.
Does ViennaCL support double precision?
Yes, ViennaCL supports double precision arithmetic. However, this may not be the case for your compute device. Older and/or cheaper graphics adapters tend to support only single precision arithmetics. If that is the case, consider buying a new one or give single precision arithmetics a try.
I have two GPUs in my computer. Will I get twice the computational speed than with a single GPU?
No. At present, the compute kernels in ViennaCL support one GPU at a time only. Since each GPU has its own memory, various difficulties arise. For example, if you have two vectors residing on different GPUs, how do you add these two? Copying one vector to the other GPU is an option, but not desired. On the other hand, having each vector stored on both GPUs requires proper synchronization. Since version 1.1.0, ViennaCL provides the mechanisms to compute on multiple devices, but synchronization and data management is left to the user.