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上。

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

时间: 2024-12-31 20:20:33

Altera OpenCL SDK与Xilinx SDAccel的使用对比的相关文章

FPGA 那些事儿之异构计算

FPGA 那些事儿之异构计算 简介 对于一个软件开发人员,可能听说过 FPGA,甚至在大学课程设计中,可能拿FPGA做过计算机体系架构相关的验证,但是对于它的第一印象可能觉得这是硬件工程师干的事儿. 目前,随着人工智能的兴起,GPU 借助深度学习,走上了历史的舞台,并且正如火如荼的跑者各种各样的业务,从 training 到 inference 都有它的身影.FPGA 也借着这股浪潮,慢慢地走向数据中心,发挥着它的优势.所以接下来就讲讲 FPGA 如何能让程序员们更好友好的开发,而不需要写那些烦

《OpenCL实战》一1.6 框架和SDK

1.6 框架和SDK 尽管文件matvec.c和 文件matvec.cl中的代码让人眼前一亮,但如果没有经过编译.运行,这些代码就更像花拳绣腿,没有任何实际的作用.而为了能够编译.运行,你就必须要有一套兼容OpenCL的开发工具.正如OpenCL标准所述,框架包含如下三个部分. 平台层--通过它来访问设备,设定上下文 运行时--让主机应用程序将内核和指令队列发送到上下文中的设备上 编译器--构建含有可执行内核的程序 OpenCL工作组并没有提供自己的设计框架.这就要求每个OpenCL兼容设备的生

使用OpenCL加速Web应用程序

由于图像处理器 (GPU) 具有高度并行的基础架构,所以它可以比传统中央处理器 (CPU) 更快地执行某种 类型的应用程序.开放计算语言 (OpenCL) 是最流行的语言之一,可驾驭 GPU 的强大功能.一个典型示例就 是 Adobe Premiere Pro CS6,它通过在用户 GPU 上执行 OpenCL 例程来加速图像和视频的处理. 多家公司都认为 GPU 加速对基于浏览器的应用程序有很大的帮助,于是成立了一个工作组来促进这项技术的 发展.在 2012 年 5 月,该工作组发布了 Web

使用OpenCL加速web浏览器中的高性能计算

由于图像处理器 (GPU) 具有高度并行的基础架构,所以它可以比传统中央处理器单元 (CPU) 更快地执行某种类型的应用程序.开放计算语言 (OpenCL) 是最流行的语言之一,可驾驭 GPU 的强大功能.一个典型示例就是 Adobe® Premiere® Pro CS6,它通过在用户 GPU 上执行 OpenCL 例程来加速图像和视频的处理. 多家公司都认为 GPU 加速对基于浏览器的应用程序有很大的帮助,于是成立了一个工作组来促进这项技术的发展.在 2012 年 5 月,该工作组发布了 We

从零开始学习OpenCL开发(二)一个最简单的示例与简单性能分析

欢迎关注 转载请注明 http://blog.csdn.net/leonwei/article/details/8893796   1 Hello OpenCL      这里编写一个最简单的示例程序,演示OpenCl的基本使用方法:     1.首先可以从Nvdia或者Amd或者Intel或者所有OpenCl成员的开发者网站上下载一份他们实现的OpenCL的SDK.虽然不同公司支持了不同版本的OpenCL和扩展ext,但是在相同版本上对于标准的OpenCL接口,每个SDK实现的结果都是一样的,

OpenCL通用编程环境将广泛支持CPU/GPU

OpenCL最早由苹果提出,在Intel.AMD.NVIDIA等巨头的参与下,去年12月已形成第一版标准.最初,人们对于OpenCL的认识仅仅局限于GPU通用计算的统一标准.而在最终的标准中我们看到,OpenCL将提供一个通用编程环境,支持多http://www.aliyun.com/zixun/aggregation/3513.html">核心处理器(CPU).图形处理器(GPU).Cell架构以及数字信号处理器(DSP)等其他并行处理器.也就是说,OpenCL不仅针对GPU,依靠通用标

详解丨FPGA:深度学习的未来?

转自新智元 来源:arxiv 作者:Griffin Lacey  Graham Taylor Shawaki Areibi 摘要 最近几年数据量和可访问性的迅速增长,使得人工智能的算法设计理念发生了转变.人工建立算法的做法被计算机从大量数据中自动习得可组合系统的能力所取代,使得计算机视觉.语音识别.自然语言处理等关键领域都出现了重大突破.深度学习是这些领域中所最常使用的技术,也被业界大为关注.然而,深度学习模型需要极为大量的数据和计算能力,只有更好的硬件加速条件,才能满足现有数据和模型规模继续扩

FAST:基于FPGA的SDN交换机开源项目

自1983年自由软件运动领袖Richard Stallman提出了GNU计划以来,开源为软件开发带来了创造性的革命和商业成功.SDN如今的快速发展也离不开开源社区的力量,比如NOX.Floodlight.OpenContrail.ONOS等开源项目极大的推动了SDN产业链的发展.但SDN的开源大多都局限在控制器或软件交换机的领域,数据平面的硬件开源项目始终没有迎来一个百花齐放的春天,同时在网络教学研究领域,也没有形成一个有序.规范.有创造力的生态圈,FAST的诞生或许可以提供一个崭新的思路. 他

php中get_meta_tags()、CURL与user-agent信息对比

get_meta_tags()函数用于抓取网页中<meta name="A" content="1"><meta name="B" content="2">形式的标签,并装入一维数组,name为元素下标,content为元素值,上例中的标签可以获得数组:array('A'=>'1', 'b'=>'2').其他<meta>标签不处理,并且此函数只处理到</head>标签