Hey Albert,

Concerning the performance of OpenCL on CPUs, I think that you may have bad
surprises. We did get similar results as the MKL on one architecture for a
square-matrix multiplication. This is not something I would advise for
practical use at the moment. However, in the future, there's imho a big
potential for auto-tuned OpenCL on CPUs (we were also able to beat the MKL
on GEMV for big square matrices). If you really want extreme performance at
the cost of convenience/maintainability, I would personnally advise you
(from my own experience) to use OpenBlas on the raw pointers (which you can
get using ViennaCL) for GEMM at the moment (and to keep the ViennaCL
implementations for all the other operations).

I'll try to find some time this week-end to add this cblas-linking
functionnality ( since this is also very much like what I need :) )

Best regards,
Philippe


2013/12/12 Karl Rupp <r...@iue.tuwien.ac.at>

> Hey,
>
>
> > This sounds very much like what I need right now. :)
>
> Hmm, too bad we don't have it yet...
>
>
>
>  About running OpenCL on the CPU: I'm not really experienced with
>> OpenCL yet. Do I need some additional extra flags so that it uses the
>> CPU? What performance could I expect? Esp., can I expect better
>> performance than the straightforward single-thread implementation of
>> matrix-matrix multiplication?
>>
>
> We managed to get pretty close to the performance of Intel's MKL, but this
> also depends on the OpenCL SDK in use.
>
>
>
>  I just tried VIENNACL_WITH_OPENCL and I get the exception
>> invalid_buffer_size as written in my other mail. So I guess my matrix
>> is too big for OpenCL? If OpenCL is using the CPU, how can that be?
>> (Because without OpenCL, the code works fine.)
>>
>
> By default it is using the GPU. You can select the CPU via
>   viennacl::ocl::set_context_device_type(0, viennacl::ocl::cpu_tag());
> (see here for explicitly selecting GPUs: https://github.com/viennacl/
> viennacl-dev/blob/master/examples/benchmarks/blas3.cpp#L83 as well as
> chapter "Configuring OpenCL Contexts and Devices" in the manual)
>
> The viennacl-info example (make vienncl-info && 
> examples/tutorial/viennacl-info)
> prints all available devices to screen if you're unsure about your OpenCL
> devices.
>
> Best regards,
> Karli
>
>
------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel

Reply via email to