Hi!

This has been a nightmare to make the opencl kernels device-specific. I'm
facing a dependency problem which traits cannot solve. The reason is the
following:

-> The kernel generator requires some traits (row_major(), size(),
internal_size2(), etc.)
-> The generator is now included in linalg/opencl/kernels/vector.hpp, hence
it is included from viennacl/vector.hpp
-> There is no dependency between vector.hpp and matrix.hpp, which is a
very good thing.

Considering all these informations, vector-only files such as
vector_float_double-test-opencl will fail to compile because the generator
uses e.g. traits:row_major(), and matrix.hpp is not included (so
matrix_base is declared but not defined).

An extremly bad solution would be to have two versions of the generator
(one for vector-only statements, one for other). A better option would be
to split matrix.hpp into two files, one containing the definition of the
class only, to make the traits usable without having to include the whole
library.

What do you think about it?
------------------------------------------------------------------------------
The best possible search technologies are now affordable for all companies.
Download your FREE open source Enterprise Search Engine today!
Our experts will assist you in its installation for $59/mo, no commitment.
Test it for FREE on our Cloud platform anytime!
http://pubads.g.doubleclick.net/gampad/clk?id=145328191&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