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