- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I'm wondering what is the typical way to load runtime executable to FPGA once I build host and device by oneAPI.
I followed Agilex™ 7 FPGA I-Series Development Kit (2x R-Tile and 1x F-Tile) to boot up HPS on my Agilex™ 7 FPGA I-Series Development Kit (2x R-Tile and 1x F-Tile) . Now I can establish serial communication and run ./hello in the linux kernel. But I don't know how should I load executable files to FPGA devkit. Tutorials like Get Started with the Intel® oneAPI Base Toolkit for Linux* does not provide details on how to copy executable files to runtime system.
According to my experience of working with Xilinx ultrascale board, I can establish ethernet connection between host and device, and use 'scp' to copy executable files from host to device. Do I have similar options while using Agilex7 I-series devkit? There seems to be no ethernet or USB ports on my board.
Thanks,
Runlong
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Runlong,
Can you share more about your design/ project? Are you trying to offload accelerated computation? or generating RTL IP ? (Difference is explained here)
If you are trying to build a multiarchitecture executable, I believe we only support x86 machine as host (linux or windows) not the HPS core on our SoC FPGA. When you running the multiarchitecture executable (on the host) for the first time, it program the FPGA automatically.
I recommend following this tutorial to get started on running a simple oneAPI program on FPGA: https://github.com/oneapi-src/oneAPI-samples/tree/master/DirectProgramming/C%2B%2BSYCL_FPGA/Tutorials/GettingStarted/fpga_compile
Thanks,
-Kevin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Kevin,
I just started with oneAPI tutorial for setting up the basic workflow, and the design that I am using is the vector-add sample (seems to be FPGA SYCL code). I want to try 'make fpga' step in Get Started with the Intel® oneAPI Base Toolkit for Linux* which is similar to the tutorial you shared. It suggests me to copy the executable file to the runtime system, and run the executable file.
By mentioning "we only support x86 machine as host (linux or windows) not the HPS core on our SoC FPGA", does it mean I need to run './vector-add-usm.fpga' on my x86 machine as host, and the FPGA will be programmed automatically?
And both of these two tutorials seem to hide the details of host-board connection. Is there a guidance on how I should physically connect my board with my x86 host machine? Now I seem to have 3 connections available: a micro-USB connection (recognized as AGI FPGA DevKit in Quartus), an Intel FPGA download cable II connection (recognized as USB-Blaster II in Quartus), and a UART serial communication connection. Are these enough to automatically program FPGA by running executable on the host?
Thanks,
Runlong
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Runlong,
- It suggests me to copy the executable file to the runtime system, and run the executable file.
The "runtime system" referring to the computer that the FPGA Card is connected to, either through PCI-E or USB. We mention copying here because it is common to use different machine to compile and run the executable.
- does it mean I need to run './vector-add-usm.fpga' on my x86 machine as host, and the FPGA will be programmed automatically?
Yes. Assuming you have the FPGA card connected and initialized, and proper driver and BSP/ASP installed. If not, I am linking some resources for how to do that:
- You need to install the oneapi base toolkit and the oneapi fpga support package. You also need to have Quartus installed.
- You need to install the Accelerator Support Package (ASP) for your specific board. You can usually get the ASP from your board vendor, or it can be generated by following this guide: https://ofs.github.io/ofs-2024.2-1/hw/common/user_guides/oneapi_asp/ug_oneapi_asp/
- You need to initialize your board: https://www.intel.com/content/www/us/en/docs/oneapi-fpga-add-on/developer-guide/2024-2/managing-an-fpga-board.html
Once the above is settled up, you can then run the executable such as "vector-add-buffers.fpga" same why you run any binary executable.
The step to generate BSP/ASP can be a bit involved, let me know if you need more help wit it.
Thanks,
-Kevin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Kevin Xu,
By mentioning "You can usually get the ASP from your board vendor, or it can be generated by following this guide", does it mean I can skip generating BSP/ASP myself if I am able to get those support packages from, as you suggested, the board vendor?
Now the guidance on ofs.github.io seems pretty scary to me. I spent two days without figuring out where should I start with. Each step seems to have a bunch of prerequisits and assumptions. I think those steps might be too much before I can run a simple line of 'helloWorld' and become the first-day learner of oneAPI.
If I can somehow get the well-crafted BSP/ASP, does it mean I can start with something like 'aocl install <BSP_root_folder>'? That will make my life much easier. Thanks!
Best,
Runlong
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Runlong,
I can work on getting a BSP/ASP for the I-serial Devkit. But i want to mention:
- It's not going to work with the ARM host you mentioned, only with an x86 host.
- Even if we can generate a BSP/ASP that supports ARM core, the oneAPI runtime still won't work on ARM.
- If running with ARM is a hard requirement, the only way I can think of is to export your oneAPI design as an RTL IP, and connect it to the HPS ARM core in Quartus Platform Designer.
Thanks,
-Kevin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Kevin,
Thank you so much for your time and effort. Yes, using ARM host is NOT a strong requirements for me at this point. I mentioned the ARM core just because I related it to my other project experience in the past. In the end, I will follow what oneAPI workflow expects me to do. I really appreciate that you can help me with BSP/ASP for I-series Devkit.
Thanks,
Runlong
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Runlong,
I was unable to local a pre-build BSP/ASP for the I-Series devkit. The best I can find is a pre build FIM for this devkit:
Go to https://github.com/OFS/ofs-agx7-pcie-attach/releases/tag/ofs-2024.1-1, and download iseries-1x400-images_ofs-2024-1-1.tar.gz
This FIM should allows you to skip section 2.2 entirely, and it is the most time consuming steps in the process of creating BSP/ASP.
Let me know if you need any help generating BSP/ASP.
Thanks,
-Kevin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Kevin,
Thank you for providing the resources. I will try to generate BSP/ASP based on the FIM and let you know if there are other problems.
Best regards,
Runlong
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Please add below packages into your rootFS and add these into your local.conf file. Recompile the rootFS, with this you will be able to use the 'scp' command for transferring file from Host PC to board.
CORE_IMAGE_EXTRA_INSTALL list to get both scp and sftp clients and servers:
openssh
openssh-sftp
openssh-sftp-server
For building the RootFS, you can refer below link-
https://www.rocketboards.org/foswiki/Documentation/BuildingBootloaderAgilex7#Building_Yocto_Rootfs
Regards
Tiwari
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Any update on the suggestion given in previous comment?
Regards
Tiwari
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Tiwari,
Thanks for following up. I find the path suggested by Kevin Xu might be more applied to my situation, so I want to try this first. Generating BSP/ASP myself seems to be too painful, so I'm trying to reach out and see if I can get those support packages that are specified for my board type. Btw, do you have suggestions on where I can possibly get well-crafted BSP/ASP for oneAPI development? Thanks.
Best regards,
Runlong Hu
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @uniqueMR,
For oneAPI BSP you can find it based on the your device at the link below:
- https://www.intel.com/content/www/us/en/docs/oneapi/programming-guide/2023-1/fpga-bsps-and-boards.html (For PAC product)
- https://www.intel.com/content/www/us/en/developer/tools/oneapi/fpga.html (For non PAC product, please scroll to the 'Choose an FPGA Platform' section)
Hope that clarify
Best Wishes
BB
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Please let me know if you have any other query on this.
If no then, I will close this by today EOD.
Regards
Tiwari
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Jeet,
Thank you for following up. Kevin said he would help me getting BSP/ASP for my agilex7 i-series devkit. Now I'm still waiting for his feedback. Could you still keep this thread if there's no other way for me to catch up with any updates? Thanks a lot.
Best,
Runlong
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
FYI, This thread will be open for community to support. You will receive update if anyone post to this thread.
I will close this case from my side as no query pending from my side.
Regards
Tiwari
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page