Forum Discussion

MEghb's avatar
MEghb
Icon for New Contributor rankNew Contributor
3 years ago

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

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,

5 Replies

    • MEghb's avatar
      MEghb
      Icon for New Contributor rankNew Contributor

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

  • HRZ's avatar
    HRZ
    Icon for Frequent Contributor rankFrequent Contributor

    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.

  • EricMunYew_C_Intel's avatar
    EricMunYew_C_Intel
    Icon for Frequent Contributor rankFrequent Contributor

    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.