Hi,
2013/12/15 Karl Rupp <r...@iue.tuwien.ac.at>
> 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.
Yes. It's actually a pretty complicated problem, because of the different
signatures of the different BLAS functions... It seems like the cleanest
way to do it would be using std::function<>, and std::bind<>, which may
indeed be widely available at the time ViennaCL 2.0.0 comes out. I hadn't
seen this coming.
Wouldn't a classic preprocessor directive but with better BLAS support (as
I have it implemented now : cpy, swap, asum, norm2, gemv, gemm) be more
interesting feature-wise than a dynamic gemm only dispatch, in the end?
Plus, it seems like the dynamic dispatch will be much more interesting in
the context of ViennaCL 2.0.0 where more things will be dynamic, with
possibly already kernel-dispatch for the generator based on the input sizes
(I'm thinking about it)...
Best regards,
Philippe
>
>
>
> 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