IvyBridge GT1: ASSERTION FAILED: Half precision not supported on this device
Hello,
I am running Beignet from master
(fc5f430c) and see the following issue when trying to run clpeak
(https://github.com/krrishnarraj/clpeak).
My graphics hardware is embedded Intel CPU i5-3470 graphics.
Device: Intel(R) HD Graphics IvyBridge GT1
Driver version : 1.4 (Linux x64)
Compute units : 6
Clock frequency : 1000 MHz
ASSERTION FAILED: Half precision not supported on this device
at file /home/matwey/lab/beignet/backend/src/backend/gen_insn_selection.cpp, function void gbe::ConvertInstructionPattern::convert32bitsToSmall(gbe::Selection::Opaque&, const gbe::ir::ConvertInstruction&, bool&) const, line 5836
Thread 1 "clpeak" received signal SIGTRAP, Trace/breakpoint trap.
When I use gdb
to catch the trap I see the following backtrace:
(gdb) bt
#0 gbe::onFailedAssertion (msg=<optimized out>, file=<optimized out>, fn=<optimized out>, line=<optimized out>) at /home/matwey/lab/beignet/backend/src/sys/assert.cpp:76
#1 0x00007ffff47d5d33 in gbe::ConvertInstructionPattern::convert32bitsToSmall (markChildren=<synthetic pointer>: <optimized out>, insn=..., sel=..., this=<optimized out>)
at /home/matwey/lab/beignet/backend/src/backend/gen_insn_selection.cpp:5836
#2 gbe::ConvertInstructionPattern::emitOne (markChildren=<synthetic pointer>: <optimized out>, insn=..., sel=..., this=<optimized out>)
at /home/matwey/lab/beignet/backend/src/backend/gen_insn_selection.cpp:6503
#3 gbe::OneToManyPattern<gbe::ConvertInstructionPattern, gbe::ir::ConvertInstruction>::emit (this=<optimized out>, sel=..., dag=...)
at /home/matwey/lab/beignet/backend/src/backend/gen_insn_selection.cpp:3043
#4 0x00007ffff47ac11f in gbe::Selection::Opaque::matchBasicBlock (this=this@entry=0xbfecb0, bb=..., insnNum=<optimized out>)
at /home/matwey/lab/beignet/backend/src/backend/gen_insn_selection.cpp:2635
#5 0x00007ffff47ac761 in gbe::Selection::Opaque::<lambda(const gbe::ir::BasicBlock&)>::operator() (bb=..., __closure=<optimized out>)
at /home/matwey/lab/beignet/backend/src/backend/gen_insn_selection.cpp:2674
#6 gbe::ir::Function::foreachBlock<gbe::Selection::Opaque::select()::<lambda(const gbe::ir::BasicBlock&)> > (functor=..., this=<optimized out>)
at /home/matwey/lab/beignet/backend/src/./ir/function.hpp:490
#7 gbe::Selection::Opaque::select (this=0xbfecb0) at /home/matwey/lab/beignet/backend/src/backend/gen_insn_selection.cpp:2670
#8 0x00007ffff47ad9cd in gbe::Selection::select (this=0xc0acf0) at /home/matwey/lab/beignet/backend/src/backend/gen_insn_selection.cpp:2882
#9 0x00007ffff486919b in gbe::GenContext::emitCode (this=0xca2ba0) at /home/matwey/lab/beignet/backend/src/backend/gen_context.cpp:3653
#10 0x00007ffff46fe7b2 in gbe::Context::compileKernel (this=this@entry=0xca2ba0) at /home/matwey/lab/beignet/backend/src/backend/context.cpp:385
#11 0x00007ffff488142e in gbe::GenProgram::compileKernel (this=<optimized out>, unit=..., name="compute_hp_v1", relaxMath=<optimized out>, profiling=<optimized out>)
at /home/matwey/lab/beignet/backend/src/backend/gen_program.cpp:237
#12 0x00007ffff470228d in gbe::Program::buildFromUnit (this=this@entry=0xa93ff0, unit=..., error="") at /home/matwey/lab/beignet/backend/src/backend/program.cpp:165
#13 0x00007ffff4702574 in gbe::Program::buildFromLLVMModule (this=this@entry=0xa93ff0, module=module@entry=0x712f80, error="", optLevel=optLevel@entry=1)
at /home/matwey/lab/beignet/backend/src/backend/program.cpp:141
#14 0x00007ffff4881d91 in gbe::genProgramNewFromLLVM (deviceID=<optimized out>, module=0x712f80, llvm_ctx=0x7238d0, asm_file_name=0x0, stringSize=1048576, err=0x793ab0 "",
errSize=0x72d930, optLevel=1, options=0x418feb " -cl-mad-enable ") at /home/matwey/lab/beignet/backend/src/backend/gen_program.cpp:497
#15 0x00007ffff4712dd8 in gbe::programNewFromSource (deviceID=338, source=<optimized out>, stringSize=1048576, options=0x418feb " -cl-mad-enable ", err=0x793ab0 "", errSize=0x72d930)
at /home/matwey/lab/beignet/backend/src/backend/program.cpp:1079
#16 0x00007ffff6aa4b11 in cl_program_build (p=p@entry=0x72d820, options=options@entry=0x418feb " -cl-mad-enable ") at /home/matwey/lab/beignet/src/cl_program.c:597
#17 0x00007ffff6a99695 in clBuildProgram (program=0x72d820, num_devices=<optimized out>, device_list=<optimized out>, options=0x418feb " -cl-mad-enable ", pfn_notify=0x0, user_data=0x0)
at /home/matwey/lab/beignet/src/cl_api.c:845
#18 0x00007ffff7bc0b8f in clBuildProgram () from /usr/lib64/libOpenCL.so.1
#19 0x00000000004088a8 in cl::Program::build (this=this@entry=0x7fffffffda98, 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/lab/clpeak/build/clhpp_install/include/CL/cl.hpp:5273
#20 0x0000000000407a9e in clPeak::runAll (this=this@entry=0x7fffffffdd70) at /home/matwey/lab/clpeak/src/clpeak.cpp:98
#21 0x000000000040567d in main (argc=1, argv=0x7fffffffde98) at /home/matwey/lab/clpeak/src/entry.cpp:9
Edited by Matwey V. Kornilov