Hey,

> I agree. However, it seems to me that setting the implementation for
> each matrix would end up being tedious... one table per memory backend
> since to make sense conceptually to me, since the performance (and the
> portability) of each blas implementation is determined by the underlying
> memory system. If there is no objection, I think I will go for that neat
> solution.

Yeah, it certainly is a bit tedious. Feel free to only do this for 
matrix-matrix multiplications for now, a full operation table is 
presumably too much of a refactoring for ViennaCL 1.x.y, but much better 
suited for 2.0.0.


> Now, another question, how to set the default? I think that a
> preprocessor directive would be fine here. We already need the
> preprocessor's #ifdef to define the includes (and some wrappers) anyway.
> So using it to initialize that table seems reasonable to me (ie
> VIENNACL_WITH_CBLAS would enable some internal definitions and would
> initialize the table).

Yes, that makes sense. The same is already done for the default backend: 
CUDA has priority over OpenCL, which has priority over the fall-back 
host implementation. The rationale is that the more specific an enabled 
backend is, the more likely it is that a user wants to use just that by 
default. This should equally well apply to a CBLAS interface.

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