Hi Toby,
>> Hmm, looks like you have a lot of (probably unnecessary) instantiations
>> in there. If you split up float and double precision (and probably the
>> same for integers), you should be able to reduce the required memory
>> accordingly. I can help you with that if needed.
>
> Thanks for having a look. Could you give an example of what you mean?
One example I use for the tests: Suppose you have a BIG function
template <typename NumericT>
void test_something(viennacl::vector<NumericT> x,
viennacl::vector<NumericT> y);
which you call with {float, double} and possibly integers. Instead of
compiling everything in the same translation unit test.cpp, you could
split that up into test_float.cpp and test_double.cpp, each of them just
calling one of the two possible instantiations:
test_float.cpp:
viennacl::vector<float> x;
...
test_something(x);
test_double.cpp:
viennacl::vector<double> x;
...
test_something(x);
In your case you just want to create a shared/static library, in which
case you just ultimately link the two together. You can also split
things up based on the operations, e.g. operations_sparse.cpp and
operations_dense.cpp in order to reduce the number of instantiations in
one compilation unit.
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/viennacl-devel