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