clpeak
clpeak copied to clipboard
ASSERTION FAILED: sel.hasHalfType()
Hello,
I am running clpeak from master with beignet 1.3.2 on openSUSE Leap 15.1. The same behavior with 3rd and 4th Intel CPU generations.
Platform: Intel Gen OCL Driver
Device: Intel(R) HD Graphics IvyBridge GT1
Driver version : 1.3 (Linux x64)
Compute units : 6
Clock frequency : 1000 MHz
ASSERTION FAILED: sel.hasHalfType()
at file /home/abuild/rpmbuild/BUILD/Beignet-1.3.2-Source/backend/src/backend/gen_insn_selection.cpp, function void gbe::ConvertInstructionPattern::convert32bitsToSmall(gbe::Selection::Opaque&, const gbe::ir::ConvertInstruction&, bool&) const, line 5841
fish: './clpeak' terminated by signal SIGTRAP (Trace or breakpoint trap)
Platform: Intel Gen OCL Driver
Device: Intel(R) HD Graphics Haswell GT2 Desktop
Driver version : 1.3 (Linux x64)
Compute units : 20
Clock frequency : 1000 MHz
ASSERTION FAILED: sel.hasHalfType()
at file /home/abuild/rpmbuild/BUILD/Beignet-1.3.2-Source/backend/src/backend/gen_insn_selection.cpp, function void gbe::ConvertInstructionPattern::convert32bitsToSmall(gbe::Selection::Opaque&, const gbe::ir::ConvertInstruction&, bool&) const, line 5841
Trace/breakpoint trap (core dumped)
When gdb is uses to trap the fault:
(gdb) bt
#0 0x00007fffec274e2d in ?? () from /usr/lib64/beignet//libgbe.so
#1 0x00007fffec3afcb1 in ?? () from /usr/lib64/beignet//libgbe.so
#2 0x00007fffec390105 in ?? () from /usr/lib64/beignet//libgbe.so
#3 0x00007fffec390701 in ?? () from /usr/lib64/beignet//libgbe.so
#4 0x00007fffec3914cd in ?? () from /usr/lib64/beignet//libgbe.so
#5 0x00007fffec44334b in ?? () from /usr/lib64/beignet//libgbe.so
#6 0x00007fffec2d3532 in ?? () from /usr/lib64/beignet//libgbe.so
#7 0x00007fffec45aa4e in ?? () from /usr/lib64/beignet//libgbe.so
#8 0x00007fffec2d70fd in ?? () from /usr/lib64/beignet//libgbe.so
#9 0x00007fffec2d7404 in ?? () from /usr/lib64/beignet//libgbe.so
#10 0x00007fffec45b412 in ?? () from /usr/lib64/beignet//libgbe.so
#11 0x00007fffec2e9158 in ?? () from /usr/lib64/beignet//libgbe.so
#12 0x00007ffff01da651 in ?? () from /usr/lib64/beignet//libcl.so
#13 0x00007ffff01d0237 in clBuildProgram () from /usr/lib64/beignet//libcl.so
#14 0x00007ffff7bc0b8f in clBuildProgram () from /usr/lib64/libOpenCL.so.1
#15 0x00000000004088a8 in cl::Program::build (this=this@entry=0x7fffffffde08, devices=std::vector of length 1, capacity 1 = {...}, options=options@entry=0x418feb " -cl-mad-enable ",
notifyFptr=notifyFptr@entry=0x0, data=data@entry=0x0) at /home/matwey/temp/clpeak/build/clhpp_install/include/CL/cl.hpp:5273
#16 0x0000000000407a9e in clPeak::runAll (this=this@entry=0x7fffffffe0e0) at /home/matwey/temp/clpeak/src/clpeak.cpp:98
#17 0x000000000040567d in main (argc=1, argv=0x7fffffffe208) at /home/matwey/temp/clpeak/src/entry.cpp:9
Even if this hardware configuration cannot be supported, I would expect more informative message than the crash.
This seems like a beignet issue. The call-stack points deep inside cl::Program::build()
Initially, I supposed that clpeak may use some feature without explicitly checking it support.
Anyway, I've checked with Beignet from master, result is the same.
For the record. The same software configuration works well on never CPU:
Platform: Intel Gen OCL Driver
Device: Intel(R) HD Graphics Kabylake ULT GT2
Driver version : 1.3 (Linux x64)
Compute units : 24
Clock frequency : 1000 MHz
Global memory bandwidth (GBPS)
float : 26.90
float2 : 27.86
float4 : 27.67
float8 : 27.20
float16 : 25.87
Single-precision compute (GFLOPS)
float : 364.71
float2 : 379.20
float4 : 378.50
float8 : 376.99
float16 : 375.05
half-precision compute (GFLOPS)
half : 455.54
half2 : 745.82
half4 : 749.58
half8 : 746.53
half16 : 741.75
No double precision support! Skipped
Transfer bandwidth (GBPS)
enqueueWriteBuffer : 25.97
enqueueReadBuffer : 12.41
enqueueMapBuffer(for read) : 113623.47
memcpy from mapped ptr : 12.42
enqueueUnmap(after write) : 119304.65
memcpy to mapped ptr : 12.38
Kernel launch latency : 35.64 us
Raised an issue for Beignet: https://gitlab.freedesktop.org/beignet/beignet/-/issues/84
Thanks