glow icon indicating copy to clipboard operation
glow copied to clipboard

[OpenCL] all but one of the example applications fail (cannot find elementselectW16 kernel or decoder_output_concat1 operation not supported)

Open pjaaskel opened this issue 7 years ago • 4 comments

With pocl:

$ POCL_DEBUG=1 bin/mnist -platform=0 -device=0 -opencl
Loading the mnist database.
...
[2019-04-01 15:23:40.903036977]POCL: in fn POclCreateKernel at line 80:
  |     ERROR | CL_INVALID_KERNEL_NAME Can't find a the kernel with name elementselectW16 in this program
../lib/Backends/OpenCL/OpenCL.cpp:168: failed assertion `kernel && "clCreateKernel Failed."'
Aborted (core dumped)

Tested also with the Intel's CPU driver:

$ OCL_ICD_VENDORS=/etc/OpenCL/vendors/intel_exp64.icd bin/mnist -platform=0 -device=0 -opencl
Loading the mnist database.
Loaded 50000 images.
Training.
Training - epoch #0
../lib/Backends/OpenCL/OpenCL.cpp:168: failed assertion `kernel && "clCreateKernel Failed."'
Aborted (core dumped)

pjaaskel avatar May 01 '19 15:05 pjaaskel

Thanks for reporting it! Looks like an oversight.

We need to add the missing variants of this kernel similar to how we do it for e.g. elementcmplte kernel.

opti-mix avatar May 01 '19 15:05 opti-mix

Actually seems all but ptb fail with OpenCL. cifar10 fails with the same missing kernel.

The other error I get for char-rnn and fr2en is

../lib/ExecutionEngine/ExecutionEngine.cpp:260: void glow::ExecutionEngine::compile(glow::Function *, const glow::CompilationContext &, bool): Assertion `backend_->isOpSupported(N) && "Backend must support all nodes after high-level optimizations."' failed.
...
(gdb) print N
$1 = (const glow::Node &) @0x4da91d0: {<glow::Named> = {name_ = "decoder_output_concat1"}, <glow::Kinded> = {
    kind_ = glow::Kinded::Kind::ConcatNodeKind}, <glow::UseDef<glow::Node, glow::NodeUse>> = {
    users_ = {<std::__cxx11::_List_base<glow::NodeUse, std::allocator<glow::NodeUse> >> = {
        _M_impl = {<std::allocator<std::_List_node<glow::NodeUse> >> = {<__gnu_cxx::new_allocator<std::_List_node<glow::NodeUse> >> = {<No data fields>}, <No data fields>}, _M_node = {<std::__detail::_List_node_base> = {
              _M_next = 0x4d74a00, _M_prev = 0x4d74a00}, 
            _M_data = 1}}}, <No data fields>}}, <llvm::ilist_node<glow::Node>> = {<llvm::ilist_node_impl<llvm::ilist_detail::node_options<glow::Node, true, false, void> >> = {<llvm::ilist_node_base<true>> = {
        PrevAndSentinel = {Value = 81402144}, Next = 0x4da96d0}, <No data fields>}, <No data fields>}, 
  static maxNodeResno_ = 6, types_ = {_M_elems = {0x4c874a0, 0x9d87cc607f19691c, 0x4da91f0, 0x121, 0x4dadba0, 
      0x4daf590}}, numRes_ = 1, predicate_ = {<glow::NodeValue> = {node_ = 0x0, resNo_ = 0}, 
    parent_ = 0x4da91d0}, parent_ = 0x4c86000}

pjaaskel avatar May 03 '19 14:05 pjaaskel

@SplitInfinity This is fixed now, right?

opti-mix avatar May 27 '19 18:05 opti-mix

For mnist and cifar10 yes, but not for char-rnn and fr2en. I think those fail with a different error.

SplitInfinity avatar May 28 '19 21:05 SplitInfinity