Intel® High Level Design
Support for Intel® High Level Synthesis Compiler, DSP Builder, OneAPI for Intel® FPGAs, Intel® FPGA SDK for OpenCL™
695 Discussions

Using OpenCL vector type with channels: Assert failure in MemoryAccessAnalysis.cpp(219)

MEghb
Beginner
1,475 Views

Hi, 

I'm using Intel OpenCL to FPGA SDK version 19.4 and Quartus Pro version 19.2.0b57 on Arria 10 (PAC_A10) device. In one of the applications, I am working on an application that includes vector-type data and the use of channels for data transfer between kernels.  Both kernels connected to the channel are using the vector type of float4. The code works in emulation but starting compiling the code for FPGA it returns the following error.  

******* Error: Assert failure at /build/psgswbuild/nightly/19.4/64/l64/p4/acl/llvm/lib/Analysis/FPGAAnalysis/MemoryAccessAnalysis.cpp(219) *******
false FAILED
Stack dump:
0. Program arguments: /opt/intelFPGA_pro/quartus_19.2.0b57/hld/linux64/bin/../../llvm/bin/aocl-opt -march=fpga -O3 -board /opt/inteldevstack/a10_gx_pac_ias_1_2_1_pv/opencl/opencl_bsp/hardware/pac_a10/board_spec.xml -profile all -dbg-info-enabled --soft-elementary-math=false -pass-remarks-output=pass-remarks.yaml backprop_kernel_v5.fpga.bc -o backprop_kernel_v5.kwgid.bc
1. Running pass 'Function Pass Manager' on module 'backprop_kernel_v5.fpga.bc'.
2. Running pass 'Memory Coalescing Analysis for DynToStat' on function '@Mem_bpnn_adjust_weights'
/opt/intelFPGA_pro/quartus_19.2.0b57/hld/llvm/bin/../lib/libLLVM-9svn.so(_ZN4llvm3sys15PrintStackTraceERNS_11raw_ostreamE+0x2a)[0x7f087e51d20a]
/opt/intelFPGA_pro/quartus_19.2.0b57/hld/llvm/bin/../lib/libLLVM-9svn.so(_ZN4llvm3sys17RunSignalHandlersEv+0x4c)[0x7f087e51a87c]
/opt/intelFPGA_pro/quartus_19.2.0b57/hld/llvm/bin/../lib/libLLVM-9svn.so(+0xe209cc)[0x7f087e51a9cc]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x12980)[0x7f087d4ed980]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f087bd8afb7]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f087bd8c921]
/opt/intelFPGA_pro/quartus_19.2.0b57/hld/llvm/bin/../lib/libLLVM-9svn.so(_ZN3acl16VariableGEPIndex26GetIndexDifferenceExtendedERSt6vectorIS0_SaIS0_EERKS3_b+0x30f)[0x7f0880182e3f]
/opt/intelFPGA_pro/quartus_19.2.0b57/hld/llvm/bin/../lib/libLLVM-9svn.so(_ZN3acl23DecomposedAddressOffsetmIERKS0_+0x37)[0x7f0880182fc7]
/opt/intelFPGA_pro/quartus_19.2.0b57/hld/llvm/bin/../lib/libLLVM-9svn.so(_ZNK3acl23DecomposedAddressOffsetmiERKS0_+0xa7)[0x7f0880183157]
/opt/intelFPGA_pro/quartus_19.2.0b57/hld/llvm/bin/../lib/libLLVM-9svn.so(_ZN3acl24MemoryCoalescingAnalysis33checkIfInstructionsAreCoalescableEPN4llvm11InstructionERKNS_24AddressDecompositionInfoES3_S6_Rl+0x530)[0x7f08801aaf50]
/opt/intelFPGA_pro/quartus_19.2.0b57/hld/llvm/bin/../lib/libLLVM-9svn.so(_ZN3acl24MemoryCoalescingAnalysis40findCoalescableInstructionsForFirstInstrEPN4llvm11InstructionERNS_24AddressDecompositionInfoERSt6vectorIS3_SaIS3_EERNS1_11SmallVectorINS_18MemInstrWithOffsetELj64EEERSt3setIS3_St4lessIS3_ES7_ERS3_RSt13unordered_mapIS3_mSt4hashIS3_ESt8equal_toIS3_ESaISt4pairIKS3_mEEE+0x79f)[0x7f08801ac69f]
/opt/intelFPGA_pro/quartus_19.2.0b57/hld/llvm/bin/../lib/libLLVM-9svn.so(_ZN3acl24MemoryCoalescingAnalysis35findCoalescableInstructionsinVectorERSt6vectorIPN4llvm11InstructionESaIS4_EE+0x4a6)[0x7f08801af096]
/opt/intelFPGA_pro/quartus_19.2.0b57/hld/llvm/bin/../lib/libLLVM-9svn.so(_ZN3acl24MemoryCoalescingAnalysis31findCoalescableInstructionsinBBEPN4llvm10BasicBlockE+0x165)[0x7f08801af565]
/opt/intelFPGA_pro/quartus_19.2.0b57/hld/llvm/bin/../lib/libLLVM-9svn.so(_ZN3acl24MemoryCoalescingAnalysis13runOnFunctionERN4llvm8FunctionE+0x298)[0x7f08801b1418]
/opt/intelFPGA_pro/quartus_19.2.0b57/hld/llvm/bin/../lib/libLLVM-9svn.so(+0x235499b)[0x7f087fa4e99b]
/opt/intelFPGA_pro/quartus_19.2.0b57/hld/llvm/bin/../lib/libLLVM-9svn.so(_ZN4llvm13FPPassManager13runOnFunctionERNS_8FunctionE+0x3c6)[0x7f087e65f4a6]
/opt/intelFPGA_pro/quartus_19.2.0b57/hld/llvm/bin/../lib/libLLVM-9svn.so(_ZN4llvm13FPPassManager11runOnModuleERNS_6ModuleE+0x6c)[0x7f087e65f71c]
/opt/intelFPGA_pro/quartus_19.2.0b57/hld/llvm/bin/../lib/libLLVM-9svn.so(_ZN4llvm6legacy15PassManagerImpl3runERNS_6ModuleE+0x401)[0x7f087e660561]
/opt/intelFPGA_pro/quartus_19.2.0b57/hld/linux64/bin/../../llvm/bin/aocl-opt(main+0x2811)[0x55e8c6f38b11]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x7f087bd6dbf7]
/opt/intelFPGA_pro/quartus_19.2.0b57/hld/linux64/bin/../../llvm/bin/aocl-opt(+0x2b6f1)[0x55e8c6f396f1]
Aborted (core dumped)
Error: Optimizer FAILED.

I was wondering if someone has faced the same error before. 


Thanks, 

0 Kudos
5 Replies
EricMunYew_C_Intel
Moderator
1,466 Views
0 Kudos
MEghb
Beginner
1,456 Views

Thanks for the reply. I'm already using version 19.4 which is higher than the suggested version in this post. 

0 Kudos
HRZ
Valued Contributor III
1,446 Views

That is an internal compiler crash; there is no direct way to debug and resolve such crashes by the user (only Intel engineers can do so). My recommendation is to start removing parts from your code line-by-line until the crash doesn't happen anymore and when you detect the part that causes the crash, try to refactor it to work around the crash.

0 Kudos
EricMunYew_C_Intel
Moderator
1,443 Views

You may try using Quartus Pro 19.4.


0 Kudos
EricMunYew_C_Intel
Moderator
1,423 Views

I’m glad that your question has been addressed, I now transition this thread to community support. If you have a new question, feel free to open a new thread to get the support from Intel experts. Otherwise, the community users will continue to help you on this thread. Thank you.


0 Kudos
Reply