Intel® oneAPI Data Parallel C++
Support for Intel® oneAPI DPC++ Compiler, Intel® oneAPI DPC++ Library, Intel ICX Compiler , Intel® DPC++ Compatibility Tool, and GDB*

SYCL kernel compilation for FGPA emulation fails with an internal compiler error

Opdenhövel__Jan-Oliv
2,869 Views

I am experimenting with the FPGA toolchain for oneAPI and developed the attached kernel for the gaussian elimination algorithm.

I am able to compile and execute the kernel for and with the CPU, and also to generate the synthesis report, but the compilation for the FPGA emulator always fails with the following error message:

!dbg attachment points at wrong subprogram for function
!2357 = distinct !DISubprogram(name: "_ZTSZZ5gaussRN2cl4sycl5queueERNS0_6bufferIfLi2ENS0_6detail17aligned_allocatorIcEEEEENK3$_0clERNS0_7handlerEE5Gauss", scope: null, file: !3, line: 47, type: !1926, flags: DIFlagArtificial | DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized | DISPFlagMainSubprogram, unit: !2, templateParams: !73, retainedNodes: !2358)
void (i64, i64, float addrspace(1)*, %"class._ZTSN2cl4sycl5rangeILi2EEE.cl::sycl::range"*, %"class._ZTSN2cl4sycl5rangeILi2EEE.cl::sycl::range"*, %"class._ZTSN2cl4sycl5rangeILi2EEE.cl::sycl::range"*)* @"__Vectorized_._ZTSZZ5gaussRN2cl4sycl5queueERNS0_6bufferIfLi2ENS0_6detail17aligned_allocatorIcEEEEENK3$_0clERNS0_7handlerEE5Gauss"
  %unroll_iter.ucf_allones = sub nuw i64 %0, %xtraiter, !dbg !2610
!2610 = !DILocation(line: 63, column: 17, scope: !2611, inlinedAt: !2699)
!2700 = distinct !DILexicalBlock(scope: !2701, file: !3)
!2701 = distinct !DISubprogram(name: "_ZTSZZ5gaussRN2cl4sycl5queueERNS0_6bufferIfLi2ENS0_6detail17aligned_allocatorIcEEEEENK3$_0clERNS0_7handlerEE5Gauss", scope: null, file: !3, line: 47, type: !1926, flags: DIFlagArtificial | DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized | DISPFlagMainSubprogram, unit: !2614, templateParams: !73, retainedNodes: !2702)
!dbg attachment points at wrong subprogram for function
!2327 = distinct !DISubprogram(name: "_ZTSZZ5gaussRN2cl4sycl5queueERNS0_6bufferIfLi2ENS0_6detail17aligned_allocatorIcEEEEENK3$_0clERNS0_7handlerEE5Gauss", scope: null, file: !3, line: 47, type: !1938, flags: DIFlagArtificial | DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized | DISPFlagMainSubprogram, unit: !2, templateParams: !73, retainedNodes: !2328)
void (i64, i64, float addrspace(1)*, %"class._ZTSN2cl4sycl5rangeILi2EEE.cl::sycl::range"*, %"class._ZTSN2cl4sycl5rangeILi2EEE.cl::sycl::range"*, %"class._ZTSN2cl4sycl5rangeILi2EEE.cl::sycl::range"*)* @"__Vectorized_._ZTSZZ5gaussRN2cl4sycl5queueERNS0_6bufferIfLi2ENS0_6detail17aligned_allocatorIcEEEEENK3$_0clERNS0_7handlerEE5Gauss"
  %unroll_iter.ucf_allones = sub nuw i64 %0, %xtraiter, !dbg !2581
!2581 = !DILocation(line: 63, column: 17, scope: !2582, inlinedAt: !2670)
!2671 = distinct !DILexicalBlock(scope: !2672, file: !3)
!2672 = distinct !DISubprogram(name: "_ZTSZZ5gaussRN2cl4sycl5queueERNS0_6bufferIfLi2ENS0_6detail17aligned_allocatorIcEEEEENK3$_0clERNS0_7handlerEE5Gauss", scope: null, file: !3, line: 47, type: !1938, flags: DIFlagArtificial | DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized | DISPFlagMainSubprogram, unit: !2585, templateParams: !73, retainedNodes: !2673)
DICompileUnit not listed in llvm.dbg.cu
!2585 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_11, file: !3, producer: "spirv", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, imports: !2586)
**Internal compiler error** Broken module found, compilation aborted!
Please report the issue on Intel OpenCL forum 
https://software.intel.com/en-us/forums/opencl for assistance. 
 Stack dump:
0.      Running pass 'Intel OpenCL BarrierMain' on module 'main'.
Error: Compiler Error: OpenCL kernel compile/link FAILED
/home/<user>/tmp/gauss-f9175e.o: file not recognized: File truncated

The commands I'm using are:

dpcpp gauss.cpp -o sycl                             # Compiling for the CPU
dpcpp -fintelfpga gauss.cpp -fsycl-link -Xshardware # Generating the report
dpcpp -fintelfpga gauss.cpp -o sycl                 # Compiling for the emulator

I'm running on an "fpga_compile" node in the devcloud; you can look up the specs.

First of all: Is this the right forum to report this question? The message points me to the OpenCL forum, but I guess that this is a general, broad-scope problem. Does anybody know what this error message means?

0 Kudos
5 Replies
Sushma_P_Intel
Employee
2,869 Views

Hi Jan-Oliver,

Thanks for reaching out to us. We are working on the issue . We will get back to you soon.

 

- Sushma.

0 Kudos
Sushma_P_Intel
Employee
2,869 Views

Hi Jan-Oliver,

We tried to compile the code on 'fpga_compile' node. We can see that you are trying to compile the code for FPGA Emulator but followed the steps for FPGA  hardware.

Try to compile the code with ' -DFPGA_EMULATOR' flag. You can try compiling the code without a flag also because by default it runs on FPGA Emulator.

Try following this way and see if the issue resolves. Hope this resolves your issue. Feel free to reach us further issues.

Thanks

-Sushma

0 Kudos
RahulV_intel
Moderator
2,869 Views

Hi Jan-Oliver,

Kindly let us know if the solution provided helped.

 

Rahul

0 Kudos
Opdenhövel__Jan-Oliv
2,869 Views

Hey Sushma,

I'm afraid, but the `-DFPGA_EMULATOR` flag doesn't help. I get the exact same error message. :/

 

Jan-Oliver

0 Kudos
RahulV_intel
Moderator
2,869 Views

Hi,

This is a known issue on Devcloud. The team is working on it and the issue is likely to be fixed soon.

Henceforth, requesting you to raise FPGA related queries to the forum: Intel® High Level Design

0 Kudos
Reply