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
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel

Reply via email to