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,