<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>i.MX ProcessorsのトピックRe: OPENCL clBuildProgram fails with no return</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/OPENCL-clBuildProgram-fails-with-no-return/m-p/374577#M53661</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mauro&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;yes these may depend on libraries versions.&lt;/P&gt;&lt;P&gt;I am not familiar with Udoo distributions, suggest to post&lt;/P&gt;&lt;P&gt;on Udoo forum or meta-fsl-arm mailing list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;~igor&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 26 Dec 2014 00:44:01 GMT</pubDate>
    <dc:creator>igorpadykov</dc:creator>
    <dc:date>2014-12-26T00:44:01Z</dc:date>
    <item>
      <title>OPENCL clBuildProgram fails with no return</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OPENCL-clBuildProgram-fails-with-no-return/m-p/374574#M53658</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi to all, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a Udoo Quad board with the i.mx6Quad CPU and the Vivante GC2000 GPU. The OS is UDOObuntu, that essentially is an Ubuntu 12.04 based distro.&lt;/P&gt;&lt;P&gt;In CodeBlocks I'm trying to run a simple "helloWorld" OpenCL program. The program is built and the libraries are linked, but at runtime there is a strange error after calling "clBuildProgram".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The kernel computes a simple C=A+B vector sum:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14194305232931544" jivemacro_uid="_14194305232931544"&gt;
&lt;P&gt;&lt;SPAN style="color: #0000ff; font-family: courier new,courier;"&gt;__kernel void hello_kernel(__global const float *a,__global const float *b,__global float *result)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #0000ff; font-family: courier new,courier;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #0000ff; font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int gid = get_global_id(0);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #0000ff; font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result[gid] = a[gid] + b[gid];&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #0000ff; font-family: courier new,courier;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The C++ file is very simple. I'll show only the function that should create and build the CL program;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14194305087002169" jivemacro_uid="_14194305087002169" modifiedtitle="true"&gt;
&lt;P&gt;cl_program CreateProgram(cl_context context, cl_device_id device, const char* fileName)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cl_int errNum = -1000;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cl_program program;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::ifstream kernelFile(fileName, std::ios::in);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!kernelFile.is_open())&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::cerr &amp;lt;&amp;lt; "Failed to open file for reading: " &amp;lt;&amp;lt; fileName &amp;lt;&amp;lt; std::endl;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return NULL;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::ostringstream oss;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oss &amp;lt;&amp;lt; kernelFile.rdbuf();&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::string srcStdStr = oss.str();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; const char *srcStr = srcStdStr.c_str();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; program = clCreateProgramWithSource(context, 1,(const char**)&amp;amp;srcStr,NULL, NULL);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (program == NULL)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::cerr &amp;lt;&amp;lt; "Failed to create CL program from source." &amp;lt;&amp;lt; std::endl;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return NULL;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ///////////////////// ERROR IS HERE //////////////////////&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //errNum = clBuildProgram(program, 1, &amp;amp;device, "-cl-std=CL1.1 -w -cl-opt-disable", NULL, NULL);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errNum = clBuildProgram(program, 0, NULL, "", NULL, NULL);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch(...)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::cout&amp;lt;&amp;lt; __LINE__&amp;lt;&amp;lt;", "&amp;lt;&amp;lt;__FILE__&amp;lt;&amp;lt;": errNum="&amp;lt;&amp;lt;errNum&amp;lt;&amp;lt;std::endl;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::cout&amp;lt;&amp;lt; __LINE__&amp;lt;&amp;lt;", "&amp;lt;&amp;lt;__FILE__&amp;lt;&amp;lt;": errNum="&amp;lt;&amp;lt;errNum&amp;lt;&amp;lt;std::endl;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (errNum != CL_SUCCESS)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Determine the reason for the error&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; size_t logSize;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clGetProgramBuildInfo(program, device, CL_PROGRAM_BUILD_LOG,0, NULL, &amp;amp;logSize);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char* buildLog = new char[logSize];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clGetProgramBuildInfo(program, device, CL_PROGRAM_BUILD_LOG,sizeof(buildLog), buildLog, NULL);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::cerr &amp;lt;&amp;lt; "Error in kernel: " &amp;lt;&amp;lt; std::endl;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::cerr &amp;lt;&amp;lt; buildLog;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clReleaseProgram(program);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete[] buildLog;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return NULL;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return program;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Both the version in line 29 and the version in line 30 crash. The catch block is never reached, and the program exits immediately.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The compiler options are:&lt;/P&gt;&lt;P&gt;-march=native -fexceptions -DLINUX -DUSE_SOC_MX6 -Wall&amp;nbsp; -fsigned-char&amp;nbsp; -mfloat-abi=hard -mfpu=neon -DEGL_API_FB -DGPU_TYPE_VIV -DGL_GLEXT_PROTOTYPES -DENABLE_GPU_RENDER_20&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm linking glib2.0, OpenCL, GAL, CLC, dl and pthread. Also the linker has option -mfloat-abi=hard&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 24 Dec 2014 14:33:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OPENCL-clBuildProgram-fails-with-no-return/m-p/374574#M53658</guid>
      <dc:creator>mauromanzo</dc:creator>
      <dc:date>2014-12-24T14:33:47Z</dc:date>
    </item>
    <item>
      <title>Re: OPENCL clBuildProgram fails with no return</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OPENCL-clBuildProgram-fails-with-no-return/m-p/374575#M53659</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mauro&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;you can try Freescale OpenCL Hello World example for Sabre boards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-93984" title="https://community.freescale.com/docs/DOC-93984"&gt;https://community.freescale.com/docs/DOC-93984&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX6Q&amp;amp;nodeId=018rH3ZrDRB24A&amp;amp;fpsp=1&amp;amp;tab=Design_Tools_Tab"&gt;L3.0.35_4.1.0_UBUNTU_RFS_BSP&lt;/A&gt; &lt;IMG alt="" class="jiveImage" src="http://www.freescale.com/files/graphic/SECURITYINFOIMAGE.gif" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;as for Udoo board, one can post on meta-fsl-arm mailing list,&lt;/P&gt;&lt;P&gt;so that someone familiar with that board could try to assist you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive-link-external-small" href="https://lists.yoctoproject.org/listinfo/meta-freescale"&gt;https://lists.yoctoproject.org/listinfo/meta-freescale&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;igor&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Dec 2014 06:54:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OPENCL-clBuildProgram-fails-with-no-return/m-p/374575#M53659</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2014-12-25T06:54:24Z</dc:date>
    </item>
    <item>
      <title>Re: OPENCL clBuildProgram fails with no return</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OPENCL-clBuildProgram-fails-with-no-return/m-p/374576#M53660</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;P&gt;Hi Igor,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried also with the Freescale "Hello World". The options given to compiler and linker are taken from it. Unfortunately I had the same error.&lt;/P&gt;&lt;P&gt;The only difference is that I used the libOpenCL.so libGAL.so and libCLC.so already provided in Udoobuntu image inside /usr/lib/. &lt;/P&gt;&lt;P&gt;In fact I could not compile LTIB as explained in Freescale documentation. &lt;/P&gt;&lt;P&gt;Could the problem be a wrong version of the OpenCL libraries? If so, is there a link where to download the correct ones without working on LTIB?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Mauro&lt;/P&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Dec 2014 15:36:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OPENCL-clBuildProgram-fails-with-no-return/m-p/374576#M53660</guid>
      <dc:creator>mauromanzo</dc:creator>
      <dc:date>2014-12-25T15:36:02Z</dc:date>
    </item>
    <item>
      <title>Re: OPENCL clBuildProgram fails with no return</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OPENCL-clBuildProgram-fails-with-no-return/m-p/374577#M53661</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mauro&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;yes these may depend on libraries versions.&lt;/P&gt;&lt;P&gt;I am not familiar with Udoo distributions, suggest to post&lt;/P&gt;&lt;P&gt;on Udoo forum or meta-fsl-arm mailing list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;~igor&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Dec 2014 00:44:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OPENCL-clBuildProgram-fails-with-no-return/m-p/374577#M53661</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2014-12-26T00:44:01Z</dc:date>
    </item>
  </channel>
</rss>

