Intel® High Level Design
Support for Intel® High Level Synthesis Compiler, DSP Builder, OneAPI for Intel® FPGAs, Intel® FPGA SDK for OpenCL™
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
541 Discussions

OneAPI error using #pragma unroll

TTwom
Novice
511 Views

I am attempting to compile a program on DevCloud node s001-n081 and I am getting the following error:


aocl-llvm-spirv: /nfs/site/disks/swbld_ops_1/TOR/hld/nightly/20.3api/117.1/l64/p4/acl/llvm-project/llvm/include/llvm/ADT/ilist_iterator.h:138: llvm::ilist_iterator<OptionsT, IsReverse, IsConst>::reference llvm::ilist_iterator<OptionsT, IsReverse, IsConst>::operator*() const [with OptionsT = llvm::ilist_detail::node_options<llvm::BasicBlock, true, false, void>; bool IsReverse = false; bool IsConst = false; llvm::ilist_iterator<OptionsT, IsReverse, IsConst>::reference = llvm::BasicBlock&]: Assertion `!NodePtr->isKnownSentinel()' failed.
PLEASE submit a bug report to https://software.intel.com/en-us/support/priority-support and include the crash backtrace.
Stack dump:
0. Program arguments: /glob/development-tools/versions/oneapi/beta09/inteloneapi/compiler/2021.1-beta09/linux/lib/oclfpga/linux64/bin/../../llvm/bin/aocl-llvm-spirv -r /home/u37667/tmp/a-f1a585.spv -o /home/u37667/tmp/a-205202.6579.temp/spirv.fpga.bc
#0 0x00007fe7f92cfe1a llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/glob/development-tools/versions/oneapi/beta09/inteloneapi/compiler/2021.1-beta09/linux/lib/oclfpga/llvm/bin/../lib/libLLVM-11git.so+0xe3de1a)
#1 0x00007fe7f92cd664 llvm::sys::RunSignalHandlers() (/glob/development-tools/versions/oneapi/beta09/inteloneapi/compiler/2021.1-beta09/linux/lib/oclfpga/llvm/bin/../lib/libLLVM-11git.so+0xe3b664)
#2 0x00007fe7f92cd7b3 SignalHandler(int) (/glob/development-tools/versions/oneapi/beta09/inteloneapi/compiler/2021.1-beta09/linux/lib/oclfpga/llvm/bin/../lib/libLLVM-11git.so+0xe3b7b3)
#3 0x00007fe7fee66890 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12890)
#4 0x00007fe7f77a7e97 raise (/lib/x86_64-linux-gnu/libc.so.6+0x3ee97)
#5 0x00007fe7f77a9801 abort (/lib/x86_64-linux-gnu/libc.so.6+0x40801)
#6 0x00007fe7f779939a (/lib/x86_64-linux-gnu/libc.so.6+0x3039a)
#7 0x00007fe7f7799412 (/lib/x86_64-linux-gnu/libc.so.6+0x30412)
#8 0x00007fe7f93bb400 llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<llvm::BasicBlock, false> >::CalculateFromScratch(llvm::DominatorTreeBase<llvm::BasicBlock, false>&, llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<llvm::BasicBlock, false> >::BatchUpdateInfo*) (/glob/development-tools/versions/oneapi/beta09/inteloneapi/compiler/2021.1-beta09/linux/lib/oclfpga/llvm/bin/../lib/libLLVM-11git.so+0xf29400)
#9 0x000055d0741a53e3 SPIRV::SPIRVToLLVM::transLLVMLoopMetadata(llvm::Function const*) (/glob/development-tools/versions/oneapi/beta09/inteloneapi/compiler/2021.1-beta09/linux/lib/oclfpga/linux64/bin/../../llvm/bin/aocl-llvm-spirv+0xcb3e3)
#10 0x000055d0741abd65 SPIRV::SPIRVToLLVM::transFunction(SPIRV::SPIRVFunction*) (/glob/development-tools/versions/oneapi/beta09/inteloneapi/compiler/2021.1-beta09/linux/lib/oclfpga/linux64/bin/../../llvm/bin/aocl-llvm-spirv+0xd1d65)
#11 0x000055d0741a99e9 SPIRV::SPIRVToLLVM::transValueWithoutDecoration(SPIRV::SPIRVValue*, llvm::Function*, llvm::BasicBlock*, bool) (/glob/development-tools/versions/oneapi/beta09/inteloneapi/compiler/2021.1-beta09/linux/lib/oclfpga/linux64/bin/../../llvm/bin/aocl-llvm-spirv+0xcf9e9)
#12 0x000055d0741ab542 SPIRV::SPIRVToLLVM::transValue(SPIRV::SPIRVValue*, llvm::Function*, llvm::BasicBlock*, bool) (/glob/development-tools/versions/oneapi/beta09/inteloneapi/compiler/2021.1-beta09/linux/lib/oclfpga/linux64/bin/../../llvm/bin/aocl-llvm-spirv+0xd1542)
#13 0x000055d0741abd32 SPIRV::SPIRVToLLVM::transFunction(SPIRV::SPIRVFunction*) (/glob/development-tools/versions/oneapi/beta09/inteloneapi/compiler/2021.1-beta09/linux/lib/oclfpga/linux64/bin/../../llvm/bin/aocl-llvm-spirv+0xd1d32)
#14 0x000055d0741a99e9 SPIRV::SPIRVToLLVM::transValueWithoutDecoration(SPIRV::SPIRVValue*, llvm::Function*, llvm::BasicBlock*, bool) (/glob/development-tools/versions/oneapi/beta09/inteloneapi/compiler/2021.1-beta09/linux/lib/oclfpga/linux64/bin/../../llvm/bin/aocl-llvm-spirv+0xcf9e9)
#15 0x000055d0741ab542 SPIRV::SPIRVToLLVM::transValue(SPIRV::SPIRVValue*, llvm::Function*, llvm::BasicBlock*, bool) (/glob/development-tools/versions/oneapi/beta09/inteloneapi/compiler/2021.1-beta09/linux/lib/oclfpga/linux64/bin/../../llvm/bin/aocl-llvm-spirv+0xd1542)
#16 0x000055d0741abd32 SPIRV::SPIRVToLLVM::transFunction(SPIRV::SPIRVFunction*) (/glob/development-tools/versions/oneapi/beta09/inteloneapi/compiler/2021.1-beta09/linux/lib/oclfpga/linux64/bin/../../llvm/bin/aocl-llvm-spirv+0xd1d32)
#17 0x000055d0741b8aee SPIRV::SPIRVToLLVMDbgTran::transFunction(SPIRV::SPIRVExtInst const*) (/glob/development-tools/versions/oneapi/beta09/inteloneapi/compiler/2021.1-beta09/linux/lib/oclfpga/linux64/bin/../../llvm/bin/aocl-llvm-spirv+0xdeaee)
#18 0x000055d0741b062b SPIRV::SPIRVToLLVM::translate() (/glob/development-tools/versions/oneapi/beta09/inteloneapi/compiler/2021.1-beta09/linux/lib/oclfpga/linux64/bin/../../llvm/bin/aocl-llvm-spirv+0xd662b)
#19 0x000055d0741b093a llvm::convertSpirvToLLVM(llvm::LLVMContext&, SPIRV::SPIRVModule&, std::string&) (/glob/development-tools/versions/oneapi/beta09/inteloneapi/compiler/2021.1-beta09/linux/lib/oclfpga/linux64/bin/../../llvm/bin/aocl-llvm-spirv+0xd693a)
#20 0x000055d0741b0a91 llvm::readSpirv(llvm::LLVMContext&, SPIRV::TranslatorOpts const&, std::istream&, llvm::Module*&, std::string&) (/glob/development-tools/versions/oneapi/beta09/inteloneapi/compiler/2021.1-beta09/linux/lib/oclfpga/linux64/bin/../../llvm/bin/aocl-llvm-spirv+0xd6a91)
#21 0x000055d074160606 main (/glob/development-tools/versions/oneapi/beta09/inteloneapi/compiler/2021.1-beta09/linux/lib/oclfpga/linux64/bin/../../llvm/bin/aocl-llvm-spirv+0x86606)
#22 0x00007fe7f778ab97 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b97)
#23 0x000055d07416557d _start (/glob/development-tools/versions/oneapi/beta09/inteloneapi/compiler/2021.1-beta09/linux/lib/oclfpga/linux64/bin/../../llvm/bin/aocl-llvm-spirv+0x8b57d)
Error: SPIRV to LLVM IR FAILED
dpcpp: error: fpga compiler command failed with exit code 1 (use -v to see invocation)

This only is an issue when I am trying to use #pragma unroll to unroll a loop for a hardware compilation. I would appreciate any insight on this anyone might have.

It is a single work item kernel and an example of the use that breaks it is:

int rows[2 * COLS + 3]

#pragma unroll
for(int i = (COLS * 2) + 2; i > 0; --i){
  rows[i] = rows[i-1];
}

The same loop works in OpenCL with the same pragma.

0 Kudos
3 Replies
AnilErinch_A_Intel
475 Views

Hi ,

Can you share the command used for compilation so that we can have a look.

Thanks and Regards

Anil


TTwom
Novice
470 Views

The commands used for compilation are:

dpcpp -O2 -g -std=c++17 -fintelfpga -c src/sobel-buffers.cpp -o a.o -DFPGA=1
dpcpp -O2 -g -std=c++17 -fintelfpga a.o -o sobel-buffers.fpga -Xshardware -Xsprofile

AnilErinch_A_Intel
395 Views

Hi,

Could you refer to the examples and style given in the below link and inform us whether the norms are followed as described there.

https://github.com/oneapi-src/oneAPI-samples/tree/master/DirectProgramming/DPC%2B%2BFPGA/Tutorials/F...


if that doesn't help , would you mind sharing the full code so that our experts can have a look and get back to you.

Thanks and Regards

Anil


Reply