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

FPGA timing violation with oneAPI for BittWare IA-840F

jim31232
Novice
1,727 Views

Hi,


I have a timing violation issue given in the attached log.

I manage to compile the vector-add oneAPI example for FPGA.  The quartus logs show the compile succeeded apart from the timing violation.

The 10 ps timing violation is very small and is not expected to affect runtime performance. However, the resultant binary (vector-add-buffers.fpga) gets deleted when the error is found. I tried changing the seed as suggested but it has no effect.

 

I managed to get make to ignore the error and not delete the file by running with

make -i fpga

(which ignores errors), but running the file with the FPGA seems to fail with this error:

 

Running on device: ofs_ia840fr0_usm : Intel OFS Platform (ofs_ef00000)
Vector size: 10000
An exception is caught for vector add.
terminate called after throwing an instance of 'sycl::_V1::runtime_error'
what(): Native API failed. Native API returns: -42 (PI_ERROR_INVALID_BINARY) -42 (PI_ERROR_INVALID_BINARY)
Aborted (core dumped)

 

I don't know if the '-42' is related to the "42" error code reported by icpx at the build stage or if it's a different issue.  Any help would be appreciated.

 

Yours,
Karol.

0 Kudos
1 Solution
jim31232
Novice
1,477 Views

Hi Hareesh,

 

I think I have solved my problem. I misunderstood the meaning on page 15 of the technical document for the BSP.

ofs_ia840fr0 and ofs_ia840fr0_usm are different devices and only one can be used at a time.
When I both commands as listed in the document, only the last one to be executed matters.
aocl initialize acl0 ofs_ia840fr0
aocl initialize acl0 ofs_ia840fr0_usm

The vector-add program uses buffers rather than USM by default so, the report -42 (CL_INVALID_BINARY) implies that the wrong device has been initialised.
If I only run `aocl initialize acl0 ofs_ia840fr0`, then I can run the program.

The first run of the program crashes (and this is listed as a known problem), but successive runs are successful:

testfpga@fpgadev01$ aocl initialize acl0 ofs_ia840fr0
aocl initialize: Running initialize from /opt/intel/oneapi/board/ia840f/linux64/libexec
Configuring locked memory setting
Configuring udev rules for DFL FPGA device permission
Configuring system with 2048 2M hugepages
Finished setup_permissions.sh script. All configuration settings are persistent.
Program succeed.

testfpga@fpgadev01$ ./vector-add-buffers.fpga
Running on device: ofs_ia840fr0 : Intel OFS Platform (ofs_ef00000)
Vector size: 10000
Segmentation fault (core dumped)

testfpga@fpgadev01$ ./vector-add-buffers.fpga
Running on device: ofs_ia840fr0 : Intel OFS Platform (ofs_ef00000)
Vector size: 10000
[0]: 0 + 0 = 0
[1]: 1 + 1 = 2
[2]: 2 + 2 = 4
...
[9999]: 9999 + 9999 = 19998
Vector add successfully completed on device.

 

I hope this is helpful. 

Karol.

View solution in original post

0 Kudos
6 Replies
hareesh
Employee
1,689 Views

Hi,

thanks for sharing your issue here. I am working on this issue please give me some time.

and give me some more information about your work like exactly what your trying to compiling .


0 Kudos
jim31232
Novice
1,614 Views

Hi Hareesh,

At the moment I'm just trying to compile the vector-add example (saved
from the oneapi-cli tool). I have not modified the example yet but plan
to use it as a basis for a particle tracking project for particle
physics. This was originally coded in PyTorch and we plan to convert it
to SYCL.

I've downloaded the BSP for the IA-840F from the Bittware developer
website.

Regards,

Karol.

0 Kudos
hareesh
Employee
1,528 Views

Hi,

 

I am trying to duplicate your issue. but I am also facing some error issues. please give me some more time to solve the issue.

Screenshot 2023-05-08 060039.png

0 Kudos
jim31232
Novice
1,478 Views

Hi Hareesh,

 

I think I have solved my problem. I misunderstood the meaning on page 15 of the technical document for the BSP.

ofs_ia840fr0 and ofs_ia840fr0_usm are different devices and only one can be used at a time.
When I both commands as listed in the document, only the last one to be executed matters.
aocl initialize acl0 ofs_ia840fr0
aocl initialize acl0 ofs_ia840fr0_usm

The vector-add program uses buffers rather than USM by default so, the report -42 (CL_INVALID_BINARY) implies that the wrong device has been initialised.
If I only run `aocl initialize acl0 ofs_ia840fr0`, then I can run the program.

The first run of the program crashes (and this is listed as a known problem), but successive runs are successful:

testfpga@fpgadev01$ aocl initialize acl0 ofs_ia840fr0
aocl initialize: Running initialize from /opt/intel/oneapi/board/ia840f/linux64/libexec
Configuring locked memory setting
Configuring udev rules for DFL FPGA device permission
Configuring system with 2048 2M hugepages
Finished setup_permissions.sh script. All configuration settings are persistent.
Program succeed.

testfpga@fpgadev01$ ./vector-add-buffers.fpga
Running on device: ofs_ia840fr0 : Intel OFS Platform (ofs_ef00000)
Vector size: 10000
Segmentation fault (core dumped)

testfpga@fpgadev01$ ./vector-add-buffers.fpga
Running on device: ofs_ia840fr0 : Intel OFS Platform (ofs_ef00000)
Vector size: 10000
[0]: 0 + 0 = 0
[1]: 1 + 1 = 2
[2]: 2 + 2 = 4
...
[9999]: 9999 + 9999 = 19998
Vector add successfully completed on device.

 

I hope this is helpful. 

Karol.

0 Kudos
Benjam1n
Beginner
596 Views

I had the exact same issue, thank you very much for this helpful reply!

0 Kudos
hareesh
Employee
1,456 Views

Hi,

Thank you for the update. so, I am taking it as your issue has been solved. incase if you want to reopen the case please follow bellow template.


As we do not receive any response from you on the previous question/reply/answer that we have provided. Please login to ‘https://supporttickets.intel.com’, view details of the desire request, and post a feed/response within the next 15 days to allow me to continue to support you. After 15 days, this thread will be transitioned to community support. The community users will be able to help you on your follow-up questions.


0 Kudos
Reply