[Beignet] beignet and LLVM 8+

Rebecca N. Palmer rebecca_palmer at zoho.com
Sat Jan 11 14:30:38 UTC 2020


Debian's beignet-opencl-icd package currently uses LLVM 7, and fails to 
build with anything newer.  This will no longer be an option when LLVM 7 
is removed from Debian ( https://bugs.debian.org/947438 ).

Patches exist that allow beignet to build in LLVM 8 and 9, originally 
from FreeBSD ( https://svnweb.freebsd.org/ports/head/lang/beignet/files/ 
) and also used by Arch.  However, when I attempted to use these patches 
in Debian, some of the tests crashed ( https://bugs.debian.org/948563 ):

--error 1--

compiler_rotate()ASSERTION FAILED: Unsupported intrinsics
   at file /build/beignet-1.3.2/backend/src/llvm/llvm_gen_backend.cpp,
function void gbe::GenWriter::regAllocateCallInst(llvm::CallInst&), line
3865
Trace/breakpoint trap

(Debian sets -DGBE_DEBUG=1 making this one a crash - without that, it's 
a silently wrong answer.)

--error 2--

compiler_subgroup_buffer_block_write_ui1()ASSERTION FAILED: index <
this->size()
   at file /build/beignet-1.3.2/backend/src/./sys/vector.hpp, function
T& gbe::vector<T>::operator[](size_t) [with T = gbe::GenRegInterval;
size_t = long unsigned int], line 66
Trace/breakpoint trap

(This one is a crash with or without GBE_DEBUG, and affects (probably 
all of) compiler_subgroup_(image|buffer)_block_*.)

----

It is not known whether these errors also happen in FreeBSD, as their 
testing process didn't use beignet's own tests ( 
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=239175#c8 ).

Has anyone else seen this?  Any ideas for how to fix it?

Any thoughts on whether it's better to have beignet with these bugs, or 
no beignet at all?  (Debian does also have intel-opencl-icd (Neo), but 
it's currently broken ( https://bugs.debian.org/946752 ), and doesn't 
support older hardware.)



More information about the Beignet mailing list