Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
20 Views

Eclipse Code Builder - kernel arguments and configuration locked

Jump to solution

Hello,

I 'm currently trying to deploy Intel OpenCL on the GPU of my Intel(R) Xeon(R) CPU E3-1505M v5 @ 2.80GHz on Centos 7.1. My configuration is :

- intel_sdk_for_opencl_2016_6.3.0.1904_x64.tgz

- driver r3.1.58620

- eclipse Oxygen, jre-8u111-linux-x64, mono-4.0.1-4.x86_64

I'm following the Code Builder tutorial. Every thing works fine until this step : https://software.intel.com/en-us/node/671857

When I try to launch the kernel, I have an error message telling me that the buffers are not assigned:

execution analysis error: No variable assigned to kernel argument #0 (ptrInput)

So I go to the OpenCL Kernel Analysis Input view and the configuration as well as the assigned variables are all in grey. I cannot click on the configuration and the kernel variables fields are empty.

Can you please help me ?

Regards,

Mathieu

Here are the buffers I have declared :

<!--  Kernel Builder Variables Database  -->
<KernelBuilderBuffers>
    <BufferDetails>
        <Name>ptrInput</Name>
        <DataType>uchar</DataType>
        <MemoryFlags>CL_MEM_READ_WRITE</MemoryFlags>
        <AccessQualifier>READ_ONLY</AccessQualifier>
        <I_O_Mode>0</I_O_Mode>
        <Source>/home/user/STI/THOREL/workspace_eclipse/Code Builder Sessions/session_0/bin_ptrInput.bin</Source>
        <ReadOutput>true</ReadOutput>
        <BufferSize>262144</BufferSize>
        <InitByRandom>false</InitByRandom>
        <InitByZero>true</InitByZero>
        <UseAsSVM>false</UseAsSVM>
    </BufferDetails>
    <BufferDetails>
        <Name>ptrOutput</Name>
        <DataType>uchar</DataType>
        <MemoryFlags>CL_MEM_READ_WRITE</MemoryFlags>
        <AccessQualifier>READ_ONLY</AccessQualifier>
        <I_O_Mode>1</I_O_Mode>
        <Source></Source>
        <ReadOutput>true</ReadOutput>
        <BufferSize>262144</BufferSize>
        <InitByRandom>false</InitByRandom>
        <InitByZero>false</InitByZero>
        <UseAsSVM>false</UseAsSVM>
    </BufferDetails>
</KernelBuilderBuffers>

<KernelBuilderImages/>

<KernelBuilderSamplers/>

 

The kernel is :

 

#define FILTER_WIDTH ( 11 )
#define FILTER_SIZE  ( FILTER_WIDTH * FILTER_WIDTH )
#define FILTER_INF   ( 5 ) // Need to be calculated -> floor( FILTER_WIDTH / 2 )

__kernel void convolve_no_local( const __global unsigned char * restrict ptrInput,
                                       __global unsigned char * restrict ptrOutput,
                                 const          int                      iWidth,
                                 const          int                      iHeight )
{
    // Must be normalized
    const int arrFilter[ FILTER_SIZE ] = { -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,  0,
                                           -2, -2, -2, -2, -2, -2, -2, -2, -2,  0,  2,
                                           -2, -2, -2, -2, -2, -2, -2, -2,  0,  2,  2,
                                           -2, -2, -2, -2, -2, -2, -2,  0,  2,  2,  2,
                                           -2, -2, -2, -2, -2, -2,  0,  2,  2,  2,  2,
                                           -2, -2, -2, -2, -2,  0,  2,  2,  2,  2,  2,
                                           -2, -2, -2, -2,  0,  2,  2,  2,  2,  2,  2,
                                           -2, -2, -2,  0,  2,  2,  2,  2,  2,  2,  2,
                                           -2, -2,  0,  2,  2,  2,  2,  2,  2,  2,  2,
                                           -2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,
                                            0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2 };
    
    const int iWorkGlobalX = get_global_id( 0 );
    const int iWorkGlobalY = get_global_id( 1 );
    
    if( iWorkGlobalX >= FILTER_INF && iWorkGlobalX < iWidth  - FILTER_INF &&
        iWorkGlobalY >= FILTER_INF && iWorkGlobalY < iHeight - FILTER_INF )
    {
        const int iInputX = ( iWorkGlobalX - FILTER_INF );
        const int iInputY = ( iWorkGlobalY - FILTER_INF );
        
        int iInput;
        int iValue = 0;
        
#ifdef __UNROLL_3x3__
        iInput = iInputX + iInputY * iWidth;
        iValue = iValue + ( arrFilter[ 0 ] * convert_int( ptrInput[ iInput     ] ));
        iValue = iValue + ( arrFilter[ 1 ] * convert_int( ptrInput[ iInput + 1 ] ));
        iValue = iValue + ( arrFilter[ 2 ] * convert_int( ptrInput[ iInput + 2 ] ));
        iInput = iInput + iWidth;
        iValue = iValue + ( arrFilter[ 3 ] * convert_int( ptrInput[ iInput     ] ));
        iValue = iValue + ( arrFilter[ 4 ] * convert_int( ptrInput[ iInput + 1 ] ));
        iValue = iValue + ( arrFilter[ 5 ] * convert_int( ptrInput[ iInput + 2 ] ));
        iInput = iInput + iWidth;
        iValue = iValue + ( arrFilter[ 6 ] * convert_int( ptrInput[ iInput     ] ));
        iValue = iValue + ( arrFilter[ 7 ] * convert_int( ptrInput[ iInput + 1 ] ));
        iValue = iValue + ( arrFilter[ 8 ] * convert_int( ptrInput[ iInput + 2 ] ));
#else
        int iRow;
        int iCol;
        int iFilter = 0;
        
        for( iRow = 0 ; iRow < FILTER_WIDTH ; iRow++ )
        {
            iInput = iInputX + ( iInputY + iRow ) * iWidth;

            for( iCol = 0 ; iCol < FILTER_WIDTH ; iCol++ )
            {
                iValue = iValue + ( arrFilter[ iFilter ] * convert_int( ptrInput[ iInput ] ));

                iInput++;
                iFilter++;
            }
        }
#endif  
        ptrOutput[ iWorkGlobalX + iWorkGlobalY * iWidth ] = convert_uchar_sat( iValue );
    }
}

 

Here are the view screeshots :

1.png      2.png

3.png     4.png    

0 Kudos

Accepted Solutions
Highlighted
20 Views

The only Eclipse versions supported right now are Mars and Luna.  (See https://software.intel.com/en-us/intel-opencl). ; According to Eclipse, Oxygen is not due to be released until June 2017.   Is there any chance you could try one of these earlier supported versions of Eclipse?

View solution in original post

0 Kudos
3 Replies
Highlighted
21 Views

The only Eclipse versions supported right now are Mars and Luna.  (See https://software.intel.com/en-us/intel-opencl). ; According to Eclipse, Oxygen is not due to be released until June 2017.   Is there any chance you could try one of these earlier supported versions of Eclipse?

View solution in original post

0 Kudos
Highlighted
Beginner
20 Views

Hello,

As you mentioned I installed Eclipse Mars.2 and it works even if sometimes the OpenCL Kernel Analysis Input view crash. Thank you Jeffrey.

I can now select the buffers and launch the kernel. However, the firefox (version 51 and 38) html report page is empty. An error message is displayed: "Error: can not find main menu data". So I manually opened the main.js file where it comes from ans it appears that the file '/data/mainMenu.ajax' is missing.

I think it should be generated during the execution. You will find attach to this message the output of the execution : 20161220111137.zip

Can you please help me with this

Regards,

Mathieu

 

 

 

 

 

 

0 Kudos
Highlighted
20 Views

I've been able to reproduce similar behavior.  A bug has been filed.  Thanks for your helpful input on this.

0 Kudos