面向 OpenCL™ 的英特尔® FPGA SDK - 支持中心
面向 OpenCL 的英特尔® FPGA SDK 支持页面提供了有关如何仿真、编译和评测内核的信息。该页面还包含有关如何优化内核的准则以及有关如何在运行主机应用程序的同时对系统进行调试的信息。此页面内容根据开发平台分为两大主要类别,分别是面向 FPGA 的内核开发人员类别和面向 CPU 的主机代码开发人员类别。
软件要求
您必须具备开发系统上的管理员权限才能安装主机软件开发所需的软件包和驱动程序。
主机系统必须正在运行操作系统支持页面上列出的以下某一受支持的 Windows* 和 Linux* 操作系统。
使用以下开发环境之一为面向 OpenCL™ 的英特尔® FPGA SDK 开发主机应用程序:
Windows 操作系统
- 面向 OpenCL 的英特尔 FPGA SDK
- 板级支持包 (BSP)
- Microsoft* Visual Studio 2010 专业版或更高版本。
Linux 操作系统
- 面向 OpenCL 的英特尔 FPGA SDK
- BSP
- RPM(RPM 包管理器;前身为 Red Hat 包管理器)
- GCC 随附的 C 编译器
- Perl 命令版本 5 或更高版本
1.内核开发人员
SDK 用户界面
面向 OpenCL™ 的英特尔® FPGA SDK 为用户提供了两种开发体验模式。对于代码生成器,所有工具均集成到 GUI 中,以支持用户设计、编译和调试内核。另一方面,命令行选项则适用于传统用户。
- GUI/代码生成器:目前不适用
- 命令行选项:
以下是一些适用于内核开发人员的命令:
aoc kernel.cl -o bin/kernel.aocx –board=<board_name>
- 将 kernel.cl 源文件编译至 <board_name> 所指定主板的 FPGA 编程文件 (kernel.aocx);-o 用于指定输出文件名和位置
aoc kernel.cl -o bin/kernel.aocx –board=<board_name> -march=emulator
- 构建 aocx 文件以进行仿真,此仿真可用于测试内核的功能
aoc -list-boards
- 打印可用主板的列表并退出
aoc -help
- 打印 aoc 命令选项的完整列表及其中每个选项的帮助信息
aocl version
- 显示面向 OpenCL 的英特尔 FPGA SDK 的已安装版本的版本信息
aocl install
- 将您主板的驱动程序安装到当前主机系统
aocl diagnose
- 针对主板运行主板供应商的测试程序
aocl program
- 将新的 FPGA 镜像配置到主板
aocl flash
- 通过指定的启动配置初始化 FPGA
aocl help
- 打印 aocl 命令选项的完整列表及其中每个选项的帮助信息
OpenCL 规范
Khronos 遵从性
面向 OpenCL™ 的英特尔® FPGA SDK 基于已发布的 Khronos 规范,且受到 Khronos Group 组织内许多供应商的支持。面向 OpenCL 的英特尔 FPGA SDK 已通过 Khronos 一致性测试流程。该产品符合 OpenCL 1.0 标准,并提供 Khronos Group 发布的 OpenCL 1.0 和 OpenCL 2.0 头文件。
注意:SDK 目前还无法支持所有 OpenCL 2.0 应用程序编程接口 (API)。如果使用 OpenCL 2.0 头文件并调用某个不受支持的 API,那么调用将返回错误代码,指示此 API 并不完全受支持。
面向 OpenCL 的英特尔 FPGA SDK 主机运行时符合 OpenCL 平台层和 API 标准,但存在一些澄清信息和例外情况,此类内容位于《面向 OpenCL 的英特尔 FPGA SDK 编程指南》中的 OpenCL 功能的支持状态章节。
其他相关链接:
- 欲了解有关 OpenCL 的详细信息,请访问 Kronos Group OpenCL 概述页面。
- 最新的一致性状态可在 Kronos Group 采用者计划页面中找到。
- 欲了解有关 OpenCL 1.0 标准的详细信息,请参阅 Khronos 的 OpenCL 规范。
OpenCL 扩展
通道(I/O 或内核)
面向 OpenCL™ 的英特尔® FPGA SDK 通道扩展提供了一个机制,用于将数据传递至内核并同步内核,以实现高效率和低延迟。使用以下链接获取有关如何实现、使用和仿真通道的更多信息:
- 实现面向 OpenCL 的英特尔 FPGA SDK 通道扩展
- 将通道用于内核复制
- HTML 报告:内核设计概念 - 通道
- 通过面向 OpenCL 的英特尔 FPGA SDK 通道或 OpenCL 管线传输数据
- 通道或管线实施中多个命令队列的需求
注意:如果想利用通道功能,但能够使用其他 SDK 运行内核计划,请实施 OpenCL 管线。欲了解有关管线的更多信息,请参阅以下有关管线的部分。
管线
面向 OpenCL 的英特尔 FPGA SDK 为 OpenCL 管线功能提供初步支持,此类功能是 OpenCL 规范 V2.0 的一部分。它们提供了一个机制,用于将数据传递至内核并同步内核,以实现高效率和低延迟。
面向 OpenCL 的英特尔 FPGA SDK 管线实施并不完全遵循 OpenCL 规范 V2.0。SDK 管线实施的目标是提供一个在不同 OpenCL 2.0 合规设备上无缝运行的解决方案。要启用英特尔 FPGA 产品的管线,您的设计必须满足某些要求。
请参阅以下链接,获取有关如何实施 OpenCL 管线的更多信息:
仿真器
在多步设计流程中,您可以在 x86-64 Windows* 或 Linux* 主机上的一个多个仿真设备中执行 OpenCL™ 内核来访问其功能。仿真设计的编译需要几秒钟的时间来生成 .aocx 文件,同时支持您更有效地对设计进行迭代,而无须花费几小时进行完全编译。
对于 Linux 系统,仿真器提供符号调试支持。利用符号调试,您可以找出内核代码中函数错误的来源。
以下链接概述了 OpenCL 内核的设计流程,并展示了用于仿真内核的不同阶段。
多步面向 OpenCL 的英特尔® FPGA SDK 设计流程
“编程指南”中的仿真和调试 OpenCL 内核章节包含有关硬件和仿真内核操作之间差异的更多详细信息。
其他相关链接:
优化
借助面向 OpenCL™ 的英特尔® FPGA SDK 脱机编译器技术,您无需更改内核,内核便可与固定的硬件架构完美契合。相反,脱机编译器会自动自定义硬件架构,以适应您的内核需求。
总之,您应该首先优化针对单个计算单元的内核。优化此计算单元后,通过扩展硬件以填充 FPGA 的剩余部分来提升性能。内核的硬件占用空间与硬件编译所花费的时间有关。因此,在较小占用空间(即单个计算单元)内可执行的优化越多,给定时间内可执行的硬件编译也越多。
面向英特尔 FPGA 的 OpenCL 优化
要优化设计实施并获得最高性能,请先了解理论上的最高性能以及您的局限所在。遵照这些步骤操作:
- 首先进行简单且已知良好的功能实施。
- 使用仿真器验证此功能。
- 消除或尽量减少通过优化报告所报出的流水线停顿。
- 计划内存访问以实现最佳内存带宽。
- 使用分析器调试性能问题。
分析器可让您更加深入地了解系统性能,并指导您在使用内存的过程中进一步优化算法。
请记住,对于 FPGA,可供分配的资源越多,可实现的展开、并行化操作就越多,性能也就越高。
针对优化的有用报告和资源
将为用户提供多份系统生成的报告。这些报告可让您深入了解代码和资源使用情况,并给出了有关如何进一步提高性能的提示:
内存优化
了解内存系统对于通过 OpenCL 高效实施应用程序至关重要。
全局内存互连
与 GPU 不同,FPGA 可以构建任何自定义的加载存储单元 (LSU),而此单元最适合用于您的应用程序。因此,您编写 OpenCL 代码来为您的应用程序选择理想 LSU 类型能力可能有助于显著提高设计的性能。
欲了解更多信息,请参阅《面向 OpenCL 的英特尔 FPGA SDK 最佳实践指南》中的全局内存互连章节。
本地内存
本地内存是一个复杂系统。与具有不同高速缓存级别的一般 GPU 架构不同,FPGA 在 FPGA 内部的专用内存模块中实施本地内存。欲了解更多信息,请参阅《面向 OpenCL 的英特尔 FPGA SDK 最佳实践指南》中的本地内存章节。
可通过多种方式对内存进行优化,以提高总体性能。欲了解有关某些主要技术的更多信息,请参阅《面向 OpenCL 的英特尔 FPGA SDK 最佳实践指南》中的分配一致的内存章节。
欲了解用于提高内存访问效率的策略相关的更多信息,请参阅《面向 OpenCL 的英特尔 FPGA SDK 最佳实践指南》中的用于提高内存访问效率的策略章节。
流水线
了解流水线对于获得最佳实施性能来说至关重要。高效使用流水线可直接提高性能吞吐量。欲了解更多详情,请参阅《面向 OpenCL 的英特尔 FPGA SDK 最佳实践指南》中的流水线章节。
欲了解有关数据传输的更多信息,请参阅《面向 OpenCL 的英特尔 FPGA SDK 最佳实践指南》中的通过面向 OpenCL 的英特尔 FPGA SDK 通道或 OpenCL 管线传输数据章节。
停顿、占用、带宽
评测您的内核以找出性能瓶颈。要深入了解评测信息如何帮助您发现内存欠佳问题或导致内核性能不理想的通道行为,请参阅《面向 OpenCL 的英特尔 FPGA SDK 最佳实践指南》中的评测内核以找出性能瓶颈章节。
循环优化
一些用于优化循环的技术:
要移除一个工作项目内核的各种场景中循环承载的依赖关系,请参阅《面向 OpenCL 的英特尔 FPGA SDK 最佳实践指南》中的移除循环承载的依赖关系章节获取一些提示信息。
欲了解有关优化浮点运算的更多信息,请参阅《面向 OpenCL 的英特尔 FPGA SDK 最佳实践指南》中的优化浮点运算部分。
面积优化
如果可在不同尺寸的 FPGA 上执行 OpenCL 内核,那么面积使用情况是一个重要的设计考虑因素。设计 OpenCL 应用程序时,英特尔建议您遵循某些设计策略来优化硬件面积使用情况。
优化内核性能通常需要额外的 FPGA 资源。相反,面积优化往往会降低性能。在内核优化期间,英特尔建议您在 FPGA 电路板上运行多个版本的内核,以确定在尺寸和性能间实现最佳均衡的内核编程策略。
欲了解有关 FPGA 面积使用优化策略的更多信息,请参阅《面向 OpenCL 的英特尔 FPGA SDK 最佳实践指南》中的 FPGA 面积使用优化策略章节。
参考设计示例
以下是展示了优化技术的一些设计示例:
这一示例介绍了发挥计算固有的数据重用优势,使用循环块优化基本矩阵乘法运算。
此示例展示了:
- 单精度浮点优化
- 本地内存缓冲
- 编译优化(循环展开,num_simd_work_items 属性)
- 浮点优化
- 多设备执行
此设计示例实施了基于 HPEC 挑战基准测试套件的时域有限脉冲响应 (FIR) 滤波器基准测试。
这一设计示例很好的展示了 FPGA 如何实现比图形处理单元 (GPU) 体系结构性能更好的浮点 FIR 滤波器。
此示例展示了:
- 单精度浮点优化
- 高效的 1D 滑动窗口缓冲实现
- 一个工作项目内核优化方法
这一设计实例实现了一个视频下转换器,处理 1080p 输入视频,以每秒 110 帧输出 720p 视频。这一实例使用了多个内核来高效的读写全局存储器。
此示例展示了
- 内核通道
- 多个同步内核
- 内核到内核通道
- 滑动窗口设计模式
- 内存访问模式优化
这一设计实例是 Lucas Kanade 光流程算法的 OpenCL™ 实现。在 Cyclone® V SoC 开发套件上展示了一个密集、非迭代、非椎体版本,窗口大小是 52x52,每秒在 80 帧以上。
此示例展示了:
- 一个工作项目内核
- 滑动窗口设计模式
- 减少资源使用的方法
- 视觉输出
培训
以下提供了特定于 OpenCL 优化且附有设计示例的在线培训:
参考资料
评测
在多步设计流程中,如果仿真的估算内核性能可接受,您可以选择收集有关在 FPGA 上执行时您的设计表现如何的信息。
您可以通过 -profile 选项,指示面向 OpenCL™ 的英特尔® FPGA SDK 脱机编译器在 .aocx 文件以 Verilog 代码实现性能计数器。执行期间,面向 OpenCL 的英特尔 FPGA SDK 分析器会度量并报告 OpenCL 内核在 FPGA 上执行期间收集的性能数据。 然后,您可以查看分析器 GUI 中的性能数据。
《面向 OpenCL 的英特尔 FPGA SDK 编程指南》的评测您的 OpenCL 内核章节中包含有关如何评测内核的更多信息。
如何分析评测数据
评测信息可帮助您发现内存欠佳问题或导致内核性能不理想的通道行为。《面向 OpenCL 的英特尔 FPGA SDK 最佳实践指南》的评测您的内核以找出性能瓶颈章节中包含有关动态分析器 GUI 以及如何解读诸如停顿、带宽、高速缓存命中等评测数据的更深入的信息。此外还包含对于多个 OpenCL 设计示例场景的分析器分析。
2.主机代码开发人员
运行时主机库
面向 OpenCL™ 的英特尔® FPGA SDK 为您提供了编译器和工具,用于针对英特尔 FPGA 产品构建和运行 OpenCL 应用程序。
如果您仅需要面向 OpenCL 的英特尔 FPGA SDK 的内核部署功能,请下载并安装面向 OpenCL 的英特尔 FPGA 运行时环境 (RTE)。
RTE 是面向 OpenCL 的英特尔 FPGA SDK 的一个子集。SDK 提供了一个支持开发和部署 OpenCL 内核程序的环境,而 RTE 与之不同,它提供了工具和运行时组件,支持您构建并执行主机程序,以及在目标加速器电路板上执行预编译的 OpenCL 内核程序。
请勿在同一主机系统上同时安装 SDK 和 RTE。SDK 已包含 RTE。
实用程序和主机运行时库
面向 OpenCL 的 RTE 提供了实用程序、主机运行时库、驱动程序和特定于 RTE 的库和文件。
- RTE 实用程序包含可供您调用以执行高级任务的命令。RTE 实用程序是面向 OpenCL 的英特尔 FPGA SDK 实用程序的子集。
- 主机运行时为您的 OpenCL 主机应用程序提供 OpenCL 主机平台 API 和运行时 API
主机运行时包括以下库:
- 静态链接库提供 OpenCL 主机 API、硬件抽象和助手库
- 动态链接库 (DLL) 提供硬件抽象和助手库
欲了解有关实用程序和主机运行时库的更多信息,请参阅《面向 OpenCL 的英特尔 FPGA RTE 入门指南》中的面向 OpenCL 的英特尔 FPGA RTE 内容章节。
数据流(主机通道)
主机通道支持主机的流数据直接通过 PCIe* 接口传输至 FPGA 内核,同时绕过内存控制器,从而显著降低您的系统延迟。FPGA 内核可以即时处理数据,而不必等待全部数据传输完毕。主机通道在 OpenCL 运行时应用程序编程接口 (API) 中受支持,且同时包含仿真支持。
欲了解有关主机通道和仿真支持的更多详情,请参阅《面向 OpenCL™ 的英特尔® FPGA SDK 编程指南》的“仿真 I/O 通道”章节。
评测
利用评测,您可以了解程序将时间花费在哪些地方,以及调用了哪些不同的函数。此信息将为您显示程序哪些部分的运行速度低于预期,可能需要重写以提高程序执行速度。 还向您展示了哪些函数的调用频率高于或低于预期。
gprof
gprof 是 Linux* 操作系统中提供的开源工具,用于评测源代码。它采用基于时间的采样。时间间隔期间,会请求程序计数器决定执行至代码中的哪个点?
要使用 gprof,请使用编译器评测标记 -pg 重新编译源代码
运行可执行文件,以生成包含评测信息的文件:
将生成名为 “gmon.out” 的特定文件,该文件包含 gprof 工具产生人类可读的评测数据所需的所有信息。那么,现在按如下方式使用 gprof 工具:
$ gprof source code gmon.out > profile_data.txt
profile_data.txt 是包含 gprof 工具产生人类可读的评测数据所用信息的文件。此文件包含两个部分:flat profile 和 call graph
flat profile 显示了程序对于每个函数所花的时间以及函数的调用次数。
call graph 显示了,对于每个函数,哪些函数对其进行了调用,它还调用了哪些其他函数,以及调用次数。同时还会估计对于每个函数的子例程所花的时长。
GNU 网站上提供了将 gprof 用于评测的更多相关信息。
英特尔® VTune™ 放大器
将 Intel® VTune™ Amplifier 用于测评可提供以下类型的分析,从而有助于您加速并优化代码在 Linux 嵌入式平台、Android* 或 Windows* 系统上的执行。
- 性能分析:查找串行和并行代码瓶颈,分析算法选项和 GPU 引擎使用情况,并了解您的应用程序在哪些地方以及如何从可用硬件资源中受益。
- 英特尔 Energy Profiler 分析:分析电源事件,找出其中造成能源浪费的事件
欲了解有关英特尔 V-tune Amplifier 的更多信息,请访问英特尔 VTune Amplifier 2018 for Linux OS 入门网站。
多线程技术
OpenCL™ 主机流水线式多线程提供了一个框架以实现算法的高吞吐量,其中需要处理大量输入数据,且每个数据的流程都需要顺序完成。此框架的最佳应用之一是在异构平台中,此类平台使用高吞吐量硬件或平台来加速应用程序中最耗时的部分。此算法的其余部分必须在其他平台(如 CPU)上顺序运行,来为经加速的任务准备好输入数据,或使用此任务的输出准备好最终输出。 在此场景中,尽管算法的性能实现了部分加速,但由于原始算法顺序进行的特点,总的系统吞吐量反而更低。
在此“AN 831:面向 OpenCL 的英特尔 FPGA SDK 主机流水线式多线程应用注释”中,面向高吞吐量设计提出了全新的流水线式框架。此框架是通过算法处理大型输入数据的理想选择,其中数据依赖性强制顺序执行算法的所有阶段或任务。
来自主机的 FPGA 初始化
FPGA 在加速领域内使用频繁。OpenCL 提供了特定的方式让 CPU 将任务卸载到 FPGA。下方所附的文件包含主机代码启动 FPGA 内核所需的通用初始化步骤。在此处下载包含初始化步骤的文件。
可从 main() 函数调用 init() 函数以初始化 FPGA。代码首先查找内核运行所在的设备,然后通过主机可执行文件所属同一目录下提供的 aocx 对设备进行编程。代码中的初始化步骤完成后,用户必须根据其设计需求设置内核参数。
同时还提供了一个 cleanup() 函数,用于在执行内核后释放资源。
3.调试
仿真:
面向 OpenCL™ 的英特尔® FPGA SDK 仿真器可用于检查内核的功能。 用户还可以将 OpenCL 内核功能作为 Linux* 系统上主机应用程序的一部分进行调试。您可以利用面向 OpenCL 的英特尔 FPGA SDK 仿真器随附的调试功能来执行此操作。
欲了解更多信息,请参阅《面向 OpenCL 的英特尔 FPGA SDK 编程指南》中的以下章节:
评测
欲了解有关评测的更多信息,请参阅《面向 OpenCL™ 的英特尔® FPGA SDK 编程指南》中的以下章节:
运行时调试变量 |
|
---|---|
运行主机应用时,可以设置特定的环境变量,以获取更多调试信息。面向 OpenCL™ 的英特尔® FPGA SDK 的特定环境变量可帮助诊断自定义平台设计存在的问题。下表列出并详细描述了所有这些环境变量。 | |
环境变量标题 | 说明 |
ACL_HAL_DEBUG |
将该变量设置为 1-5 之间的值,以增加来自硬件抽象层 (HAL) 的调试输出,其中硬件抽象层可与 MMD 层直接通信。 |
ACL_PCIE_DEBUG |
将此变量设置为 1 到 10,000 之间的值,以增加来自 MMD 的调试输出。该变量设置可帮助确认版本 ID 注册已得到正确读取,UniPHY IP 核已被校准。 |
ACL_PCIE_JTAG_CABLE |
设置该变量,以撤销用于指定线缆数量的默认 quartus_pgm 参数。默认为线缆 1。如果有多条英特尔® FPGA 下载线缆,您可以通过设置该变量来指定某条特定的线缆。 |
ACL_PCIE_JTAG_DEVICE_INDEX |
设置该变量,以撤销用于指定 FPGA 设备索引的默认 quartus_pgm 参数。默认情况下,该变量的值为 1。如果 FPGA 不是 JTAG 链中的第一台设备,您可以自定义该值。 |
ACL_PCIE_USE_JTAG_PROGRAMMING |
将此变量设置为强制 MMD 使用 JTAG 线缆对 FPGA 进行重新编程,而非部分重配置。 |
ACL_PCIE_DMA_USE_MSI |
如果想使用 MSI 在 Windows* 上实现直接内存存取 (DMA) 传输,您可以设置该变量。 |
面向 OpenCL™ 的英特尔® FPGA SDK 的诊断工具
面向 OpenCL 的英特尔 FPGA SDK 的诊断工具可帮助诊断并解决在使用面向 OpenCL 的英特尔 FPGA SDK 的过程中出现的各种安装/设置问题以及硬件和软件问题。此工具会执行安装测试、设备测试和链接测试。欲了解有关此工具的更多信息,请参阅此演示。要使用此工具,请从此处下载。
其他调试技术
由于主机程序中的循环,用户在运行 OpenCL™ 系统时可能会遇到系统运行速度变慢的情况。要了解有关此类情况的更多详细信息,请参阅《面向 OpenCL™ 的英特尔® FPGA SDK 编程指南》中的调试速度逐渐变慢的 OpenCL 系统。
面向 OpenCL 的英特尔代码生成器是作为面向 OpenCL 的英特尔 FPGA SDK 的一部分提供的一款软件开发工具。此工具提供了一系列 Microsoft* Visual Studio 和 Eclipse 插件,可实现经 OpenCL 加速的 Windows* 和 Linux* 应用程序的创建、构建、调试和分析功能。欲了解更多信息,请参阅《面向 OpenCL 的英特尔 FPGA SDK 编程指南》中的使用面向 OpenCL 的英特尔代码生成器开发/调试 OpenCL 应用程序
知识数据库解决方案
英特尔® Arria® 10 设备
英特尔® Stratix® 10 设备
更多资源
以下是来自英特尔 FPGA 社区且针对设计和运行阶段相关问题的一些附加链接:
OpenCL™ 速览视频 |
|
---|---|
视频标题 |
视频说明 |
如何使用 Windows* 在 Cyclone® V SoC 上通过 OpenCL™ 运行 Hello World 和(其他程序)第 1 部分 |
该视频描述了使用 Windows* 设备在 Cyclone® V SoC 上运行两个应用程序(OpenCL™ HelloWorld 和 OpenCL™ 快速傅立叶变换 (FFT))的即用程序。 |
如何使用 Windows 在 Cyclone V SoC 上通过 OpenCL 运行 Hello World 和(其他程序)第 2 部分 |
该视频描述了使用 Windows 设备在 Cyclone V SoC 上运行两个应用程序(OpenCL HelloWorld 和 OpenCL FFT)的即用程序。 |
如何使用 Windows 在 Cyclone V SoC 上通过 OpenCL 运行 Hello World 和(其他程序)第 3 部分 |
该视频描述了使用 Windows 设备在 Cyclone V SoC 上运行两个应用程序(OpenCL HelloWorld 和 OpenCL FFT)的即用程序。 |
如何使用 Windows 在 Cyclone V SoC 上通过 OpenCL 运行 Hello World 和(其他程序)第 4 部分 |
该视频描述了使用 Windows 设备在 Cyclone V SoC 上运行两个应用程序(OpenCL HelloWorld 和 OpenCL FFT)的即用程序。 |
如何使用 Windows 在 Cyclone V SoC 上通过 OpenCL 运行 Hello World 和(其他程序)第 5 部分 |
该视频描述了使用 Windows 设备在 Cyclone V SoC 上运行两个应用程序(OpenCL HelloWorld 和 OpenCL FFT)的即用程序。 |
该视频探讨了客户为什么有可能使用该特性将自定义处理模块 (RTL) 置于 OpenCL 内核代码中。该视频还解释了生成文件、配置文件等设计示例,并阐述了编译流程。本视频还演示了该设计示例。 |
|
该视频向您展示了如何下载、安装和配置必要工具,以开发针对 Altera® SoC FPGA 的 OpenCL 内核和主机代码。 |
|
Altera SoC FPGA(Linux 主机)上的 OpenCL – 第 2 部分 – 通过仿真器运行 Vector Add 示例 |
该视频向您展示了如何下载和编译针对 OpenCL 内置仿真器的 OpenCL 应用程序示例。 |
Altera SoC FPGA(Linux 主机)上的 OpenCL – 第 3 部分 – 面向 SoC FPGA 的内核和主机代码编译 |
该视频向您展示了如何编译针对 FPGA 和 Cyclone V SoC FPGA 处理器的 OpenCL 内核和主机代码。 |
该视频向您展示了如何设置 Cyclone V SoC 主板,以运行 OpenCL 示例并在主板上执行主机代码和内核。 |