From: Charles D. <cde...@gm...> - 2016-08-17 20:14:38
|
Thanks for explanation Karl, Running again and printing the cl_mem objects (from opencl_handle().get()) it appears that the relevant addresses (last three lines) are being used in multiple areas such as 'Writing data'. ViennaCL: Initializing context no. 1 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 0x354a910 to context 0x9e13440 ViennaCL: Context no. 1 initialized with 1 devices ViennaCL: Device id: 0x354a910 ViennaCL: Creating memory of size 131072 for context 0x9e13440 (unsafe, returning cl_mem directly) ViennaCL: Adding program 'double_matrix_row' with source to context 0x9e13440 ViennaCL: Creating kernel object (full CTOR): assign_cpu ViennaCL: Creating kernel object (full CTOR): ambm_cpu_cpu ViennaCL: Creating kernel object (full CTOR): vec_mul ViennaCL: Creating kernel object (full CTOR): ambm_m_cpu_cpu ViennaCL: Creating kernel object (full CTOR): ambm_m_gpu_cpu ViennaCL: Creating kernel object (full CTOR): am_cpu ViennaCL: Creating kernel object (full CTOR): element_op ViennaCL: Creating kernel object (full CTOR): ambm_gpu_cpu ViennaCL: Creating kernel object (full CTOR): ambm_m_gpu_gpu ViennaCL: Creating kernel object (full CTOR): am_gpu ViennaCL: Creating kernel object (full CTOR): trans_vec_mul ViennaCL: Creating kernel object (full CTOR): ambm_gpu_gpu ViennaCL: Creating kernel object (full CTOR): diagonal_assign_cpu ViennaCL: Creating kernel object (full CTOR): ambm_cpu_gpu ViennaCL: Creating kernel object (full CTOR): ambm_m_cpu_gpu ViennaCL: Stored program 'double_matrix_row' in context 0x9e13440 ViennaCL: There is/are 1 program(s) ViennaCL: Getting program 'double_matrix_row' from context 0x9e13440 ViennaCL: There are 1 programs ViennaCL: Setting handle kernel argument 0xa84df00 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 0 at pos 2 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 1 at pos 3 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 1 at pos 4 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 128 at pos 5 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 128 at pos 6 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 128 at pos 7 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 128 at pos 8 for kernel assign_cpu ViennaCL: Setting double precision kernel argument 0 at pos 9 for kernel assign_cpu ViennaCL: Getting const queue for device GeForce GTX 970 in context 0x9e13440 ViennaCL: Current queue id 0 ViennaCL: Queue handle 0xa84d890 ViennaCL: Starting 1D-kernel 'assign_cpu'... ViennaCL: Global work size: '16384'... ViennaCL: Local work size: '128'... ViennaCL: Kernel assign_cpu finished with status 0! ViennaCL: Getting queue for device GeForce GTX 970 in context 0x9e13440 ViennaCL: Current queue id 0 Writing data (131072 bytes, offset 0) to OpenCL buffer 0xa84df00 with queue 0xa84d890 from 0xa9b0e10 ViennaCL: Getting queue for device GeForce GTX 970 in context 0x9e13440 ViennaCL: Current queue id 0 ViennaCL: Creating memory of size 131072 for context 0x9e13440 (unsafe, returning cl_mem directly) ViennaCL: Getting program 'double_matrix_row' from context 0x9e13440 ViennaCL: There are 1 programs ViennaCL: Setting handle kernel argument 0xa8b4c40 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 0 at pos 2 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 1 at pos 3 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 1 at pos 4 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 128 at pos 5 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 128 at pos 6 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 128 at pos 7 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 128 at pos 8 for kernel assign_cpu ViennaCL: Setting double precision kernel argument 0 at pos 9 for kernel assign_cpu ViennaCL: Getting const queue for device GeForce GTX 970 in context 0x9e13440 ViennaCL: Current queue id 0 ViennaCL: Queue handle 0xa84d890 ViennaCL: Starting 1D-kernel 'assign_cpu'... ViennaCL: Global work size: '16384'... ViennaCL: Local work size: '128'... ViennaCL: Kernel assign_cpu finished with status 0! ViennaCL: Getting queue for device GeForce GTX 970 in context 0x9e13440 ViennaCL: Current queue id 0 Writing data (131072 bytes, offset 0) to OpenCL buffer 0xa8b4c40 with queue 0xa84d890 from 0xa9b0e10 ViennaCL: Getting queue for device GeForce GTX 970 in context 0x9e13440 ViennaCL: Current queue id 0 ViennaCL: Creating memory of size 131072 for context 0x9e13440 (unsafe, returning cl_mem directly) ViennaCL: Getting program 'double_matrix_row' from context 0x9e13440 ViennaCL: There are 1 programs ViennaCL: Setting handle kernel argument 0xa8b5990 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 0 at pos 2 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 1 at pos 3 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 1 at pos 4 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 128 at pos 5 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 128 at pos 6 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 128 at pos 7 for kernel assign_cpu ViennaCL: Setting unsigned int kernel argument 128 at pos 8 for kernel assign_cpu ViennaCL: Setting double precision kernel argument 0 at pos 9 for kernel assign_cpu ViennaCL: Getting const queue for device GeForce GTX 970 in context 0x9e13440 ViennaCL: Current queue id 0 ViennaCL: Queue handle 0xa84d890 ViennaCL: Starting 1D-kernel 'assign_cpu'... ViennaCL: Global work size: '16384'... ViennaCL: Local work size: '128'... ViennaCL: Kernel assign_cpu finished with status 0! ViennaCL: Getting queue for device GeForce GTX 970 in context 0x9e13440 ViennaCL: Current queue id 0 Writing data (131072 bytes, offset 0) to OpenCL buffer 0xa8b5990 with queue 0xa84d890 from 0xa9b0e10 ViennaCL: Getting queue for device GeForce GTX 970 in context 0x9e13440 ViennaCL: Current queue id 0 ViennaCL: Getting current_context with id 0 ViennaCL: Getting queue for device GeForce GTX 970 in context 0x6bd5340 ViennaCL: Current queue id 0 trying dgemm 0xa84df00 0xa8b4c40 0xa8b5990 On Wed, Aug 17, 2016 at 3:04 PM, Karl Rupp <ru...@iu...> wrote: > Hi Charles, > > There is a fair amount of output, hopefully something here provides a >> clue that you can understand. >> > > Ok, so let me explain the relevant messages: > > ViennaCL: Setting handle kernel argument 0xbac6690 at pos 0 for kernel >> assign_cpu >> > (...) > >> ViennaCL: Setting handle kernel argument 0xbb2d3d0 at pos 0 for kernel >> assign_cpu >> > (...) > >> ViennaCL: Setting handle kernel argument 0xbb2e120 at pos 0 for kernel >> assign_cpu >> > > The buffers 0xbac6690, 0xbb2d3d0, and 0xbb2e120 (of type cl_mem) are the > relevant matrix buffers for clMAGMA. These are the ones you should pass the > the GEMM routines. You can verify that by printing the values of 'bufA' and > the like. > > (Of course the buffer addresses change in each run) > > Best regards, > Karli > > |