Hi Toby, alright, finally some first testing experience. This is a bunch of very basic information, as I'm only now in the state where I can mimic a new PyViennaCL user ;-)
* Installation: Works nicely from the PPA, no problems with my Linux Mint Maya (based on Ubuntu 12.04, so this is expected). * Found the PyViennaCL documentation, but it was *not* installed automatically, but listed as 'suggested' package. I think this can be addressed in the installation instructions and does not require a change in behavior. * First Step: As a Python newbie, I had no real idea about what which commands to run. I started with import pyviennacl as p as usual, and then managed to create matrices as A = p.Matrix(5,5); B = p.Matrix(5,5); C = A + B; and even print the result print(C); (prints a 5x5 matrix consisting of zeros - good!) * Okay, so let's try to print individual elements of A and B: A(1,1); # error! A.item(1,1); # error! A[1,1]; # returns pyviennacl.pycore.HostScalar information print(A[1,1]); # works! Okay, this was a bit lengthy, we should have some more 'newbie information' in the docs :-) * Let's assign some elements: A[1,1].assign(2.0); # error: Cannot assign to HostScalar A[1,1] = 2.0; # same Here I searched the docs and found that it's not possible to assign stuff directly. Okay, so I created a numpy array (which I had to look up how to do that, of course ;-) ) and got: Drow = numpy.array([1, 2, 3, 4, 5]); D = numpy.array([Drow, Drow, Drow, Drow, Drow]); C = B + A; # error! Type conversion tricked me, A became a matrix of integers. Here I see the motivation for allowing mixed precision operations in ViennaCL asap... Alright, so restart with Drow = numpy.array([1.0, 2.0, 3.0, 4.0, 5.0]); D = numpy.array([Drow, Drow, Drow, Drow, Drow]); C = B + A; print(C); and voila! Cool! Okay, let's stop here for now. Summary: Great, simple operations just work nicely and it integrates well in the Python environment. What can be done to make the user experience even better? - Allow element-wise manipulation. Sure, this is terribly slow, but it helps a lot with prototyping, which is an important use case with Python. - Provide a few 'first steps' tutorials with the documentation. If that's already there and I simply couldn't find it, make it more visible. This way more emphasis is on the 'get simple stuff going' rather than internals of the scheduler which people won't read through for a start. - Ideally, each of the items in the linalg package has a short code snippet on how to call/use it. - Correct the version number in the 'PyViennaCL 1.5.0 documentation' string in the HTML docs. ;-) - Think about numeric type conversions. If a numpy-array of numeric type T1 is assigned to a PyViennaCL matrix of type T2, should the PyViennaCL matrix change to T1? Maybe issue a warning? Anyway, I think we are pretty close to a release here, I'll give the whole installation a try on Windows as well :-) Thanks and 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