<?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 Hi Craig, in Intel® oneAPI DPC++/C++ Compiler</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1185911#M463</link>
    <description>&lt;P&gt;Hi Craig,&lt;/P&gt;&lt;P&gt;Could you try setting the Sycl&amp;nbsp;Back-End&amp;nbsp;to OpenCL and let us know if the inconsistency still persists at runtime?&lt;/P&gt;&lt;P&gt;Follow these steps for compiling and running your code(with OpenCL back-end):&lt;/P&gt;
&lt;PRE class="brush:bash; class-name:dark;"&gt;dpcpp -g -o bug2 bug2.cpp
SYCL_BE=PI_OPENCL ./bug2&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Rahul&lt;/P&gt;</description>
    <pubDate>Mon, 08 Jun 2020 09:29:37 GMT</pubDate>
    <dc:creator>RahulV_intel</dc:creator>
    <dc:date>2020-06-08T09:29:37Z</dc:date>
    <item>
      <title>runtime error: ZE_RESULT_ERROR_INVALID_ENUMERATION</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1185910#M462</link>
      <description>&lt;P&gt;I guess my two major questions are:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Why the random runtime error.&lt;/LI&gt;&lt;LI&gt;Why can't I catch the const char * exception and see what it says.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Environment:&lt;/P&gt;&lt;P&gt;&amp;nbsp; Lenovo T570&lt;BR /&gt;&amp;nbsp; Ubuntu 18.04.4 LTS&lt;BR /&gt;&amp;nbsp; 5.3.0-53-generic&lt;BR /&gt;&amp;nbsp; g++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0&lt;/P&gt;&lt;P&gt;Compile Line:&lt;/P&gt;&lt;P&gt;&amp;nbsp; dpcpp -g -o bug2 bug2.cpp -lOpenCL -lsycl&lt;/P&gt;&lt;P&gt;Sometimes when I execute, I get the following:&lt;/P&gt;
&lt;PRE class="brush:plain; class-name:dark; wrap-lines:false;"&gt;  user@t570:~/OneAPI/Code$ ./bug2
  Device: name: Intel(R) Gen9
  vendor: Intel
  Error (ZE_RESULT_ERROR_INVALID_ENUMERATION) in zeCommandListCreate( L0Device, &amp;amp;ze_command_list_desc, &amp;amp;ze_command_list)
  pi_throw: L0 Error
  Error (ZE_RESULT_ERROR_INVALID_ENUMERATION) in zeCommandListCreate( L0Device, &amp;amp;ze_command_list_desc, &amp;amp;ze_command_list)
  pi_throw: L0 Error
  Error (ZE_RESULT_ERROR_INVALID_ENUMERATION) in zeCommandListCreate( L0Device, &amp;amp;ze_command_list_desc, &amp;amp;ze_command_list)
  pi_throw: L0 Error
  terminate called after throwing an instance of 'char const*'
  Aborted (core dumped)
&lt;/PRE&gt;

&lt;P&gt;Sometimes I get what I expect:&lt;/P&gt;

&lt;PRE class="brush:plain; class-name:dark; wrap-lines:false;"&gt;  user@t570:~/OneAPI/Code$ ./bug2
  Device: name: Intel(R) Gen9
  vendor: Intel
   0    1    2    3    4    5    6
  10   11   12   13   14   15   16
  20   21   22   23   24   25   26
  30   31   32   33   34   35   36
&lt;/PRE&gt;

&lt;P&gt;According to GDB it looks to be in the buffer code, but I'm not exactly sure what my part is in the problem:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; #0 &amp;nbsp;__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51&lt;BR /&gt;&amp;nbsp; #1 &amp;nbsp;0x00007ffff6e7d801 in __GI_abort () at abort.c:79&lt;BR /&gt;&amp;nbsp; #2 &amp;nbsp;0x00007ffff7870957 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6&lt;BR /&gt;&amp;nbsp; #3 &amp;nbsp;0x00007ffff7876ae6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6&lt;BR /&gt;&amp;nbsp; #4 &amp;nbsp;0x00007ffff7876b21 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6&lt;BR /&gt;&amp;nbsp; #5 &amp;nbsp;0x0000000000404c4f in __clang_call_terminate ()&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; at /local/opt/intel/inteloneapi/compiler/latest/linux/bin/../include/sycl/CL/sycl/buffer.hpp:218&lt;BR /&gt;&amp;nbsp; #6 &amp;nbsp;0x0000000000409656 in cl::sycl::detail::buffer_impl::~buffer_impl (this=0x8fffa0)&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; at /local/opt/intel/inteloneapi/compiler/latest/linux/bin/../include/sycl/CL/sycl/detail/buffer_impl.hpp:111&lt;BR /&gt;&amp;nbsp; #7 &amp;nbsp;0x00000000004095f9 in __gnu_cxx::new_allocator&amp;lt;cl::sycl::detail::buffer_impl&amp;gt;::destroy&amp;lt;cl::sycl::detail::buffer_impl&amp;gt; (&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; this=0x8fffa0, __p=0x8fffa0) at /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/ext/new_allocator.h:140&lt;BR /&gt;&amp;nbsp; #8 &amp;nbsp;0x0000000000409590 in std::allocator_traits&amp;lt;std::allocator&amp;lt;cl::sycl::detail::buffer_impl&amp;gt; &amp;gt;::destroy&amp;lt;cl::sycl::detail::buffer_impl&amp;gt; (__a=..., __p=0x8fffa0) at /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/alloc_traits.h:487&lt;BR /&gt;&amp;nbsp; #9 &amp;nbsp;0x000000000040694c in std::_Sp_counted_ptr_inplace&amp;lt;cl::sycl::detail::buffer_impl, std::allocator&amp;lt;cl::sycl::detail::buffer_impl&amp;gt;, (__gnu_cxx::_Lock_policy)2&amp;gt;::_M_dispose (this=0x8fff90)&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; at /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/shared_ptr_base.h:535&lt;BR /&gt;&amp;nbsp; #10 0x000000000040505c in std::_Sp_counted_base&amp;lt;(__gnu_cxx::_Lock_policy)2&amp;gt;::_M_release (this=0x8fff90)&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; at /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/shared_ptr_base.h:154&lt;BR /&gt;&amp;nbsp; #11 0x000000000040500a in std::__shared_count&amp;lt;(__gnu_cxx::_Lock_policy)2&amp;gt;::~__shared_count (this=0x7fffffffbe70)&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; at /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/shared_ptr_base.h:684&lt;BR /&gt;&amp;nbsp; #12 0x000000000040aade in std::__shared_ptr&amp;lt;cl::sycl::detail::buffer_impl, (__gnu_cxx::_Lock_policy)2&amp;gt;::~__shared_ptr (&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; this=0x7fffffffbe68) at /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/shared_ptr_base.h:1123&lt;BR /&gt;&amp;nbsp; #13 0x00000000004054a8 in std::shared_ptr&amp;lt;cl::sycl::detail::buffer_impl&amp;gt;::~shared_ptr (this=0x7fffffffbe68)&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; at /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/shared_ptr.h:93&lt;BR /&gt;&amp;nbsp; #14 0x0000000000404c35 in cl::sycl::buffer&amp;lt;unsigned int, 1, cl::sycl::detail::aligned_allocator&amp;lt;char&amp;gt;, void&amp;gt;::~buffer (&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; this=0x7fffffffbe68) at /local/opt/intel/inteloneapi/compiler/latest/linux/bin/../include/sycl/CL/sycl/buffer.hpp:218&lt;BR /&gt;&amp;nbsp; #15 0x0000000000403380 in main (argc=1, argv=0x7fffffffc0d8) at bug2.cpp:54&lt;/P&gt;
&lt;P&gt;Here's a pared down version that generated the above:&lt;/P&gt;

&lt;PRE class="brush:cpp; class-name:dark;"&gt;#define XN 7
#define Nproc 4

#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;CL/sycl.hpp&amp;gt;
namespace sycl = cl::sycl;

int
main(int argc, char *argv[])
{
  unsigned int x[Nproc][XN];

  //sycl::device dev = sycl::default_selector().select_device();
  //sycl::device dev = sycl::host_selector().select_device();
  sycl::device dev = sycl::gpu_selector().select_device();
  //sycl::device dev = sycl::cpu_selector().select_device();
  std::cout &amp;lt;&amp;lt; "Device: " 
      &amp;lt;&amp;lt; "name: " &amp;lt;&amp;lt; dev.get_info&amp;lt;sycl::info::device::name&amp;gt;() &amp;lt;&amp;lt; std::endl
      &amp;lt;&amp;lt; "vendor: " &amp;lt;&amp;lt; dev.get_info&amp;lt;sycl::info::device::vendor&amp;gt;() &amp;lt;&amp;lt; std::endl;

  sycl::queue q(dev);

  try {
    sycl::buffer&amp;lt;unsigned int, 1&amp;gt; xbuffer((unsigned int *)x, sycl::range&amp;lt;1&amp;gt; {Nproc*XN});
    q.submit([&amp;amp;](sycl::handler&amp;amp; cgh) {
        auto xaccessor = xbuffer.get_access&amp;lt;sycl::access::mode::discard_write, sycl::access::target::global_buffer&amp;gt;(cgh);
        cgh.parallel_for&amp;lt;class k0&amp;gt;(
            sycl::range&amp;lt;1&amp;gt; {Nproc}, 
            [=] (sycl::item&amp;lt;1&amp;gt; item) {
                int idx = item.get_linear_id();
                unsigned int (*xptr)[XN] = (unsigned int (*)[XN])xaccessor.get_pointer().get();
                for (int i=0; i&amp;lt;XN; i++) xptr[idx]&lt;I&gt; = 10*idx+i;
                }
            );
        }
        ); 
    q.wait();
  } catch (sycl::runtime_error const&amp;amp; e) {
    std::cout &amp;lt;&amp;lt; "SYCL runtime exception" &amp;lt;&amp;lt; std::endl;
    std::cout &amp;lt;&amp;lt; e.what() &amp;lt;&amp;lt; std::endl;
  } catch (sycl::device_error const &amp;amp; e) {
    std::cout &amp;lt;&amp;lt; "SYCL device exception" &amp;lt;&amp;lt; std::endl;
    std::cout &amp;lt;&amp;lt; e.what() &amp;lt;&amp;lt; std::endl;
  } catch (const char * str) {
    std::cout &amp;lt;&amp;lt; "msg: " &amp;lt;&amp;lt; str &amp;lt;&amp;lt; std::endl;
  } catch (...) {
    std::cout &amp;lt;&amp;lt; "SYCL unknown exception" &amp;lt;&amp;lt; std::endl;
  }
  for (int p=0; p&amp;lt;Nproc; p++) {
    for (int i=0; i&amp;lt;XN; i++) printf("%2d   ", x&lt;P&gt;&lt;I&gt;);
    printf("\n");
  }
}
&lt;/I&gt;&lt;/P&gt;&lt;/I&gt;&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 07 Jun 2020 19:04:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1185910#M462</guid>
      <dc:creator>CFR</dc:creator>
      <dc:date>2020-06-07T19:04:22Z</dc:date>
    </item>
    <item>
      <title>Hi Craig,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1185911#M463</link>
      <description>&lt;P&gt;Hi Craig,&lt;/P&gt;&lt;P&gt;Could you try setting the Sycl&amp;nbsp;Back-End&amp;nbsp;to OpenCL and let us know if the inconsistency still persists at runtime?&lt;/P&gt;&lt;P&gt;Follow these steps for compiling and running your code(with OpenCL back-end):&lt;/P&gt;
&lt;PRE class="brush:bash; class-name:dark;"&gt;dpcpp -g -o bug2 bug2.cpp
SYCL_BE=PI_OPENCL ./bug2&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Rahul&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jun 2020 09:29:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1185911#M463</guid>
      <dc:creator>RahulV_intel</dc:creator>
      <dc:date>2020-06-08T09:29:37Z</dc:date>
    </item>
    <item>
      <title>This seems to be the only</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1185912#M464</link>
      <description>&lt;P&gt;This seems to be the only output now... I do not see it any runs with the ZE_RESULT_ERROR_INVALID_ENUMERATION message (but maybe that's expected).&lt;/P&gt;
&lt;PRE class="brush:plain; class-name:dark;"&gt;user@t570:~/OneAPI/Code$ SYCL_BE=PI_OPENCL ./bug2
Device: name: Intel(R) Gen9 HD Graphics NEO
vendor: Intel(R) Corporation
DIBlockByRefStruct on DICompositeType is no longer supported
!239 = !DICompositeType(tag: DW_TAG_structure_type, name: "__private_class", scope: !211, file: !212, line: 34, flags: DIFlagReservedBit4, elements: !137)
DIBlockByRefStruct on DICompositeType is no longer supported
!766 = !DICompositeType(tag: DW_TAG_structure_type, name: "multi_ptr&amp;lt;const unsigned int, cl::sycl::access::address_space::global_space&amp;gt;", scope: !145, file: !691, line: 25, flags: DIFlagReservedBit4, elements: !137)
&amp;nbsp;0 &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp;2 &amp;nbsp; &amp;nbsp;3 &amp;nbsp; &amp;nbsp;4 &amp;nbsp; &amp;nbsp;5 &amp;nbsp; &amp;nbsp;6 &amp;nbsp;&amp;nbsp;
10 &amp;nbsp; 11 &amp;nbsp; 12 &amp;nbsp; 13 &amp;nbsp; 14 &amp;nbsp; 15 &amp;nbsp; 16 &amp;nbsp;&amp;nbsp;
20 &amp;nbsp; 21 &amp;nbsp; 22 &amp;nbsp; 23 &amp;nbsp; 24 &amp;nbsp; 25 &amp;nbsp; 26 &amp;nbsp;&amp;nbsp;
30 &amp;nbsp; 31 &amp;nbsp; 32 &amp;nbsp; 33 &amp;nbsp; 34 &amp;nbsp; 35 &amp;nbsp; 36 &amp;nbsp;&amp;nbsp;&lt;/PRE&gt;

&lt;P&gt;&lt;BR /&gt;(I'm in the process of trying to add and async_handler to my program to see if it's more informative)&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jun 2020 14:37:13 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1185912#M464</guid>
      <dc:creator>CFR</dc:creator>
      <dc:date>2020-06-08T14:37:13Z</dc:date>
    </item>
    <item>
      <title>Hi,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1185913#M465</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Did you notice any runtime inconsistency using&amp;nbsp;OpenCL banckend with multiple runs?&lt;/P&gt;&lt;P&gt;Also, let us know if there is any discrepancy in output during these runs.&lt;/P&gt;&lt;P&gt;Try out the asyc_handler with default L0 backend as well and check if it catches&amp;nbsp;any error when the runtime fails(in previous case).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Rahul&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jun 2020 04:58:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1185913#M465</guid>
      <dc:creator>RahulV_intel</dc:creator>
      <dc:date>2020-06-09T04:58:22Z</dc:date>
    </item>
    <item>
      <title>I ran "./bug2" 10 times.  Out</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1185914#M466</link>
      <description>&lt;P&gt;I ran "./bug2" 10 times.&amp;nbsp; Out of the 10&lt;/P&gt;&lt;P&gt;4 run correctly:&lt;/P&gt;
&lt;PRE class="brush:plain; class-name:dark;"&gt;Device: name: Intel(R) Gen9
vendor: Intel
 0    1    2    3    4    5    6   
10   11   12   13   14   15   16   
20   21   22   23   24   25   26   
30   31   32   33   34   35   36   &lt;/PRE&gt;

&lt;P&gt;6 result in error:&lt;/P&gt;

&lt;PRE class="brush:plain; class-name:dark;"&gt;Device: name: Intel(R) Gen9
vendor: Intel
Error (ZE_RESULT_ERROR_INVALID_ENUMERATION) in zeCommandListCreate( L0Device, &amp;amp;ze_command_list_desc, &amp;amp;ze_command_list)
pi_throw: L0 Error
Error (ZE_RESULT_ERROR_INVALID_ENUMERATION) in zeCommandListCreate( L0Device, &amp;amp;ze_command_list_desc, &amp;amp;ze_command_list)
pi_throw: L0 Error
Error (ZE_RESULT_ERROR_INVALID_ENUMERATION) in zeCommandListCreate( L0Device, &amp;amp;ze_command_list_desc, &amp;amp;ze_command_list)
pi_throw: L0 Error
terminate called after throwing an instance of 'char const*'
&lt;/PRE&gt;

&lt;P&gt;I ran "SYCL_BE=PI_OPENCL ./bug2" 10 times and all 10 runs resulted in the exact same output:&lt;/P&gt;

&lt;PRE class="brush:plain; class-name:dark;"&gt;Device: name: Intel(R) Gen9 HD Graphics NEO
vendor: Intel(R) Corporation
DIBlockByRefStruct on DICompositeType is no longer supported
!239 = !DICompositeType(tag: DW_TAG_structure_type, name: "__private_class", scope: !211, file: !212, line: 34, flags: DIFlagReservedBit4, elements: !137)
DIBlockByRefStruct on DICompositeType is no longer supported
!766 = !DICompositeType(tag: DW_TAG_structure_type, name: "multi_ptr&amp;lt;const unsigned int, cl::sycl::access::address_space::global_space&amp;gt;", scope: !145, file: !691, line: 25, flags: DIFlagReservedBit4, elements: !137)
 0    1    2    3    4    5    6   
10   11   12   13   14   15   16   
20   21   22   23   24   25   26   
30   31   32   33   34   35   36   
&lt;/PRE&gt;

&lt;P&gt;I attempted to implement an async handler as follows:&lt;/P&gt;

&lt;PRE class="brush:cpp; class-name:dark;"&gt;  /** create async exception handler per codeplay example **/
  auto exception_handler = [] (sycl::exception_list exceptions) {
    for (std::exception_ptr const&amp;amp; e : exceptions) {
      try {
        std::rethrow_exception(e);
      } catch(sycl::exception const&amp;amp; e) {
        std::cout &amp;lt;&amp;lt; "Caught asynchronous SYCL exception:\n" &amp;lt;&amp;lt; e.what() &amp;lt;&amp;lt; std::endl;
      }
    }
  };

  /** setup a queue **/
  sycl::queue q(dev, exception_handler);

  try {
    sycl::buffer&amp;lt;unsigned int, 1&amp;gt; xbuffer((unsigned int *)x, sycl::range&amp;lt;1&amp;gt; {Nproc*XN});
    q.submit([&amp;amp;](sycl::handler&amp;amp; cgh) {
        auto xaccessor = xbuffer.get_access&amp;lt;sycl::access::mode::discard_write, sycl::access::target::global_buffer&amp;gt;(cgh);
        cgh.parallel_for&amp;lt;class k0&amp;gt;(
            sycl::range&amp;lt;1&amp;gt; {Nproc},
            [=] (sycl::item&amp;lt;1&amp;gt; item) {
                int idx = item.get_linear_id();
                unsigned int (*xptr)[XN] = (unsigned int (*)[XN])xaccessor.get_pointer().get();
                for (int i=0; i&amp;lt;XN; i++) xptr[idx]&lt;I&gt; = 10*idx+i;
                }
            );
        }
        );
    q.wait_and_throw();
  } catch (sycl::runtime_error const&amp;amp; e) {
    std::cout &amp;lt;&amp;lt; "SYCL runtime exception" &amp;lt;&amp;lt; std::endl;
    std::cout &amp;lt;&amp;lt; e.what() &amp;lt;&amp;lt; std::endl;
  } catch (sycl::device_error const &amp;amp; e) {
    std::cout &amp;lt;&amp;lt; "SYCL device exception" &amp;lt;&amp;lt; std::endl;
    std::cout &amp;lt;&amp;lt; e.what() &amp;lt;&amp;lt; std::endl;
  } catch (const char * str) {
    std::cout &amp;lt;&amp;lt; "msg: " &amp;lt;&amp;lt; str &amp;lt;&amp;lt; std::endl;
  } catch (...) {
    std::cout &amp;lt;&amp;lt; "SYCL unknown exception" &amp;lt;&amp;lt; std::endl;
  }&lt;/I&gt;&lt;/PRE&gt;

&lt;P&gt;But it didn't produce any more information.&lt;/P&gt;
&lt;P&gt;Some other things about this...&lt;/P&gt;
&lt;OL&gt;&lt;LI&gt;I have other, similar, codes that exhibit the same problem&lt;/LI&gt;&lt;LI&gt;The error does _not_ occur for the cpu_selector, only for the gpu_selector&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Edit 1:&amp;nbsp; After poking through some source it turns out that setting ZE_DEBUG environment variable will trace the internal calls.&amp;nbsp; Not sure whether it sheds too much new information but maybe...&lt;/P&gt;

&lt;PRE class="brush:plain; class-name:dark;"&gt;ZE ---&amp;gt; zeInit(ZE_INIT_FLAG_NONE)
ZE ---&amp;gt; piPlatformsGet
ZE ---&amp;gt; zeInit(ZE_INIT_FLAG_NONE)
ZE ---&amp;gt; piPlatformsGet
ZE ---&amp;gt; zeDriverGet(&amp;amp;ze_driver_count, nullptr)
ZE ---&amp;gt; zeDriverGet(&amp;amp;ze_driver_count, &amp;amp;ze_driver)
ZE ---&amp;gt; zeDeviceGet(ze_driver, &amp;amp;ze_device_count, nullptr)
ZE ---&amp;gt; zeDeviceGet(ze_driver, &amp;amp;ze_device_count, ze_devices)
ZE ---&amp;gt; zeDriverGet(&amp;amp;ze_driver_count, nullptr)
ZE ---&amp;gt; zeDriverGet(&amp;amp;ze_driver_count, &amp;amp;ze_driver)
ZE ---&amp;gt; zeDeviceGet(ze_driver, &amp;amp;ze_device_count, nullptr)
ZE ---&amp;gt; zeDeviceGet(ze_driver, &amp;amp;ze_device_count, ze_devices)
ZE ---&amp;gt; zeCommandListCreateImmediate(ze_device, &amp;amp;ze_command_queue_desc, &amp;amp;L0PiDevice-&amp;gt;L0CommandListInit)
ZE ---&amp;gt; zeDeviceGetProperties( ze_device, &amp;amp;L0PiDevice-&amp;gt;L0DeviceProperties)
ZE ---&amp;gt; zeDeviceGetComputeProperties( ze_device, &amp;amp;L0PiDevice-&amp;gt;L0DeviceComputeProperties)
ZE ---&amp;gt; zeDriverGetProperties(ze_driver_global, &amp;amp;ze_driver_properties)
==========================
SYCL over Level-Zero 0.8
==========================
ZE ---&amp;gt; zeDriverGetProperties(ze_driver_global, &amp;amp;ze_driver_properties)
==========================
SYCL over Level-Zero 0.8
==========================
ZE ---&amp;gt; zeDriverGetProperties(ze_driver_global, &amp;amp;ze_driver_properties)
==========================
SYCL over Level-Zero 0.8
==========================
ZE ---&amp;gt; zeDriverGetProperties(ze_driver_global, &amp;amp;ze_driver_properties)
==========================
SYCL over Level-Zero 0.8
==========================
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, nullptr )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, ze_device_memory_properties )
ZE ---&amp;gt; zeDeviceGetImageProperties( ze_device, &amp;amp;ze_device_image_properties )
ZE ---&amp;gt; zeDeviceGetKernelProperties( ze_device, &amp;amp;ze_device_kernel_properties )
ZE ---&amp;gt; zeDeviceGetCacheProperties( ze_device, &amp;amp;ze_device_cache_properties )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, nullptr )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, ze_device_memory_properties )
ZE ---&amp;gt; zeDeviceGetImageProperties( ze_device, &amp;amp;ze_device_image_properties )
ZE ---&amp;gt; zeDeviceGetKernelProperties( ze_device, &amp;amp;ze_device_kernel_properties )
ZE ---&amp;gt; zeDeviceGetCacheProperties( ze_device, &amp;amp;ze_device_cache_properties )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, nullptr )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, ze_device_memory_properties )
ZE ---&amp;gt; zeDeviceGetImageProperties( ze_device, &amp;amp;ze_device_image_properties )
ZE ---&amp;gt; zeDeviceGetKernelProperties( ze_device, &amp;amp;ze_device_kernel_properties )
ZE ---&amp;gt; zeDeviceGetCacheProperties( ze_device, &amp;amp;ze_device_cache_properties )
ZE ---&amp;gt; zeDriverGetProperties(ze_driver_global, &amp;amp;ze_driver_properties)
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, nullptr )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, ze_device_memory_properties )
ZE ---&amp;gt; zeDeviceGetImageProperties( ze_device, &amp;amp;ze_device_image_properties )
ZE ---&amp;gt; zeDeviceGetKernelProperties( ze_device, &amp;amp;ze_device_kernel_properties )
ZE ---&amp;gt; zeDeviceGetCacheProperties( ze_device, &amp;amp;ze_device_cache_properties )
ZE ---&amp;gt; zeDriverGetProperties(ze_driver_global, &amp;amp;ze_driver_properties)
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, nullptr )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, ze_device_memory_properties )
ZE ---&amp;gt; zeDeviceGetImageProperties( ze_device, &amp;amp;ze_device_image_properties )
ZE ---&amp;gt; zeDeviceGetKernelProperties( ze_device, &amp;amp;ze_device_kernel_properties )
ZE ---&amp;gt; zeDeviceGetCacheProperties( ze_device, &amp;amp;ze_device_cache_properties )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, nullptr )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, ze_device_memory_properties )
ZE ---&amp;gt; zeDeviceGetImageProperties( ze_device, &amp;amp;ze_device_image_properties )
ZE ---&amp;gt; zeDeviceGetKernelProperties( ze_device, &amp;amp;ze_device_kernel_properties )
ZE ---&amp;gt; zeDeviceGetCacheProperties( ze_device, &amp;amp;ze_device_cache_properties )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, nullptr )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, ze_device_memory_properties )
ZE ---&amp;gt; zeDeviceGetImageProperties( ze_device, &amp;amp;ze_device_image_properties )
ZE ---&amp;gt; zeDeviceGetKernelProperties( ze_device, &amp;amp;ze_device_kernel_properties )
ZE ---&amp;gt; zeDeviceGetCacheProperties( ze_device, &amp;amp;ze_device_cache_properties )
ZE ---&amp;gt; zeDriverGet(&amp;amp;ze_driver_count, nullptr)
ZE ---&amp;gt; zeDriverGet(&amp;amp;ze_driver_count, &amp;amp;ze_driver)
ZE ---&amp;gt; zeDeviceGet(ze_driver, &amp;amp;ze_device_count, nullptr)
ZE ---&amp;gt; zeDeviceGet(ze_driver, &amp;amp;ze_device_count, ze_devices)
ZE ---&amp;gt; zeDriverGet(&amp;amp;ze_driver_count, nullptr)
ZE ---&amp;gt; zeDriverGet(&amp;amp;ze_driver_count, &amp;amp;ze_driver)
ZE ---&amp;gt; zeDeviceGet(ze_driver, &amp;amp;ze_device_count, nullptr)
ZE ---&amp;gt; zeDeviceGet(ze_driver, &amp;amp;ze_device_count, ze_devices)
ZE ---&amp;gt; zeCommandListCreateImmediate(ze_device, &amp;amp;ze_command_queue_desc, &amp;amp;L0PiDevice-&amp;gt;L0CommandListInit)
ZE ---&amp;gt; zeDeviceGetProperties( ze_device, &amp;amp;L0PiDevice-&amp;gt;L0DeviceProperties)
ZE ---&amp;gt; zeDeviceGetComputeProperties( ze_device, &amp;amp;L0PiDevice-&amp;gt;L0DeviceComputeProperties)
ZE ---&amp;gt; zeDriverGetProperties(ze_driver_global, &amp;amp;ze_driver_properties)
==========================
SYCL over Level-Zero 0.8
==========================
ZE ---&amp;gt; zeDriverGetProperties(ze_driver_global, &amp;amp;ze_driver_properties)
==========================
SYCL over Level-Zero 0.8
==========================
ZE ---&amp;gt; zeDriverGetProperties(ze_driver_global, &amp;amp;ze_driver_properties)
==========================
SYCL over Level-Zero 0.8
==========================
ZE ---&amp;gt; zeDriverGetProperties(ze_driver_global, &amp;amp;ze_driver_properties)
==========================
SYCL over Level-Zero 0.8
==========================
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, nullptr )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, ze_device_memory_properties )
ZE ---&amp;gt; zeDeviceGetImageProperties( ze_device, &amp;amp;ze_device_image_properties )
ZE ---&amp;gt; zeDeviceGetKernelProperties( ze_device, &amp;amp;ze_device_kernel_properties )
ZE ---&amp;gt; zeDeviceGetCacheProperties( ze_device, &amp;amp;ze_device_cache_properties )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, nullptr )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, ze_device_memory_properties )
ZE ---&amp;gt; zeDeviceGetImageProperties( ze_device, &amp;amp;ze_device_image_properties )
ZE ---&amp;gt; zeDeviceGetKernelProperties( ze_device, &amp;amp;ze_device_kernel_properties )
ZE ---&amp;gt; zeDeviceGetCacheProperties( ze_device, &amp;amp;ze_device_cache_properties )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, nullptr )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, ze_device_memory_properties )
ZE ---&amp;gt; zeDeviceGetImageProperties( ze_device, &amp;amp;ze_device_image_properties )
ZE ---&amp;gt; zeDeviceGetKernelProperties( ze_device, &amp;amp;ze_device_kernel_properties )
ZE ---&amp;gt; zeDeviceGetCacheProperties( ze_device, &amp;amp;ze_device_cache_properties )
ZE ---&amp;gt; zeDriverGetProperties(ze_driver_global, &amp;amp;ze_driver_properties)
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, nullptr )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, ze_device_memory_properties )
ZE ---&amp;gt; zeDeviceGetImageProperties( ze_device, &amp;amp;ze_device_image_properties )
ZE ---&amp;gt; zeDeviceGetKernelProperties( ze_device, &amp;amp;ze_device_kernel_properties )
ZE ---&amp;gt; zeDeviceGetCacheProperties( ze_device, &amp;amp;ze_device_cache_properties )
ZE ---&amp;gt; zeDriverGetProperties(ze_driver_global, &amp;amp;ze_driver_properties)
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, nullptr )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, ze_device_memory_properties )
ZE ---&amp;gt; zeDeviceGetImageProperties( ze_device, &amp;amp;ze_device_image_properties )
ZE ---&amp;gt; zeDeviceGetKernelProperties( ze_device, &amp;amp;ze_device_kernel_properties )
ZE ---&amp;gt; zeDeviceGetCacheProperties( ze_device, &amp;amp;ze_device_cache_properties )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, nullptr )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, ze_device_memory_properties )
ZE ---&amp;gt; zeDeviceGetImageProperties( ze_device, &amp;amp;ze_device_image_properties )
ZE ---&amp;gt; zeDeviceGetKernelProperties( ze_device, &amp;amp;ze_device_kernel_properties )
ZE ---&amp;gt; zeDeviceGetCacheProperties( ze_device, &amp;amp;ze_device_cache_properties )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, nullptr )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, ze_device_memory_properties )
ZE ---&amp;gt; zeDeviceGetImageProperties( ze_device, &amp;amp;ze_device_image_properties )
ZE ---&amp;gt; zeDeviceGetKernelProperties( ze_device, &amp;amp;ze_device_kernel_properties )
ZE ---&amp;gt; zeDeviceGetCacheProperties( ze_device, &amp;amp;ze_device_cache_properties )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, nullptr )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, ze_device_memory_properties )
ZE ---&amp;gt; zeDeviceGetImageProperties( ze_device, &amp;amp;ze_device_image_properties )
ZE ---&amp;gt; zeDeviceGetKernelProperties( ze_device, &amp;amp;ze_device_kernel_properties )
ZE ---&amp;gt; zeDeviceGetCacheProperties( ze_device, &amp;amp;ze_device_cache_properties )
ZE ---&amp;gt; zeDriverGetProperties(ze_driver_global, &amp;amp;ze_driver_properties)
==========================
SYCL over Level-Zero 0.8
==========================
ZE ---&amp;gt; zeDriverGetProperties(ze_driver_global, &amp;amp;ze_driver_properties)
==========================
SYCL over Level-Zero 0.8
==========================
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, nullptr )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, ze_device_memory_properties )
ZE ---&amp;gt; zeDeviceGetImageProperties( ze_device, &amp;amp;ze_device_image_properties )
ZE ---&amp;gt; zeDeviceGetKernelProperties( ze_device, &amp;amp;ze_device_kernel_properties )
ZE ---&amp;gt; zeDeviceGetCacheProperties( ze_device, &amp;amp;ze_device_cache_properties )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, nullptr )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, ze_device_memory_properties )
ZE ---&amp;gt; zeDeviceGetImageProperties( ze_device, &amp;amp;ze_device_image_properties )
ZE ---&amp;gt; zeDeviceGetKernelProperties( ze_device, &amp;amp;ze_device_kernel_properties )
ZE ---&amp;gt; zeDeviceGetCacheProperties( ze_device, &amp;amp;ze_device_cache_properties )
Device: name: Intel(R) Gen9
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, nullptr )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, ze_device_memory_properties )
ZE ---&amp;gt; zeDeviceGetImageProperties( ze_device, &amp;amp;ze_device_image_properties )
ZE ---&amp;gt; zeDeviceGetKernelProperties( ze_device, &amp;amp;ze_device_kernel_properties )
ZE ---&amp;gt; zeDeviceGetCacheProperties( ze_device, &amp;amp;ze_device_cache_properties )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, nullptr )
ZE ---&amp;gt; zeDeviceGetMemoryProperties( ze_device, &amp;amp;ze_avail_mem_count, ze_device_memory_properties )
ZE ---&amp;gt; zeDeviceGetImageProperties( ze_device, &amp;amp;ze_device_image_properties )
ZE ---&amp;gt; zeDeviceGetKernelProperties( ze_device, &amp;amp;ze_device_kernel_properties )
ZE ---&amp;gt; zeDeviceGetCacheProperties( ze_device, &amp;amp;ze_device_cache_properties )
vendor: Intel
ZE ---&amp;gt; zeDriverGetProperties(ze_driver_global, &amp;amp;ze_driver_properties)
==========================
SYCL over Level-Zero 0.8
==========================
ZE ---&amp;gt; zeDriverGetProperties(ze_driver_global, &amp;amp;ze_driver_properties)
==========================
SYCL over Level-Zero 0.8
==========================
ZE ---&amp;gt; zeCommandQueueCreate( ze_device, &amp;amp;ze_command_queue_desc, &amp;amp;ze_command_queue)
ZE ---&amp;gt; zeDriverAllocDeviceMem( ze_driver_global, &amp;amp;ze_desc, size, 1, ze_device, &amp;amp;ptr)
ZE ---&amp;gt; zeCommandListAppendMemoryCopy(context-&amp;gt;Device-&amp;gt;L0CommandListInit, ptr, host_ptr, size, nullptr)
ZE ---&amp;gt; zeModuleCreate( ze_device, &amp;amp;ze_module_desc, &amp;amp;ze_module, 0)
ZE ---&amp;gt; zeKernelCreate( pi_cast&amp;lt;ze_module_handle_t&amp;gt;(program-&amp;gt;L0Module), &amp;amp;ze_kernel_desc, &amp;amp;ze_kernel)
ZE ---&amp;gt; zeKernelSetArgumentValue( pi_cast&amp;lt;ze_kernel_handle_t&amp;gt;(kernel-&amp;gt;L0Kernel), pi_cast&amp;lt;uint32_t&amp;gt;(arg_index), sizeof(void *), pi_cast&amp;lt;const void*&amp;gt;(&amp;amp;(*arg_value)-&amp;gt;L0Mem))
ZE ---&amp;gt; zeKernelSetArgumentValue( pi_cast&amp;lt;ze_kernel_handle_t&amp;gt;(kernel-&amp;gt;L0Kernel), pi_cast&amp;lt;uint32_t&amp;gt;(arg_index), pi_cast&amp;lt;size_t&amp;gt;(arg_size), pi_cast&amp;lt;const void*&amp;gt;(arg_value))
ZE ---&amp;gt; zeKernelSetArgumentValue( pi_cast&amp;lt;ze_kernel_handle_t&amp;gt;(kernel-&amp;gt;L0Kernel), pi_cast&amp;lt;uint32_t&amp;gt;(arg_index), pi_cast&amp;lt;size_t&amp;gt;(arg_size), pi_cast&amp;lt;const void*&amp;gt;(arg_value))
ZE ---&amp;gt; zeKernelSetArgumentValue( pi_cast&amp;lt;ze_kernel_handle_t&amp;gt;(kernel-&amp;gt;L0Kernel), pi_cast&amp;lt;uint32_t&amp;gt;(arg_index), pi_cast&amp;lt;size_t&amp;gt;(arg_size), pi_cast&amp;lt;const void*&amp;gt;(arg_value))
ZE ---&amp;gt; zeKernelSetAttribute( kernel-&amp;gt;L0Kernel, ZE_KERNEL_ATTR_INDIRECT_SHARED_ACCESS, sizeof(bool), &amp;amp;ze_indirect_value)
ZE ---&amp;gt; zeKernelSetAttribute( kernel-&amp;gt;L0Kernel, ZE_KERNEL_ATTR_INDIRECT_DEVICE_ACCESS, sizeof(bool), &amp;amp;ze_indirect_value)
ZE ---&amp;gt; zeKernelSetAttribute( kernel-&amp;gt;L0Kernel, ZE_KERNEL_ATTR_INDIRECT_HOST_ACCESS, sizeof(bool), &amp;amp;ze_indirect_value)
ZE ---&amp;gt; zeKernelSuggestGroupSize(kernel-&amp;gt;L0Kernel, global_work_size[0], global_work_size[1], global_work_size[2], &amp;amp;wg[0], &amp;amp;wg[1], &amp;amp;wg[2])
ZE ---&amp;gt; zeKernelSetGroupSize(kernel-&amp;gt;L0Kernel, wg[0], wg[1], wg[2])
ZE ---&amp;gt; zeCommandListCreate( L0Device, &amp;amp;ze_command_list_desc, &amp;amp;ze_command_list)
Error (ZE_RESULT_ERROR_INVALID_ENUMERATION) in zeCommandListCreate( L0Device, &amp;amp;ze_command_list_desc, &amp;amp;ze_command_list)
pi_throw: L0 Error
ZE ---&amp;gt; zeKernelSetArgumentValue( pi_cast&amp;lt;ze_kernel_handle_t&amp;gt;(kernel-&amp;gt;L0Kernel), pi_cast&amp;lt;uint32_t&amp;gt;(arg_index), sizeof(void *), pi_cast&amp;lt;const void*&amp;gt;(&amp;amp;(*arg_value)-&amp;gt;L0Mem))
ZE ---&amp;gt; zeKernelSetArgumentValue( pi_cast&amp;lt;ze_kernel_handle_t&amp;gt;(kernel-&amp;gt;L0Kernel), pi_cast&amp;lt;uint32_t&amp;gt;(arg_index), pi_cast&amp;lt;size_t&amp;gt;(arg_size), pi_cast&amp;lt;const void*&amp;gt;(arg_value))
ZE ---&amp;gt; zeKernelSetArgumentValue( pi_cast&amp;lt;ze_kernel_handle_t&amp;gt;(kernel-&amp;gt;L0Kernel), pi_cast&amp;lt;uint32_t&amp;gt;(arg_index), pi_cast&amp;lt;size_t&amp;gt;(arg_size), pi_cast&amp;lt;const void*&amp;gt;(arg_value))
ZE ---&amp;gt; zeKernelSetArgumentValue( pi_cast&amp;lt;ze_kernel_handle_t&amp;gt;(kernel-&amp;gt;L0Kernel), pi_cast&amp;lt;uint32_t&amp;gt;(arg_index), pi_cast&amp;lt;size_t&amp;gt;(arg_size), pi_cast&amp;lt;const void*&amp;gt;(arg_value))
ZE ---&amp;gt; zeKernelSetAttribute( kernel-&amp;gt;L0Kernel, ZE_KERNEL_ATTR_INDIRECT_SHARED_ACCESS, sizeof(bool), &amp;amp;ze_indirect_value)
ZE ---&amp;gt; zeKernelSetAttribute( kernel-&amp;gt;L0Kernel, ZE_KERNEL_ATTR_INDIRECT_DEVICE_ACCESS, sizeof(bool), &amp;amp;ze_indirect_value)
ZE ---&amp;gt; zeKernelSetAttribute( kernel-&amp;gt;L0Kernel, ZE_KERNEL_ATTR_INDIRECT_HOST_ACCESS, sizeof(bool), &amp;amp;ze_indirect_value)
ZE ---&amp;gt; zeKernelSuggestGroupSize(kernel-&amp;gt;L0Kernel, global_work_size[0], global_work_size[1], global_work_size[2], &amp;amp;wg[0], &amp;amp;wg[1], &amp;amp;wg[2])
ZE ---&amp;gt; zeKernelSetGroupSize(kernel-&amp;gt;L0Kernel, wg[0], wg[1], wg[2])
ZE ---&amp;gt; zeCommandListCreate( L0Device, &amp;amp;ze_command_list_desc, &amp;amp;ze_command_list)
Error (ZE_RESULT_ERROR_INVALID_ENUMERATION) in zeCommandListCreate( L0Device, &amp;amp;ze_command_list_desc, &amp;amp;ze_command_list)
pi_throw: L0 Error
ZE ---&amp;gt; zeKernelSetArgumentValue( pi_cast&amp;lt;ze_kernel_handle_t&amp;gt;(kernel-&amp;gt;L0Kernel), pi_cast&amp;lt;uint32_t&amp;gt;(arg_index), sizeof(void *), pi_cast&amp;lt;const void*&amp;gt;(&amp;amp;(*arg_value)-&amp;gt;L0Mem))
ZE ---&amp;gt; zeKernelSetArgumentValue( pi_cast&amp;lt;ze_kernel_handle_t&amp;gt;(kernel-&amp;gt;L0Kernel), pi_cast&amp;lt;uint32_t&amp;gt;(arg_index), pi_cast&amp;lt;size_t&amp;gt;(arg_size), pi_cast&amp;lt;const void*&amp;gt;(arg_value))
ZE ---&amp;gt; zeKernelSetArgumentValue( pi_cast&amp;lt;ze_kernel_handle_t&amp;gt;(kernel-&amp;gt;L0Kernel), pi_cast&amp;lt;uint32_t&amp;gt;(arg_index), pi_cast&amp;lt;size_t&amp;gt;(arg_size), pi_cast&amp;lt;const void*&amp;gt;(arg_value))
ZE ---&amp;gt; zeKernelSetArgumentValue( pi_cast&amp;lt;ze_kernel_handle_t&amp;gt;(kernel-&amp;gt;L0Kernel), pi_cast&amp;lt;uint32_t&amp;gt;(arg_index), pi_cast&amp;lt;size_t&amp;gt;(arg_size), pi_cast&amp;lt;const void*&amp;gt;(arg_value))
ZE ---&amp;gt; zeKernelSetAttribute( kernel-&amp;gt;L0Kernel, ZE_KERNEL_ATTR_INDIRECT_SHARED_ACCESS, sizeof(bool), &amp;amp;ze_indirect_value)
ZE ---&amp;gt; zeKernelSetAttribute( kernel-&amp;gt;L0Kernel, ZE_KERNEL_ATTR_INDIRECT_DEVICE_ACCESS, sizeof(bool), &amp;amp;ze_indirect_value)
ZE ---&amp;gt; zeKernelSetAttribute( kernel-&amp;gt;L0Kernel, ZE_KERNEL_ATTR_INDIRECT_HOST_ACCESS, sizeof(bool), &amp;amp;ze_indirect_value)
ZE ---&amp;gt; zeKernelSuggestGroupSize(kernel-&amp;gt;L0Kernel, global_work_size[0], global_work_size[1], global_work_size[2], &amp;amp;wg[0], &amp;amp;wg[1], &amp;amp;wg[2])
ZE ---&amp;gt; zeKernelSetGroupSize(kernel-&amp;gt;L0Kernel, wg[0], wg[1], wg[2])
ZE ---&amp;gt; zeCommandListCreate( L0Device, &amp;amp;ze_command_list_desc, &amp;amp;ze_command_list)
Error (ZE_RESULT_ERROR_INVALID_ENUMERATION) in zeCommandListCreate( L0Device, &amp;amp;ze_command_list_desc, &amp;amp;ze_command_list)
pi_throw: L0 Error
terminate called after throwing an instance of 'char const*'
Aborted (core dumped)
&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jun 2020 21:25:41 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1185914#M466</guid>
      <dc:creator>CFR</dc:creator>
      <dc:date>2020-06-09T21:25:41Z</dc:date>
    </item>
    <item>
      <title>Hi,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1185915#M467</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Thanks for providing&amp;nbsp;detailed info. It looks like a bug with the L0 backend from the log.&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;I have other, similar, codes that exhibit the same problem&lt;/P&gt;&lt;P&gt;The error does _not_ occur for the cpu_selector, only for the gpu_selector&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;This issue&amp;nbsp;is with L0 backend or OpenCL backend?&lt;/P&gt;&lt;P&gt;A point to note here is that the default Backend for GPU(or any accelerator for that matter) would be L0, unless you change it explicitly at rutime (using SYCL_BE variable). That should answer your question as to why it doesn't fail when you use cpu_selector (Since default BE for CPU device&amp;nbsp;is OpenCL).&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;After poking through some source it turns out that setting ZE_DEBUG environment variable will trace the internal calls.&amp;nbsp;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;We have a similar environment variable SYCL_PI_TRACE=2 (The integer here indicates the volume of debug log) to trace the internal calls.&lt;/P&gt;&lt;P&gt;I will escalate the L0 backend runtime inconsistency&amp;nbsp;issue&amp;nbsp;to the concerned team.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;--Rahul&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jun 2020 06:06:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1185915#M467</guid>
      <dc:creator>RahulV_intel</dc:creator>
      <dc:date>2020-06-10T06:06:00Z</dc:date>
    </item>
    <item>
      <title>Not sure I know enough to</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1185916#M468</link>
      <description>&lt;P&gt;Not sure I know enough to correctly answer, but using ```sycl::device dev = sycl::cpu_selector().select_device();``` never produces an error.&amp;nbsp; Using ```sycl::device dev = sycl::gpu_selector().select_device();``` does produce errors.&amp;nbsp; If you're saying "cpu_selector" and using "SYCL_BE=PI_OPENCL" are equivalent, then that would make sense.&lt;/P&gt;&lt;P&gt;I tried running with SYCL_PI_TRACE=2 and I get close to 1000 lines of output, but it does not ever produce the error (tried more than 100 executions).&amp;nbsp; For yucks I tried SYCL_PI_TRACE=1 and it's pretty much back to my original case with random executions producing errors:&lt;/P&gt;
&lt;PRE class="brush:plain; class-name:dark;"&gt;user@t570:~/OneAPI/Code$ SYCL_PI_TRACE=1 ./bug2
SYCL_PI_TRACE[1]: Plugin found and successfully loaded: libpi_opencl.so
SYCL_PI_TRACE[1]: Plugin found and successfully loaded: libpi_level0.so
SYCL_PI_TRACE[1]: select_device(): -&amp;gt;
SYCL_PI_TRACE[1]:   platform: Level-Zero 0.8
SYCL_PI_TRACE[1]:   device: Intel(R) Gen9
Device: name: Intel(R) Gen9
vendor: Intel
Error (ZE_RESULT_ERROR_INVALID_ENUMERATION) in zeCommandListCreate( L0Device, &amp;amp;ze_command_list_desc, &amp;amp;ze_command_list)
pi_throw: L0 Error
Error (ZE_RESULT_ERROR_INVALID_ENUMERATION) in zeCommandListCreate( L0Device, &amp;amp;ze_command_list_desc, &amp;amp;ze_command_list)
pi_throw: L0 Error
Error (ZE_RESULT_ERROR_INVALID_ENUMERATION) in zeCommandListCreate( L0Device, &amp;amp;ze_command_list_desc, &amp;amp;ze_command_list)
pi_throw: L0 Error
terminate called after throwing an instance of 'char const*'
Aborted (core dumped)
&lt;/PRE&gt;

&lt;P&gt;It looks like I never mentioned the OneAPI version I'm using:&lt;/P&gt;

&lt;PRE class="brush:plain; class-name:dark;"&gt;user@t570:~/OneAPI/Code$ dpcpp --version
Intel(R) oneAPI DPC++ Compiler 2021.1-beta06 (2020.4.0.0415)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /local/opt/intel/inteloneapi/compiler/latest/linux/bin
&lt;/PRE&gt;

&lt;P&gt;If you need any additional information on my environment let me know.&amp;nbsp; I'd also be happy to run an instrumented libpi_level0.so if it would help uncover just what zeCommandListCreate is unhappy about.&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jun 2020 18:45:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1185916#M468</guid>
      <dc:creator>CFR</dc:creator>
      <dc:date>2020-06-10T18:45:53Z</dc:date>
    </item>
    <item>
      <title>Hi,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1185917#M469</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;Not sure I know enough to correctly answer, but using ```sycl::device dev = sycl::cpu_selector().select_device();``` never produces an error.&amp;nbsp; Using ```sycl::device dev = sycl::gpu_selector().select_device();``` does produce errors.&amp;nbsp; If you're saying "cpu_selector" and using "SYCL_BE=PI_OPENCL" are equivalent, then that would make sense.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Not exactly! DPC++ runtime offers multiple&amp;nbsp;plugin interfaces(Backends)&amp;nbsp;for the device execution to take place.&amp;nbsp;&lt;/P&gt;&lt;P&gt;The DPC++ Runtime Plugin Interface (PI) is an interface layer between the device-agnostic part of DPC++ runtime and the device-specific runtime layers which control execution on devices. It employs the “plugin” mechanism to bind to the device specific runtime layers like OpenCL/Level0(L0).&lt;/P&gt;&lt;P&gt;When you select gpu_selector(), it defaults to Level0 backend(BE) as per the current implementation.&amp;nbsp;&lt;/P&gt;&lt;P&gt;SYCL_BE environment variable alters this&amp;nbsp;default behavior.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;SYCL_BE=PI_OPENCL ./bug2&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;What the above statement essentially does&amp;nbsp;is that, it asks&amp;nbsp;DPC++ runtime to change the default behavior from Level0(L0) to OpenCL.&lt;/P&gt;&lt;P&gt;Previously, when you had&amp;nbsp;not set this environment variable, it was running on Level0 default backend(On GPU). That is the reason I had asked you to change the default BE to OpenCL and check if you are still facing the same error.&lt;/P&gt;&lt;P&gt;Coming back to cpu_selector(), the current implementation by default sets OpenCL backend PI, in case of a CPU device. Even though&amp;nbsp;you did not set the SYCL_BE variable explicitly in this case, it was by default using OpenCL BE. That is the reason you did not observe any issues with cpu_selector() (since its running on OpenCL BE by default).&lt;/P&gt;&lt;P&gt;The reason that I had asked you to check with OpenCL BE(for gpu_selector()) is to see whether you observe similar behavior there too. As per your claims, you did not observe any runtime inconsistencies with OpenCL. Therefore, I had suspected&amp;nbsp;it&amp;nbsp;to be an L0 bug.&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;--Rahul&lt;/P&gt;</description>
      <pubDate>Thu, 11 Jun 2020 05:47:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1185917#M469</guid>
      <dc:creator>RahulV_intel</dc:creator>
      <dc:date>2020-06-11T05:47:00Z</dc:date>
    </item>
    <item>
      <title>appears to be fixed in beta07</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1185918#M470</link>
      <description>&lt;P&gt;appears to be fixed by&amp;nbsp;beta07&lt;/P&gt;&lt;P&gt;I upgraded to beta07 and this problem seems to have gone away.&amp;nbsp; Not sure if it was something in the OneAPI distribution that got fixed or whether I "fixed" something when I updated the software, but...&amp;nbsp; I will note in the following that platform is now 0.91 vs. 0.8 before.&lt;/P&gt;
&lt;PRE class="brush:plain; class-name:dark;"&gt;user@t570:~/OneAPI/Code$ SYCL_PI_TRACE=1 ./bug2
SYCL_PI_TRACE[basic]: Plugin found and successfully loaded: libpi_opencl.so
SYCL_PI_TRACE[basic]: Plugin found and successfully loaded: libpi_level0.so
SYCL_PI_TRACE[all]: Selected device -&amp;gt;
SYCL_PI_TRACE[all]:   platform: 0.91
SYCL_PI_TRACE[all]:   device: Intel(R) Gen9
Device: name: Intel(R) Gen9
vendor: Intel(R) Corporation
 0    1    2    3    4    5    6   
10   11   12   13   14   15   16   
20   21   22   23   24   25   26   
30   31   32   33   34   35   36   
&lt;/PRE&gt;

&lt;P&gt;Though ZE_DEBUG seems to indicate version went from 0.8 -&amp;gt; 0.0.8. *shrug*&lt;/P&gt;

&lt;PRE class="brush:plain; class-name:dark;"&gt;user@t570:~/OneAPI/Code$ ZE_DEBUG=1 ./bug2
ZE ---&amp;gt; zeInit
ZE ---&amp;gt; zeInit
ZE ---&amp;gt; zeDriverGet(&amp;amp;ZeDriverCount, nullptr)
ZE ---&amp;gt; zeDriverGet(&amp;amp;ZeDriverCount, &amp;amp;ZeDriver)
ZE ---&amp;gt; zeDriverGetProperties(ZeDriver, &amp;amp;ZeDriverProperties)
ZE ---&amp;gt; zeDriverGetApiVersion(ZeDriver, &amp;amp;ZeApiVersion)
ZE ---&amp;gt; zeDeviceGet(ZeDriver, &amp;amp;ZeDeviceCount, nullptr)
ZE ---&amp;gt; zeDeviceGet(ZeDriver, &amp;amp;ZeDeviceCount, ZeDevices)
ZE ---&amp;gt; zeDeviceGet(ZeDriver, &amp;amp;ZeDeviceCount, nullptr)
ZE ---&amp;gt; zeDeviceGet(ZeDriver, &amp;amp;ZeDeviceCount, ZeDevices)
ZE ---&amp;gt; zeCommandListCreateImmediate(ZeDevice, &amp;amp;ze_command_queue_desc, &amp;amp;ZeCommandListInit)
ZE ---&amp;gt; zeDeviceGetProperties(ZeDevice, &amp;amp;ZeDeviceProperties)
ZE ---&amp;gt; zeDeviceGetComputeProperties(ZeDevice, &amp;amp;ZeDeviceComputeProperties)
ZE ---&amp;gt; zeDeviceGetMemoryProperties(ZeDevice, &amp;amp;ZeAvailMemCount, nullptr)
ZE ---&amp;gt; zeDeviceGetMemoryProperties(ZeDevice, &amp;amp;ZeAvailMemCount, ZeDeviceMemoryProperties)
ZE ---&amp;gt; zeDeviceGetImageProperties(ZeDevice, &amp;amp;ZeDeviceImageProperties)
ZE ---&amp;gt; zeDeviceGetKernelProperties(ZeDevice, &amp;amp;ZeDeviceKernelProperties)
ZE ---&amp;gt; zeDeviceGetCacheProperties(ZeDevice, &amp;amp;ZeDeviceCacheProperties)
ZE ---&amp;gt; zeDeviceGetMemoryProperties(ZeDevice, &amp;amp;ZeAvailMemCount, nullptr)
ZE ---&amp;gt; zeDeviceGetMemoryProperties(ZeDevice, &amp;amp;ZeAvailMemCount, ZeDeviceMemoryProperties)
ZE ---&amp;gt; zeDeviceGetImageProperties(ZeDevice, &amp;amp;ZeDeviceImageProperties)
ZE ---&amp;gt; zeDeviceGetKernelProperties(ZeDevice, &amp;amp;ZeDeviceKernelProperties)
ZE ---&amp;gt; zeDeviceGetCacheProperties(ZeDevice, &amp;amp;ZeDeviceCacheProperties)
ZE ---&amp;gt; zeDeviceGetMemoryProperties(ZeDevice, &amp;amp;ZeAvailMemCount, nullptr)
ZE ---&amp;gt; zeDeviceGetMemoryProperties(ZeDevice, &amp;amp;ZeAvailMemCount, ZeDeviceMemoryProperties)
ZE ---&amp;gt; zeDeviceGetImageProperties(ZeDevice, &amp;amp;ZeDeviceImageProperties)
ZE ---&amp;gt; zeDeviceGetKernelProperties(ZeDevice, &amp;amp;ZeDeviceKernelProperties)
ZE ---&amp;gt; zeDeviceGetCacheProperties(ZeDevice, &amp;amp;ZeDeviceCacheProperties)
ZE ---&amp;gt; zeDeviceGet(ZeDriver, &amp;amp;ZeDeviceCount, nullptr)
ZE ---&amp;gt; zeDeviceGet(ZeDriver, &amp;amp;ZeDeviceCount, ZeDevices)
ZE ---&amp;gt; zeDeviceGet(ZeDriver, &amp;amp;ZeDeviceCount, nullptr)
ZE ---&amp;gt; zeDeviceGet(ZeDriver, &amp;amp;ZeDeviceCount, ZeDevices)
ZE ---&amp;gt; zeCommandListCreateImmediate(ZeDevice, &amp;amp;ze_command_queue_desc, &amp;amp;ZeCommandListInit)
ZE ---&amp;gt; zeDeviceGetProperties(ZeDevice, &amp;amp;ZeDeviceProperties)
ZE ---&amp;gt; zeDeviceGetComputeProperties(ZeDevice, &amp;amp;ZeDeviceComputeProperties)
ZE ---&amp;gt; zeDeviceGetMemoryProperties(ZeDevice, &amp;amp;ZeAvailMemCount, nullptr)
ZE ---&amp;gt; zeDeviceGetMemoryProperties(ZeDevice, &amp;amp;ZeAvailMemCount, ZeDeviceMemoryProperties)
ZE ---&amp;gt; zeDeviceGetImageProperties(ZeDevice, &amp;amp;ZeDeviceImageProperties)
ZE ---&amp;gt; zeDeviceGetKernelProperties(ZeDevice, &amp;amp;ZeDeviceKernelProperties)
ZE ---&amp;gt; zeDeviceGetCacheProperties(ZeDevice, &amp;amp;ZeDeviceCacheProperties)
ZE ---&amp;gt; zeDeviceGetMemoryProperties(ZeDevice, &amp;amp;ZeAvailMemCount, nullptr)
ZE ---&amp;gt; zeDeviceGetMemoryProperties(ZeDevice, &amp;amp;ZeAvailMemCount, ZeDeviceMemoryProperties)
ZE ---&amp;gt; zeDeviceGetImageProperties(ZeDevice, &amp;amp;ZeDeviceImageProperties)
ZE ---&amp;gt; zeDeviceGetKernelProperties(ZeDevice, &amp;amp;ZeDeviceKernelProperties)
ZE ---&amp;gt; zeDeviceGetCacheProperties(ZeDevice, &amp;amp;ZeDeviceCacheProperties)
ZE ---&amp;gt; zeDeviceGetMemoryProperties(ZeDevice, &amp;amp;ZeAvailMemCount, nullptr)
ZE ---&amp;gt; zeDeviceGetMemoryProperties(ZeDevice, &amp;amp;ZeAvailMemCount, ZeDeviceMemoryProperties)
ZE ---&amp;gt; zeDeviceGetImageProperties(ZeDevice, &amp;amp;ZeDeviceImageProperties)
ZE ---&amp;gt; zeDeviceGetKernelProperties(ZeDevice, &amp;amp;ZeDeviceKernelProperties)
ZE ---&amp;gt; zeDeviceGetCacheProperties(ZeDevice, &amp;amp;ZeDeviceCacheProperties)
ZE ---&amp;gt; zeDeviceGetMemoryProperties(ZeDevice, &amp;amp;ZeAvailMemCount, nullptr)
ZE ---&amp;gt; zeDeviceGetMemoryProperties(ZeDevice, &amp;amp;ZeAvailMemCount, ZeDeviceMemoryProperties)
ZE ---&amp;gt; zeDeviceGetImageProperties(ZeDevice, &amp;amp;ZeDeviceImageProperties)
ZE ---&amp;gt; zeDeviceGetKernelProperties(ZeDevice, &amp;amp;ZeDeviceKernelProperties)
ZE ---&amp;gt; zeDeviceGetCacheProperties(ZeDevice, &amp;amp;ZeDeviceCacheProperties)
ZE ---&amp;gt; zeDeviceGetMemoryProperties(ZeDevice, &amp;amp;ZeAvailMemCount, nullptr)
ZE ---&amp;gt; zeDeviceGetMemoryProperties(ZeDevice, &amp;amp;ZeAvailMemCount, ZeDeviceMemoryProperties)
ZE ---&amp;gt; zeDeviceGetImageProperties(ZeDevice, &amp;amp;ZeDeviceImageProperties)
ZE ---&amp;gt; zeDeviceGetKernelProperties(ZeDevice, &amp;amp;ZeDeviceKernelProperties)
ZE ---&amp;gt; zeDeviceGetCacheProperties(ZeDevice, &amp;amp;ZeDeviceCacheProperties)
Device: name: Intel(R) Gen9
ZE ---&amp;gt; zeDeviceGetMemoryProperties(ZeDevice, &amp;amp;ZeAvailMemCount, nullptr)
ZE ---&amp;gt; zeDeviceGetMemoryProperties(ZeDevice, &amp;amp;ZeAvailMemCount, ZeDeviceMemoryProperties)
ZE ---&amp;gt; zeDeviceGetImageProperties(ZeDevice, &amp;amp;ZeDeviceImageProperties)
ZE ---&amp;gt; zeDeviceGetKernelProperties(ZeDevice, &amp;amp;ZeDeviceKernelProperties)
ZE ---&amp;gt; zeDeviceGetCacheProperties(ZeDevice, &amp;amp;ZeDeviceCacheProperties)
ZE ---&amp;gt; zeDeviceGetMemoryProperties(ZeDevice, &amp;amp;ZeAvailMemCount, nullptr)
ZE ---&amp;gt; zeDeviceGetMemoryProperties(ZeDevice, &amp;amp;ZeAvailMemCount, ZeDeviceMemoryProperties)
ZE ---&amp;gt; zeDeviceGetImageProperties(ZeDevice, &amp;amp;ZeDeviceImageProperties)
ZE ---&amp;gt; zeDeviceGetKernelProperties(ZeDevice, &amp;amp;ZeDeviceKernelProperties)
ZE ---&amp;gt; zeDeviceGetCacheProperties(ZeDevice, &amp;amp;ZeDeviceCacheProperties)
vendor: Intel(R) Corporation
==========================
SYCL over Level-Zero 0.0.8
==========================
==========================
SYCL over Level-Zero 0.0.8
==========================
ZE ---&amp;gt; zeCommandQueueCreate(ZeDevice, &amp;amp;ZeCommandQueueDesc, &amp;amp;ZeCommandQueue)
ZE ---&amp;gt; zeDriverAllocDeviceMem(Context-&amp;gt;Device-&amp;gt;Platform-&amp;gt;ZeDriver, &amp;amp;ZeDesc, Size, 1, ZeDevice, &amp;amp;Ptr)
ZE ---&amp;gt; zeCommandListAppendMemoryCopy(Context-&amp;gt;Device-&amp;gt;ZeCommandListInit, Ptr, HostPtr, Size, nullptr)
ZE ---&amp;gt; zeModuleCreate(ZeDevice, &amp;amp;Program-&amp;gt;ZeModuleDesc, &amp;amp;Program-&amp;gt;ZeModule, &amp;amp;Program-&amp;gt;ZeBuildLog)
ZE ---&amp;gt; zeKernelCreate(pi_cast&amp;lt;ze_module_handle_t&amp;gt;(Program-&amp;gt;ZeModule), &amp;amp;ZeKernelDesc, &amp;amp;ZeKernel)
ZE ---&amp;gt; zeKernelSetArgumentValue(pi_cast&amp;lt;ze_kernel_handle_t&amp;gt;(Kernel-&amp;gt;ZeKernel), pi_cast&amp;lt;uint32_t&amp;gt;(ArgIndex), sizeof(void *), (*ArgValue)-&amp;gt;getZeHandlePtr())
ZE ---&amp;gt; zeKernelSetArgumentValue( pi_cast&amp;lt;ze_kernel_handle_t&amp;gt;(Kernel-&amp;gt;ZeKernel), pi_cast&amp;lt;uint32_t&amp;gt;(ArgIndex), pi_cast&amp;lt;size_t&amp;gt;(ArgSize), pi_cast&amp;lt;const void *&amp;gt;(ArgValue))
ZE ---&amp;gt; zeKernelSetArgumentValue( pi_cast&amp;lt;ze_kernel_handle_t&amp;gt;(Kernel-&amp;gt;ZeKernel), pi_cast&amp;lt;uint32_t&amp;gt;(ArgIndex), pi_cast&amp;lt;size_t&amp;gt;(ArgSize), pi_cast&amp;lt;const void *&amp;gt;(ArgValue))
ZE ---&amp;gt; zeKernelSetArgumentValue( pi_cast&amp;lt;ze_kernel_handle_t&amp;gt;(Kernel-&amp;gt;ZeKernel), pi_cast&amp;lt;uint32_t&amp;gt;(ArgIndex), pi_cast&amp;lt;size_t&amp;gt;(ArgSize), pi_cast&amp;lt;const void *&amp;gt;(ArgValue))
ZE ---&amp;gt; zeKernelSetAttribute(Kernel-&amp;gt;ZeKernel, ZE_KERNEL_ATTR_INDIRECT_SHARED_ACCESS, sizeof(bool), &amp;amp;ZeIndirectValue)
ZE ---&amp;gt; zeKernelSetAttribute(Kernel-&amp;gt;ZeKernel, ZE_KERNEL_ATTR_INDIRECT_DEVICE_ACCESS, sizeof(bool), &amp;amp;ZeIndirectValue)
ZE ---&amp;gt; zeKernelSetAttribute(Kernel-&amp;gt;ZeKernel, ZE_KERNEL_ATTR_INDIRECT_HOST_ACCESS, sizeof(bool), &amp;amp;ZeIndirectValue)
ZE ---&amp;gt; zeKernelSuggestGroupSize(Kernel-&amp;gt;ZeKernel, GlobalWorkSize[0], GlobalWorkSize[1], GlobalWorkSize[2], &amp;amp;WG[0], &amp;amp;WG[1], &amp;amp;WG[2])
ZE ---&amp;gt; zeKernelSetGroupSize(Kernel-&amp;gt;ZeKernel, WG[0], WG[1], WG[2])
ZE ---&amp;gt; zeCommandListCreate(ZeDevice, &amp;amp;ZeCommandListDesc, ZeCommandList)
ZE ---&amp;gt; Context-&amp;gt;getFreeSlotInExistingOrNewPool(ZeEventPool, Index)
ZE ---&amp;gt; zeEventCreate(ZeEventPool, &amp;amp;ZeEventDesc, &amp;amp;ZeEvent)
ZE ---&amp;gt; zeCommandListAppendLaunchKernel( ZeCommandList, Kernel-&amp;gt;ZeKernel, &amp;amp;ZeThreadGroupDimensions, ZeEvent, NumEventsInWaitList, ZeEventWaitList)
calling zeCommandListAppendLaunchKernel() with  ZeEvent 33396a0
  NumEventsInWaitList 0:
ZE ---&amp;gt; zeCommandListClose(ZeCommandList)
ZE ---&amp;gt; zeCommandQueueExecuteCommandLists(ZeCommandQueue, 1, &amp;amp;ZeCommandList, nullptr)
ZeEvent = 33396a0
ZE ---&amp;gt; zeEventHostSynchronize(ZeEvent, 100000)
ZE ---&amp;gt; ZeResult
ZE ---&amp;gt; zeCommandListDestroy(EventList&lt;I&gt;-&amp;gt;ZeCommandList)
ZE ---&amp;gt; zeCommandListCreate(ZeDevice, &amp;amp;ZeCommandListDesc, ZeCommandList)
ZE ---&amp;gt; Context-&amp;gt;getFreeSlotInExistingOrNewPool(ZeEventPool, Index)
ZE ---&amp;gt; zeEventCreate(ZeEventPool, &amp;amp;ZeEventDesc, &amp;amp;ZeEvent)
ZE ---&amp;gt; zeCommandListAppendWaitOnEvents(ZeCommandList, NumEventsInWaitList, ZeEventWaitList)
ZE ---&amp;gt; zeCommandListAppendMemoryCopy(ZeCommandList, Dst, Src, Size, ZeEvent)
ZE ---&amp;gt; zeCommandListClose(ZeCommandList)
ZE ---&amp;gt; zeCommandQueueExecuteCommandLists(ZeCommandQueue, 1, &amp;amp;ZeCommandList, nullptr)
calling zeCommandListAppendMemoryCopy() with
  xe_event 32d04f0
  NumEventsInWaitList 1: 33396a0
ZeEvent = 32d04f0
ZE ---&amp;gt; zeEventHostSynchronize(ZeEvent, 100000)
ZE ---&amp;gt; ZeResult
ZE ---&amp;gt; zeCommandListDestroy(EventList&lt;I&gt;-&amp;gt;ZeCommandList)
ZeEvent = 32d04f0
ZE ---&amp;gt; zeEventHostSynchronize(ZeEvent, 100000)
ZE ---&amp;gt; ZeResult
ZeEvent = 33396a0
ZE ---&amp;gt; zeEventHostSynchronize(ZeEvent, 100000)
ZE ---&amp;gt; ZeResult
ZE ---&amp;gt; zeDriverFreeMem(Mem-&amp;gt;Platform-&amp;gt;ZeDriver, Mem-&amp;gt;getZeHandle())
ZE ---&amp;gt; zeEventDestroy(Event-&amp;gt;ZeEvent)
ZE ---&amp;gt; Context-&amp;gt;decrementAliveEventsInPool(Event-&amp;gt;ZeEventPool)
ZE ---&amp;gt; zeEventDestroy(Event-&amp;gt;ZeEvent)
ZE ---&amp;gt; Context-&amp;gt;decrementAliveEventsInPool(Event-&amp;gt;ZeEventPool)
 0    1    2    3    4    5    6   
10   11   12   13   14   15   16   
20   21   22   23   24   25   26   
30   31   32   33   34   35   36   
ZE ---&amp;gt; zeCommandQueueDestroy(Queue-&amp;gt;ZeCommandQueue)
&lt;/I&gt;&lt;/I&gt;&lt;/PRE&gt;

&lt;P&gt;Not really sure what the story is but if you're reading this because you get the ZE_RESULT_ERROR_INVALID_ENUMERATION error try updating to beta07.&amp;nbsp; Worked for me.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Jun 2020 00:29:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1185918#M470</guid>
      <dc:creator>CFR</dc:creator>
      <dc:date>2020-06-22T00:29:50Z</dc:date>
    </item>
    <item>
      <title>Re:runtime error: ZE_RESULT_ERROR_INVALID_ENUMERATION</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1196895#M621</link>
      <description>&lt;P&gt;&lt;I&gt;This issue has been resolved and we will no longer respond to this thread.&amp;nbsp;If you require additional assistance from Intel, please start a new thread.&amp;nbsp;Any further interaction in this thread will be considered community only&lt;/I&gt;.&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Mon, 03 Aug 2020 11:59:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/runtime-error-ZE-RESULT-ERROR-INVALID-ENUMERATION/m-p/1196895#M621</guid>
      <dc:creator>Subarnarek_G_Intel</dc:creator>
      <dc:date>2020-08-03T11:59:42Z</dc:date>
    </item>
  </channel>
</rss>

