基于DE1-SoC的My_First_oneAPI(一)
01 前言
在算力需求爆炸式增长的时代,异构计算已成为突破性能瓶颈的首选路径。然而,多架构编程困境、传统硬件开发高门槛(如FPGA)、硬件优化与算法快速迭代,这些无不制约着创新的效率。
而此时作为开放的、跨架构的统一编程模型英特尔® oneAPI,正是破局之钥。对于FPGA的开发来说,oneAPI让开发者能用高级语言(如C++))转换为用于硬件加速的RTL IP代码。通过oneAPI实现了FPGA开发周期大幅度缩短,编译器自动优化数据流与流水线,以及同一代码库跨CPU/GPU/FPGA无缝部署。
02 基于DE1-SOC的oneAPI实验
本教程介绍如何使用Intel oneAPI工具包将高级语言代码(特别是C++风格的代码)转换为用于硬件加速的RTL(Register-Transfer Level,寄存器传输级) IP代码。关于Intel oneAPI的详细介绍可以浏览Intel oneAPI官网。
教程中的示例基于Nios II处理器嵌入式系统构建并在DE1-SoC开发板上运行,演示如何使用oneAPI工具包将用C++编写的高级直接内存访问(Direct Memory Access,DMA)代码转换为 RTL IP 代码,然后将生成的 IP 集成到Nios II嵌入式系统中。开发者按照这种方法可以为任何计算密集型任务生成 RTL IP 代码,从而显著提升硬件加速性能。
以下是运行示例所需的软硬件要求:
-
DE1-SoC开发板
-
Win 10/11 PC
-
Visual Studio Community 2022
-
Intel® oneAPI Base Toolkit
-
FPGA Support Package for oneAPI
-
Altera Quartus® Prime Standard v23.1
一、 安装Visual Studio Community 2022
本节介绍下载并安装Visual Studio Community 2022。
1. 下载Visual Studio Community。
2. 下载完成后运行VisualStudioSetup.exe,点击Continue。
3. 在Installing界面选择Desktop&Mobile里的Desktop development with C++,保持其它默认设置不变,然后点击Install开始安装。
4. 安装界面里取消勾选Start after installation,等待安装完成。
5. 安装完成后关闭Visual Studio Installer。
二、安装Intel® oneAPI Base Toolkit
本节介绍下载安装Intel® oneAPI Base Toolkit。Intel® oneAPI Base Toolkit是一套核心工具和库,用于跨多种架构创建和部署高性能、以数据为中心的应用程序,它提供了用于高效创建高性能跨架构应用程序的基础工具。
1. 按下图所示选择下载Intel oneAPI Base Toolkit。
2. 运行intel-oneapi-base-toolkit-2025.0.1.47_offline.exe,点击下图中的Extract。
3. 点击Continue继续。
4. 勾选I accept the terms of the license agreement,然后点击Continue。
5. 接下来一直保持默认设置安装。
6. 等待安装完成后,点击Finish。
三、安装FPGA Support Package for oneAPI
通过扩展Intel oneAPI DPC++/C++ 编译器,FPGA Support Package使开发者能够遵循简化的FPGA工作流程,它支持创建和优化 FPGA 工作负载,并通过仿真进行功能验证。此外还提供详细的报告和图形分析功能,帮助检查生成的SystemVerilog 输出。
1. 下载FPGA Support Package。
2. 运行intel-fpga-support-for-compiler-2025.0.0.585_offline.exe,点击Extract。
3. 点击Continue继续。
4.勾选I accept the terms of the license agreement,点击Continue。
5. 勾选I Consent to the collection of my information,点击Install。
6. 等待安装完成后,点击Finish。
四、安装Quartus Prime Standard v23.1.1
1. 下载Quartus Prime Standard v23.1.1以及Cyclone V FPGA器件包。
2. 运行QuartusSetup-23.1std.1.993-windows.exe开始安装,持续点击Next保持Quartus默认方式安装。在选择安装路径界面也可以更改安装路径,并确保Cyclone V FPGA器件包也一起安装。
3. 安装完成后,修改PC的环境变量,新增变量名QUARTUS_ROOTDIR_OVERRIDE,变量值指向Quartus安装路径,比如E:\intelFPGA\23.1std\quartus。
五、验证软件环境
本节介绍如何验证软件是否成功安装,以及检查PC环境变量设置是否正确。
1. 在PC的开始菜单栏选择Intel oneAPI 2025-->Intel oneAPI command prompt for Intel 64 for Visual Studio 2022,打开Intel oneAPI命令行窗口。
2. 执行cl和cmake -version命令,验证Visual Studio是否完全安装。
3. 执行icx-cl --version命令验证Intel oneAPI Base Toolkit已安装。
4. 执行aoc -version命令验证FPGA Support Package for oneAPI已安装。
5. 执行%QUARTUS_ROOTDIR_OVERRIDE%/bin64/quartus_sh --version命令验证Quartus已安装。
六、编译执行oneAPI示例--Simple DMA
oneAPI CLI Samples Browser可用于浏览在线oneAPI系列示例。在浏览oneAPI 示例时,可以将它们复制保存到PC本地文件夹。在PC主机的CPU上运行的FPGA Emulator可以生成设备端(FPGA)内核所用的线程。FPGA Emulator并非FPGA的完美复制品,运行速度也慢得多。Emulator允许我们在不启动完整器件编译的情况下检查代码的正确性。
1. 打开Intel oneAPI命令窗口,执行chcp 65001命令将语言编码更改为UTF-8。
2. 执行oneapi-cli.exe命令打开oneAPI CLI Samples Browser。
3. 按键盘上的 < 和 > 键移动光标,选择(1) Create a project再按Enter键进入Select sample language界面。
4. 选择(1) cpp再按Enter键。
5. 移动光标依次选择Toolkit > oneAPI Direct Programming > C++ SYCL FPGA > Reference Designs> Nios V,再按Enter键。
6. 在此界面可更改保存工程的路径,举例D:\Intel\oneAPI\niosv,再按Enter键可将工程保存在该路径下。
7. 按Quit键退出回到Intel oneAPI命令行窗口,使用cd命令切换到niosv/ReferenceDesigns/niosv/kernels/simple_dma工程路径。
8. 执行以下命令创建并切换到build文件夹,配置build系统并指定FPGA为Cyclone V。
mkdir build && cd build
cmake .. -G "NMake Makefiles" -DFPGA_DEVICE=CycloneV
9. 执行nmake fpga_emu命令编译Simple DMA,使用FPGA emulator验证Simple DMA内核。
10. 执行simple_dma.fpga_emu.exe验证Simple DMA内核,结果显示为PASSED。
下一篇基于DE1-SoC的My_First_oneAPI(二)