<?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>topic Re: Compiling OpenCL program with oneAPI in Intel® oneAPI DPC++/C++ Compiler</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Compiling-OpenCL-program-with-oneAPI/m-p/1622231#M4020</link>
    <description>&lt;P&gt;Can you please try this simple case:&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;#include &amp;lt;CL/cl.hpp&amp;gt;&lt;BR /&gt;#include &amp;lt;iostream&amp;gt;&lt;BR /&gt;#include &amp;lt;vector&amp;gt;&lt;BR /&gt;int main() {&lt;BR /&gt;&amp;nbsp; std::vector&amp;lt;cl::Platform&amp;gt; platforms;&lt;BR /&gt;&amp;nbsp; cl::Platform::get(&amp;amp;platforms);&lt;/P&gt;
&lt;P&gt;return 0;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;and let us know which compiler you can compile it successfully?&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 09 Aug 2024 21:56:00 GMT</pubDate>
    <dc:creator>Alex_Y_Intel</dc:creator>
    <dc:date>2024-08-09T21:56:00Z</dc:date>
    <item>
      <title>Compiling OpenCL program with oneAPI</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Compiling-OpenCL-program-with-oneAPI/m-p/1620285#M4001</link>
      <description>&lt;P&gt;Dear all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I cannot get the following program to compile with oneAPI (from command line). I use icpx -fsycl vectorAdd.cpp -o vectorAdd.exe. No matter what I try (CL/opencl.hpp)&lt;/P&gt;&lt;P&gt;I always get error messages. How can this be done?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;vectorAdd.cpp code is shown below.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Many thanks and best wishes,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Matthias&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;vectorAdd.cpp:&lt;/P&gt;&lt;P&gt;#include &amp;lt;OpenCL/opencl.hpp&amp;gt;&lt;BR /&gt;#include &amp;lt;iostream&amp;gt;&lt;BR /&gt;#include &amp;lt;cassert&amp;gt;&lt;BR /&gt;#include &amp;lt;numeric&amp;gt;&lt;/P&gt;&lt;P&gt;int main() {&lt;BR /&gt;std::vector&amp;lt;cl::Platform&amp;gt; platforms;&lt;BR /&gt;cl::Platform::get(&amp;amp;platforms);&lt;/P&gt;&lt;P&gt;assert(platforms.size() &amp;gt; 0);&lt;/P&gt;&lt;P&gt;auto platform = platforms.front();&lt;/P&gt;&lt;P&gt;std::vector&amp;lt;cl::Device&amp;gt; devices;&lt;BR /&gt;platforms.front().getDevices(CL_DEVICE_TYPE_GPU, &amp;amp;devices);&lt;/P&gt;&lt;P&gt;assert(devices.size() &amp;gt; 0);&lt;/P&gt;&lt;P&gt;auto device = devices.front();&lt;BR /&gt;auto vendor = device.getInfo&amp;lt;CL_DEVICE_VENDOR&amp;gt;();&lt;BR /&gt;auto version = device.getInfo&amp;lt;CL_DEVICE_VERSION&amp;gt;();&lt;/P&gt;&lt;P&gt;std::cout &amp;lt;&amp;lt; "Device Vendor: " &amp;lt;&amp;lt; vendor &amp;lt;&amp;lt; std::endl;&lt;BR /&gt;std::cout &amp;lt;&amp;lt; "Device Version: " &amp;lt;&amp;lt; version &amp;lt;&amp;lt; std::endl;&lt;/P&gt;&lt;P&gt;cl::Context context(device);&lt;BR /&gt;cl::Program::Sources sources;&lt;/P&gt;&lt;P&gt;std::string kernelCode =&lt;BR /&gt;" void kernel squareArray(global int* input, global int* output) {"&lt;BR /&gt;" size_t gid = get_global_id(0);"&lt;BR /&gt;" output[gid] = input[gid] * input[gid];"&lt;BR /&gt;" }";&lt;BR /&gt;sources.push_back({kernelCode.c_str(), kernelCode.length()});&lt;/P&gt;&lt;P&gt;cl_int exitcode = 0;&lt;/P&gt;&lt;P&gt;cl::Program program(context, sources, &amp;amp;exitcode);&lt;BR /&gt;program.build();&lt;BR /&gt;assert(exitcode == CL_SUCCESS);&lt;/P&gt;&lt;P&gt;cl::Kernel kernel(program, "squareArray", &amp;amp;exitcode);&lt;BR /&gt;assert(exitcode == CL_SUCCESS);&lt;/P&gt;&lt;P&gt;auto workGroupSize = kernel.getWorkGroupInfo&amp;lt;CL_KERNEL_WORK_GROUP_SIZE&amp;gt;(device);&lt;BR /&gt;std::cout &amp;lt;&amp;lt; "Kernel Work Group Size: " &amp;lt;&amp;lt; workGroupSize &amp;lt;&amp;lt; std::endl;&lt;/P&gt;&lt;P&gt;std::vector&amp;lt;int&amp;gt; outVec(1024);&lt;BR /&gt;std::vector&amp;lt;int&amp;gt; inVec(1024);&lt;BR /&gt;std::iota(inVec.begin(), inVec.end(), 1);&lt;/P&gt;&lt;P&gt;cl::Buffer inBuf(context,&lt;BR /&gt;CL_MEM_READ_ONLY | CL_MEM_HOST_NO_ACCESS | CL_MEM_COPY_HOST_PTR,&lt;BR /&gt;sizeof(int) * inVec.size(),&lt;BR /&gt;inVec.data());&lt;BR /&gt;cl::Buffer outBuf(context,&lt;BR /&gt;CL_MEM_WRITE_ONLY | CL_MEM_HOST_READ_ONLY,&lt;BR /&gt;sizeof(int) * outVec.size());&lt;BR /&gt;kernel.setArg(0, inBuf);&lt;BR /&gt;kernel.setArg(1, outBuf);&lt;/P&gt;&lt;P&gt;cl::CommandQueue queue(context, device);&lt;/P&gt;&lt;P&gt;queue.enqueueNDRangeKernel(kernel, cl::NullRange, cl::NDRange(inVec.size()));&lt;BR /&gt;queue.enqueueReadBuffer(outBuf, CL_TRUE, 0, sizeof(int) * outVec.size(), outVec.data());&lt;/P&gt;&lt;P&gt;for (std::vector&amp;lt;int&amp;gt;::const_iterator i = outVec.begin(); i != outVec.end(); ++i)&lt;BR /&gt;std::cout &amp;lt;&amp;lt; *i &amp;lt;&amp;lt; std::endl;&lt;/P&gt;&lt;P&gt;return 0;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 02 Aug 2024 14:12:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Compiling-OpenCL-program-with-oneAPI/m-p/1620285#M4001</guid>
      <dc:creator>matthias11</dc:creator>
      <dc:date>2024-08-02T14:12:20Z</dc:date>
    </item>
    <item>
      <title>Re: Compiling OpenCL program with oneAPI</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Compiling-OpenCL-program-with-oneAPI/m-p/1622231#M4020</link>
      <description>&lt;P&gt;Can you please try this simple case:&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;#include &amp;lt;CL/cl.hpp&amp;gt;&lt;BR /&gt;#include &amp;lt;iostream&amp;gt;&lt;BR /&gt;#include &amp;lt;vector&amp;gt;&lt;BR /&gt;int main() {&lt;BR /&gt;&amp;nbsp; std::vector&amp;lt;cl::Platform&amp;gt; platforms;&lt;BR /&gt;&amp;nbsp; cl::Platform::get(&amp;amp;platforms);&lt;/P&gt;
&lt;P&gt;return 0;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;and let us know which compiler you can compile it successfully?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 09 Aug 2024 21:56:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Compiling-OpenCL-program-with-oneAPI/m-p/1622231#M4020</guid>
      <dc:creator>Alex_Y_Intel</dc:creator>
      <dc:date>2024-08-09T21:56:00Z</dc:date>
    </item>
    <item>
      <title>Re: Compiling OpenCL program with oneAPI</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Compiling-OpenCL-program-with-oneAPI/m-p/1622882#M4026</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;from the short test program you sent me I get CL/cl.hpp not found error.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Where can I get this file from and where is it supposed to be? I've upgraded to the latest oneAPI (August 2024).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Many thanks and best wishes,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Matthias&lt;/P&gt;</description>
      <pubDate>Tue, 13 Aug 2024 08:48:01 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Compiling-OpenCL-program-with-oneAPI/m-p/1622882#M4026</guid>
      <dc:creator>matthias11</dc:creator>
      <dc:date>2024-08-13T08:48:01Z</dc:date>
    </item>
    <item>
      <title>Re: Compiling OpenCL program with oneAPI</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Compiling-OpenCL-program-with-oneAPI/m-p/1623037#M4039</link>
      <description>&lt;P&gt;Download OpenCL directory from here:&amp;nbsp;&lt;A href="https://github.com/ProjectPhysX/OpenCL-Wrapper/tree/master/src/" target="_blank"&gt;https://github.com/ProjectPhysX/OpenCL-Wrapper/tree/master/src/&lt;/A&gt;&amp;nbsp;and store it in the same directory of your vectorAdd.cpp&lt;/P&gt;
&lt;P&gt;Change your&amp;nbsp;#include &amp;lt;OpenCL/opencl.hpp&amp;gt; to&amp;nbsp;#include &amp;lt;CL/cl.hpp&amp;gt;&lt;/P&gt;
&lt;P&gt;And do this: icpx &lt;SPAN&gt;vectorAdd.cpp&lt;/SPAN&gt;&amp;nbsp;-I./OpenCL/include -L./OpenCL/lib -lOpenCL&lt;/P&gt;</description>
      <pubDate>Tue, 13 Aug 2024 23:59:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Compiling-OpenCL-program-with-oneAPI/m-p/1623037#M4039</guid>
      <dc:creator>Alex_Y_Intel</dc:creator>
      <dc:date>2024-08-13T23:59:02Z</dc:date>
    </item>
  </channel>
</rss>

