Altera OpenCL SDK与Xilinx SDAccel的使用对比

简介:

出于工作需求,申请了这两家的高级语言综合工具,对典型算法进行了实现和评估(数据暂时保密)。

简要谈谈使用体验。


1. Altera OpenCL SDK

首先需要安装Quartus(13.1版本以上)和配套的SoC EDS,分别申请两个license,一个用于OpenCL SDK,一个用于SoCEDS,缺一不可。

然后需要有实现平台,我用的是DE1-SoC开发板。该平台提供了Open CL BSP,用给出的examples改改就能实现自己的算法。

SoCEDS用来编译Host代码,这里是ARM;

Open CLSDK用来编译device代码,生成.aocx二进制文件,运行时需要借助ARM对FPGA进行配置。

开发周期较长的是编译Open CL工程,在我的笔记本(CPU 酷睿i5-4300,8GB内存)上大约需要40min。

优化Open CL可以通过编译选项、编译指导语句#pragma进行。

Open CL BSP自带的硬件工程可以用Quartus打开查看,但里面的Open CL相关逻辑是加密的,无法修改。

Open CL SDK不带图形界面,只能在命令行下运行,自动调用quartus_map, quartus_fit, quartus_sta等工具。


2. Xilinx SDAccel

前面文章介绍过Xilinx Vivado和Vivado HLS工具。按照我的猜想,SDAccel只是一层包装,里面内容还是HLS。果然如此。

软件安装比较省事,只申请SDAccel license就能使用所有Xilinx软件功能。这点比Altera做得人性化。

用过HLS工具的童鞋都知道,这玩意开发起来飞快,但其实只完成了10%进度,麻烦事在后头呢,系统集成会花掉剩下90%的时间。

SDAccel就是这样一个用于开发完整项目的工具。

利用Open CL编写的代码会先转化为HLS工程,其优化策略也都一一映射为HLS的优化,所以前面学过HLS的童鞋可以很容易转到SDAccel上来。

最重要的步骤都有工具自动完成。只需build_system, package_system,等上几十分钟就能得到一个可直接运行的安装包。

SDAccel不需要你真的有一块开发板,它可以直接用CPU仿真,便于调试。

SDAccel既能使用图形界面开发(类似HLS),又能在命令行执行。上传一张谍照。



小结

使用OpenCL的一大优势就是,只需将原来CPU、GPU上的C、C++、CUDA代码做些许改动就能运行在FPGA上。

两种工具都带来了一定开发上的便利,但真想用好这些工具,仍然需要对计算架构、算法本身有深入的理解。

目录
相关文章
|
存储 安全 搜索推荐
https网站
https网站
1256 1
|
7月前
|
机器学习/深度学习 人工智能 测试技术
仅7B的模型数学推理能力完虐70B?MIT哈佛推出行动思维链COAT让LLM实现自我反思并探索新策略
Satori 是由 MIT 和哈佛大学等机构联合推出的 7B 参数大型语言模型,专注于提升推理能力,具备强大的自回归搜索和自我纠错功能。
247 6
仅7B的模型数学推理能力完虐70B?MIT哈佛推出行动思维链COAT让LLM实现自我反思并探索新策略
|
7月前
|
机器学习/深度学习 存储 人工智能
Satori:快速体验MIT与哈佛推出7B参数的推理专家模型,具备自回归搜索和自我纠错能力
Satori 是由 MIT 和哈佛大学等机构联合推出的 7B 参数大型语言模型,专注于提升推理能力,具备强大的自回归搜索和自我纠错功能。
153 5
|
8月前
|
机器学习/深度学习 存储 人工智能
《脉动阵列:AI硬件加速的“秘密武器”》
脉动阵列(Systolic Array)是一种高效的并行计算架构,灵感源自人体血液循环系统。它通过网格排列的处理单元(PE),以同步并行方式处理数据,尤其在矩阵乘法和卷积运算中表现出色,极大提升了AI计算效率。其优势包括降低内存带宽需求、高运算吞吐率和设计简洁,但也面临灵活性有限、全局同步难等挑战。尽管如此,脉动阵列仍为AI硬件加速提供了重要支持,推动了人工智能技术的发展。
665 14
|
10月前
|
JSON 搜索推荐 C++
vscode如何更改背景颜色主题,黑色或白色?
【11月更文挑战第16天】在 VS Code 中更改背景颜色主题,可通过三种方式实现:1) 使用快捷键 Ctrl+K 和 Ctrl+T(Mac 上为 Command+K 和 Command+T)选择主题;2) 通过菜单中的“管理”->“颜色主题”选项选择;3) 修改 settings.json 文件中的 "workbench.colorTheme" 属性。此外,用户还可从扩展市场安装更多主题以满足个性化需求。
22409 6
|
9月前
|
数据处理 API 流计算
XDMA与FPGA:高效数据传输的艺术
XDMA(Xilinx's DMA/Bridge Subsystem for PCI Express)是Xilinx推出的一种高效数据传输引擎,专为PCIe总线设计。通过封装PCIe协议,XDMA提供简化的API接口,支持Scatter-Gather DMA和Block DMA模式,特别适用于高性能计算、实时视频处理和大数据分析等领域的数据传输。XDMA通过链表传输和高效的PCIe接口,减少了主机CPU的负担,提高了数据传输效率。AXI4和AXI4-Stream接口进一步增强了XDMA与FPGA的协同工作能力,使其在现代计算系统中发挥重要作用。
583 0
|
监控 安全 Linux
在Linux中,如何配置VPN服务?
在Linux中,如何配置VPN服务?
|
Ubuntu Linux 网络安全
在Linux中,如何配置VPN连接?
在Linux中,如何配置VPN连接?
|
Linux
如何将一个linux服务器挂载到另外一个linux服务器上
如何将一个linux服务器挂载到另外一个linux服务器上
525 1
|
存储 编译器 C++
【C/C++】 静态内存分配与动态内存分配
C/C++ 中静态内存分配与动态内存分配相关内容,区别与比较
594 0