Xilinx Alveo系列FPGA加速卡软件开发入门

背景

随着异构计算越来越火,FPGA加速卡在诸多领域的应用也越来越多。

FPGA加速卡与GPU加速卡加速原理完全不同。

GPU本质上是依靠海量的并行运算单元,提升整体的吞吐量,来吃尽内存带宽。

FPGA是通用的门阵列,按照数据结构和运算特点搭建专用运算单元,能够以更低功耗和时延实现高吞吐。

上一篇我们已经完成了环境搭建,本篇将主要介绍项目结构和工作原理

整体架构

使用GPU加速时,CPU发送数据和指令到GPU即可,无需考虑执行指令的运算核的设计,FPGA芯片运算核是需要开发的。如下图所示:主机通过PCIe连接FPGA加速卡。因此在Host端和Device端都有相应的代码。

传统的FPGA开发方式使用HDL语言,无法动态的修改FPGA内部的功能。FPGA加速的核心就是运算核更贴近数据,当数据结构或是处理流程变化,就需要修改运算核结构。如果每次替换运算核需要让服务器断电显然不现实,因此行业的普遍做法就是将芯片内分区,分为不可修改的静态区和可以修改的动态区。静态区内就是DMA、PCIe、DDR等基础的功能核,用户的运算核则部署到动态区中,通过AXI接口连接。

xilinx提供了Host端和Device端的数据交互,我们需要解决的Host的程序和Device的Kernel。

如下图所示,项目构建分为3个部分。Host端的程序、FPGA的Kernel、以及衔接Kernel和FPGA内部的Link。由于有link的存在,消除了一部分FPGA芯片规格差异,降低了Kernel的开发难度也可以在一定程度上与硬件解耦。

创建第一个工程

官方推荐的第一个DEMO工程就是向量加法,方便初学者快速掌握项目结构和运行原理。

创建工程首先需平台文件,我这里使用的是Alveo U50。常用的还有Alveo U200 Alveo U50

随便取个项目名字

导入官方提供的例程,推荐初学者选择这个,包括了HLS、OpenCL的使用以及任务并行化的使用。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值