Hi Toby, > I'm busy converting the PyViennaCL test suite from my quickly hacked > solution from last year to pytest. At the moment, with all the > combinations of row/col-major, slice/range, trans, float/double, etc > etc, I've got 10382 tests. I've covered all the ViennaCL functionality > that's currently implemented in PyViennaCL,
Great, this is a fairly extensive test set :-) > except: sparse matrices, > iterative solvers, preconditioners, and eigenvalues. These bits will > hopefully arrive in the next few days, after which I'll finish the > PyViennaCL interfaces for the remaining bits of missing API. I'll work on improving the iterative solvers in the next couple of days, so if something behaves weird, please let me know. Also, we have two summer students who reworked (and fixed) large parts of the eigenvalue routines for symmetric dense matrices and extended this to all three backends. I can merge these some time in August. > Now, of those 10382 tests, 312 are currently failing. These failures > relate to just three operations: > > 1) A += trans(B); > 2) elementwise_pow; > 3) solving A \ b with b being a vector range or slice. > > (3) just gives numerically wrong results, which I suspect means that > vector ranges aren't being handled correctly somewhere. I haven't > investigated very strongly, but note that matrix ranges and slices (for > A \ B) work fine. I thought there are tests for these, but maybe this was missed. I can check that, shouldn't be a big deal. > (2) fails with "ViennaCL: Internal error: The scheduler encountered a > problem with the operation provided: Unsupported binary operator", so > that's probably not implemented in the scheduler yet. I'm using > operation_node_type.OPERATION_BINARY_ELEMENT_POW_TYPE. Sounds indeed just like this was not registered in the scheduler. I'll fix this. > (1) is most interesting. I mentioned it to Philippe, and he noticed that > the matrix_float_double tests in ViennaCL don't cover trans or > operations on trans objects. Importantly, I don't get a bug if I do > > B_trans = trans(B); > A += B_trans > > instead of > > A += trans(B). > > When I tried to add a C++ test of this form to matrix_float_double.hpp, > I get the compilation error > > ‘apply’ is not a member of > ‘viennacl::linalg::detail::op_executor<viennacl::matrix_base<float>, > viennacl::op_inplace_add, viennacl::matrix_expression<const > viennacl::matrix_base<float>, const viennacl::matrix_base<float>, > viennacl::op_trans> >’ > > which suggests that this is just a missing bit of API, and so I > shouldn't expect A += trans(B) to work yet. Ah, this is apparently not working correctly. It should be supported API-wise, even though trans() is currently fairly poor in terms of performance. Again, I'll fix this soon. > Nonetheless, this is good news! The large majority of tests pass, and > the code implementing those bits of API should be fairly stable > now. Eventually, we should be able to treat the PyViennaCL test suite as > an exhaustive secondary test suite for the core -- and these results > show that we're getting there. Once the last bits are implemented, we > should hook the PyViennaCL test suite up to some automated nightly > testing apparatus; I'll talk to Andreas about that nearer the time. You can hook the tests into our CDash (http://viennastar.iue.tuwien.ac.at/CDash/index.php?project=ViennaCL) if this is possible from your testing environment. As an alternative, I don't think it is a big problem to set up a different dashboard system on either the same machine or somewhere else. Most important is that these tests are run on multiple machines on a nightly basis and automatically report failures. Btw: Did you run these tests on krupp2 tonight? I see strange test failures for which I don't have any explanation other than that the machine was temporarily overloaded. Best regards, Karli ------------------------------------------------------------------------------ Infragistics Professional Build stunning WinForms apps today! Reboot your WinForms applications with our WinForms controls. Build a bridge from your legacy apps to the future. http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk _______________________________________________ ViennaCL-devel mailing list ViennaCL-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/viennacl-devel