Hi again, Toby St Clere Smithe <m...@tsmithe.net> writes: > Here's the example output from examples/iterative-solvers.py: > > Solution of Ax = b for x: > [ 0. 0. 0. ..., 0. 0. 0.] > Num. iterations: 0 > Estimated error: 6.94731371524e-310 > > If you want to test for yourself (please do!), just grab my pyviennacl > branch[1], build as usual, and then use a command like the following > (you don't need to `make install`): > > PYTHONPATH=build/build/lib.linux-x86_64-2.7 python > examples/iterative-solvers.py
I added a couple more print statements and turned on the debugging flags for ViennaCL, and now get the following output, if it helps to shed some light on what's going on. I'll now proceed to dive into the gmres source to try and figure things out! (Still baffled by Karl's compilation issues...) ViennaCL: Initializing new ViennaCL context. ViennaCL: Setting all devices for context... ViennaCL: Getting platform... ViennaCL: Querying devices available at current platform. ViennaCL: Found 1 devices. ViennaCL: Creating device object (CTOR with cl_device_id) ViennaCL: Creating device object (Copy CTOR) ViennaCL: Number of devices for context: 1 ViennaCL: Creating device object (Copy CTOR) ViennaCL: Initialization of new ViennaCL context done. ViennaCL: Creating device object (Copy CTOR) ViennaCL: Creating device object (Copy CTOR) ViennaCL: Adding new queue for device 0x15ec810 to context 0x1fe3c10 ViennaCL: Creating memory of size 260104 for context 0x1fe3c10 (unsafe, returning cl_mem directly) ViennaCL: Creating memory of size 1296420 for context 0x1fe3c10 (unsafe, returning cl_mem directly) ViennaCL: Creating memory of size 2592840 for context 0x1fe3c10 (unsafe, returning cl_mem directly) ViennaCL: Creating memory of size 260104 for context 0x1fe3c10 (unsafe, returning cl_mem directly) ViennaCL: Creating memory of size 1296420 for context 0x1fe3c10 (unsafe, returning cl_mem directly) ViennaCL: Creating memory of size 2592840 for context 0x1fe3c10 (unsafe, returning cl_mem directly) Loaded system matrix ViennaCL: Creating memory of size 521216 for context 0x1fe3c10 (unsafe, returning cl_mem directly) ViennaCL: Adding program 'double_vector' to context 0x1fe3c10 ViennaCL: Creating kernel object (full CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (full CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (full CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (full CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (full CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (full CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (full CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (full CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (full CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (full CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (full CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (full CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (full CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (full CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (full CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (full CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (full CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Creating kernel object (Copy CTOR) ViennaCL: Getting program 'double_vector' from context 0x1fe3c10 ViennaCL: Setting global work size to 16384 at index 0 for kernel assign_cpu ViennaCL: Setting handle kernel argument 0x52f8900 at pos 0 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 0 at pos 1 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 1 at pos 2 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 65152 at pos 3 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 65152 at pos 4 for kernel assign_cpu ViennaCL: Setting double precision kernel argument 0 at pos 5 for kernel assign_cpu ViennaCL: Starting 1D-kernel 'assign_cpu'... ViennaCL: Global work size: '16384'... ViennaCL: Local work size: '128'... ViennaCL: Kernel assign_cpu finished! Loaded RHS vector ViennaCL: Creating memory of size 1024 for context 0x1fe3c10 (unsafe, returning cl_mem directly) ViennaCL: Getting program 'double_vector' from context 0x1fe3c10 ViennaCL: Setting global work size to 128 at index 0 for kernel assign_cpu ViennaCL: Setting handle kernel argument 0x52fdce0 at pos 0 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 0 at pos 1 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 1 at pos 2 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 128 at pos 3 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 128 at pos 4 for kernel assign_cpu ViennaCL: Setting double precision kernel argument 0 at pos 5 for kernel assign_cpu ViennaCL: Starting 1D-kernel 'assign_cpu'... ViennaCL: Global work size: '128'... ViennaCL: Local work size: '128'... ViennaCL: Kernel assign_cpu finished! ViennaCL: Getting program 'double_vector' from context 0x1fe3c10 ViennaCL: Setting handle kernel argument 0x52f8900 at pos 0 for kernel norm ViennaCL: Setting unsigned int kernel argument 0 at pos 1 for kernel norm ViennaCL: Setting unsigned int kernel argument 1 at pos 2 for kernel norm ViennaCL: Setting unsigned int kernel argument 65025 at pos 3 for kernel norm ViennaCL: Setting unsigned int kernel argument 2 at pos 4 for kernel norm ViennaCL: Setting local memory kernel argument of size 1024 bytes at pos 5 for kernel norm ViennaCL: Setting handle kernel argument 0x52fdce0 at pos 6 for kernel norm ViennaCL: Starting 1D-kernel 'norm'... ViennaCL: Global work size: '16384'... ViennaCL: Local work size: '128'... ViennaCL: Kernel norm finished! ViennaCL: Creating memory of size 521216 for context 0x1fe3c10 (unsafe, returning cl_mem directly) ViennaCL: Getting program 'double_vector' from context 0x1fe3c10 ViennaCL: Setting global work size to 16384 at index 0 for kernel assign_cpu ViennaCL: Setting handle kernel argument 0x52fdf10 at pos 0 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 0 at pos 1 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 1 at pos 2 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 65152 at pos 3 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 65152 at pos 4 for kernel assign_cpu ViennaCL: Setting double precision kernel argument 0 at pos 5 for kernel assign_cpu ViennaCL: Starting 1D-kernel 'assign_cpu'... ViennaCL: Global work size: '16384'... ViennaCL: Local work size: '128'... ViennaCL: Kernel assign_cpu finished! ViennaCL: Getting program 'double_vector' from context 0x1fe3c10 ViennaCL: Setting global work size to 16384 at index 0 for kernel av_cpu ViennaCL: Setting handle kernel argument 0x52fdf10 at pos 0 for kernel av_cpu ViennaCL: Setting packed_cl_uint kernel argument (0, 1, 65025, 65152) at pos 1 for kernel av_cpu ViennaCL: Setting double precision kernel argument 1 at pos 2 for kernel av_cpu ViennaCL: Setting unsigned int kernel argument 0 at pos 3 for kernel av_cpu ViennaCL: Setting handle kernel argument 0x52f8900 at pos 4 for kernel av_cpu ViennaCL: Setting packed_cl_uint kernel argument (0, 1, 65025, 65152) at pos 5 for kernel av_cpu ViennaCL: Starting 1D-kernel 'av_cpu'... ViennaCL: Global work size: '16384'... ViennaCL: Local work size: '128'... ViennaCL: Kernel av_cpu finished! ViennaCL: Creating memory of size 521216 for context 0x1fe3c10 (unsafe, returning cl_mem directly) ViennaCL: Getting program 'double_vector' from context 0x1fe3c10 ViennaCL: Setting global work size to 16384 at index 0 for kernel assign_cpu ViennaCL: Setting handle kernel argument 0x52fc800 at pos 0 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 0 at pos 1 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 1 at pos 2 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 65152 at pos 3 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 65152 at pos 4 for kernel assign_cpu ViennaCL: Setting double precision kernel argument 0 at pos 5 for kernel assign_cpu ViennaCL: Starting 1D-kernel 'assign_cpu'... ViennaCL: Global work size: '16384'... ViennaCL: Local work size: '128'... ViennaCL: Kernel assign_cpu finished! ViennaCL: Getting program 'double_vector' from context 0x1fe3c10 ViennaCL: Setting global work size to 16384 at index 0 for kernel av_cpu ViennaCL: Setting handle kernel argument 0x52fc800 at pos 0 for kernel av_cpu ViennaCL: Setting packed_cl_uint kernel argument (0, 1, 65025, 65152) at pos 1 for kernel av_cpu ViennaCL: Setting double precision kernel argument 1 at pos 2 for kernel av_cpu ViennaCL: Setting unsigned int kernel argument 0 at pos 3 for kernel av_cpu ViennaCL: Setting handle kernel argument 0x52fdf10 at pos 4 for kernel av_cpu ViennaCL: Setting packed_cl_uint kernel argument (0, 1, 65025, 65152) at pos 5 for kernel av_cpu ViennaCL: Starting 1D-kernel 'av_cpu'... ViennaCL: Global work size: '16384'... ViennaCL: Local work size: '128'... ViennaCL: Kernel av_cpu finished! Solution of Ax = b for x: [ 0. 0. 0. ..., 0. 0. 0.] Num. iterations: 0 Estimated error: 6.90497471208e-310 Cheers, Toby ------------------------------------------------------------------------------ Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk _______________________________________________ ViennaCL-devel mailing list ViennaCL-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/viennacl-devel