Boost logo

Ublas :

Subject: Re: [ublas] Announcement of ViennaCL (linear algebra on GPUs)
From: Karl Rupp (rupp_at_[hidden])
Date: 2010-06-07 15:52:16


Dear Riccardo,

> Awesome!

Thanks :-)

> Dear Karl, i will definitely give a try to your library and ... diffuse
> it as much as i can.

yeah, even though it looks weired, but the less you need to know about
anything specific of ViennaCL, the better it is, because it should
integrate as seamlessly as possible into ublas :-)

> Could you comment a little more about ATI's double support on GPU? ...
> is it completely out of question for the moment?

Sure. The thing with ATI cards is documented here:
http://developer.amd.com/support/KnowledgeBase/Lists/KnowledgeBase/DispForm.aspx?ID=88
ViennaCL queries the OpenCL extensions of the GPU. If it is a standard
compliant double precision extension, it should provide 'cl_khr_fp64',
which is the case for newer NVidia GPUs. ATI GPUs, however, only provide
'cl_amd_fp64', which is a subset of the double precision extension.

Our idea then was to query the 'cl_amd_fp64' string on ATI GPUs, which
got most of the things running in double precision on our sample HD
5850. However, some compute kernels suddenly returned wrong results when
started in double precision (I remember plane_rotation and norm_inf), so
that we decided to turn the double precision feature off on ATI cards in
the meanwhile. As far as I remember, the iterative solvers worked fine
on ATI GPUs, but the overhead for enqueuing compute kernels is larger
than for NVidia cards. This can be seen in the benchmarks for single
precision at http://viennacl.sourceforge.net/index.php%3Fid=11.html :
For trivial operations such as vector addition, ATI GPUs show really
good performance, but for more complex kernels the performance falls
behind NVidia GPUs and is only slightly better than for the CPU with the
conjugate gradient solver - things are likely to be worse in double
precision.

> In any case ... great job!

Many thanks! :-)

Best regards,
Karli