Hi all,

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, 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.

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.

(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.

(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.


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.

Best regards,

Toby


-- 
Toby St Clere Smithe
http://tsmithe.net


------------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/viennacl-devel

Reply via email to