简洁完整的文档见DE4-530的OpenCL开发环境搭建(最终版)

背景介绍

传统的硬件开发,需要经过“算法设计->硬件方案设计->代码实现->功能仿真->下板调试”这些步骤,花费的时间会非常长。通过OpenCL在FPGA上开发,可以实现同样的功能,但是少了硬件方案及实现过程(这是最耗时的阶段),可以大大降低硬件开发周期。

如今的主流FPGA厂商只有Altera在大力支持OpenCL,Xilinx只是通过C2H工具将C语言转换成硬件语言,其他厂商还无任何消息。Altera提供的可用于OpenCL开发的FPGA开发板为DE4-530,Altera在今年5月才发行了openCL_13.0_release,作为其正式商用版。

直接用FPGA进行程序开发和调试的话,时间会非常漫长(主要是编译过程)。所以开发流程确定为:

1.通过显卡开发调试程序,确保程序正确性;

1.将正确的程序编译下载到FPGA上运行,并分析其性能。

环境要求

接下来就是搭建OpenCL的开发环境。由于最终是以DE4-530开发板为对象,所以确定软件环境时以DE4-530的要求为基准。

Altera公司提供了一个针对DE4-530进行OpenCL开发的说明文档(Altera SDK for OpenCL Getting Started.pdf),里面介绍了硬件及环境要求。

1.the Altera SDK for OpenCL version 13.0支持的OpenCL version 1.0;(如今OPenCL已经发展到了1.2)

2.电脑硬件:

操作系统为Microsoft 64-bit Windows 7 或 Red Hat Enterprise 64-bit Linux(RHEL)5.6;(CPU需支持64位操作系统)

有eight-lane PCI Express port(PCIe x8)或sixteen-lane PCI Express port(PCIe x16);(考虑到还有显卡,故主板需多个PCIe x8,PCIe x16接口)

只支持单个FPGA开发板;(Only one FPGA accelerator board may be installed in the host machine)

3.软件环境:

FPGA设计软件——the Quartus II software version 13.0;(以前版本不支持OpenCL编程[.aocx])

设备支持——为Stratix V设备安装支持软件;

USB-Blaster驱动——通过USB接口下载hardware kernel program到FPGA的flash memory;

PCIe驱动——主机和设备通过PCIe接口进行通信;

C编译开发环境——Windows系统采用Microsoft Visual Studio version 2010 Professional,Linux系统采用C编译器;

硬件环境

按照上述环境要求,重新配置一台PC(如果是工作站最好),配置如下:

CPU——酷睿i7 3770K(支持64位系统)

显卡——华硕7870-DC2-2GD5铜管直触双风扇(支持OpenCL 1.2)

主板——华硕P8Z77-V PRO(3个PCIe x16插槽)

机箱——游戏悍将刀锋1标准版(可以安装40cm的大显卡,故能容纳DE4开发板)

内存——金士顿 DDR3 1600 8G(KVR16N11/8)   *3(可提供足够的运行内存)

考虑到操作的方便性,操作系统采用Windows7 SP1。

Visual Studio安装

该软件是OpenCL开发的平台,故不论是GPU开发还是FPGA开发,都需要安装该软件。机箱DE4文档中要求版本为Microsoft Visual Studio version 2010 Professional,故先到官网下载页面下载对应版本并安装;

破解:百度上很多方法,我采用的是百度文库“Visual Studio 2010下载 + 附破解方法”里的第一种方法,直接输入注册码。

VAssistX安装

该软件是Visual Studio的自动补全插件,当然也可以不安装。自己去百度,下载安装并破解。

AMD显卡驱动安装

显卡驱动是显卡和SDK应用之间的桥梁,故显卡驱动也需支持OpeCL开发。

在AMD的OpenCL系统要求页面内,可以看到是可以支持Microsoft 64-bit Windows 7 的,与DE4-530可以共用一个操作系统,这就解决了操作系统的问题。

在页面底部,有这样一段信息:


显示了AMD公司已经发行的SDK与显卡催化剂版本。其显卡催化剂一般都内置有SDK,只是版本比较老而已。

显卡驱动安装有2种方法:

1.通过下载最新的“Download AMD Catalyst Drivers”来安装,该方法可以选择安装所有的AMD驱动,这样可以省去单独安装SDK(这样可以省去下步的SDK安装,直接检测SDK是否安装成功);该方法有个很不好的缺点就是:安装的时候不容易成功,会很麻烦;

2.直接通过“驱动精灵”把显卡驱动更新为最新版本,该方法只安装显卡驱动,不会安装其他软件,比如声频驱动,SDK之类的。

首先介绍第1种方法,我试了很多次都失败了,所以并不推荐该方法,我先介绍我的安装过程及错误。

点击“Download AMD Catalyst Drivers”进入显卡驱动下载页面,选择自己PC的显卡和操作系统,进入对应的AMD HD7900显卡驱动页面,里面有稳定版,测试版,文档;并描述了其详细信息

从中我们可以看出其内部组件是支持OpenCL开发的,具体的版本这些暂时还没搞懂。

在安装该驱动之前,PC已经安有普通驱动,以下是该驱动的软件信息


从这个页面来看,我并不清楚该驱动是否支持OpenCL开发,我的想法是既然没有写明,那么应该就是不支持(安装后也是这个界面,所以说这里是看不出是否安装OpenCL的),毕竟现在OpenCL开发是一个重要的概念。

那么接下来我们就安装新驱动,安装过程会让选择组件


从这里可以看到,有“AMD APP SDK Runtime”这个OpenCL开发必须的支持组件:可勾选的表示电脑现在没有该软件或不是最新版本,可以选择安装;而为勾且不可选择的选项表示已经是最新版,无需安装。这样选择之后安装。

我就是在这里安装的时候,系统提示说有些组件没有安装成功,所以我又重启安装一次,但是安装的时候一直卡在“分析”阶段。我这样进行了很多次,最后在网上查找原因,发现时这个问题经常出现,解决方法是通过AMD的专用卸载软件把AMD的软件全部卸载完毕再进行安装。

在AMD Catalyst Un-install Utility下载页面下载后,点击运行,此处需要注意的是它会把电脑上的所有AMD软件都卸载掉。卸载后再用上述方法安装,还是出错,最后只有再次完全卸载,然后用装机时自带的光盘进行安装。

接下来介绍第2种方法,下载驱动精灵,然后升级显卡驱动即可,该方法只会升级显卡驱动,所以需要单独下载安装SDK,过程很简单,所以就不叙述了。(其实与第1种方法差不多一样的,只是少些步骤而已)

AMD APP SDK安装

我选择了第2种方法安装AMD显卡驱动,所以需要单独安装SDK。(其实已经安装了SDK,这步只是给那些没有安装SDK的朋友看看步骤)

首先下载AMD-APP-SDK-v2.8-Windows-64.exe,下载之后运行安装。(其他的硬件及操作系统环境下载则在SDK下载页面选择下载相应的版本)

其安装流程与上面显卡安装时一样的,只是在选择组件的时候不一样。


从中可以看到,只有3个可选项,其余的都是已经成功安装的,点击继续安装。

安装完成后,我们来检测是否成功安装,其方法有3:

1.查看安装日志,看看所勾选的3个组件是否成功安装;

2.在cmd命令窗口输入“clinfo”:未安装前,只会CPU的信息;安装成功后,会显示GPU的信息;下图是安装后的GPU信息

3.在设备管理器中查看“显卡驱动程序详细信息”

这是未安装SDK前的详细信息,其中没有OpenCL.dll

这是安装SD后的详细信息,其中已经有了OpenCL.dll 

至此,GPU的OpenCL开发环境已经建立起来了,剩下的工作是通过实例检测我们所建立的该GPU开发环境。
这是AMD的资料:AMD的Heterogeneous Computing(关于异构计算的资料,包括性能分析)

 

AMD CodeXL安装

AMD公司提供的分析工具室CodeXL,其内置了APP KernelAnalyzer,APP Profiler,CodeAnalyst,gDEBugger四个工具,如果不需要全部这些工具那么也可以单独下载安装。

在AMD的Heterogeneous Computing页面选择CodeXL,进入CodeXL下载页面,选择window版本下载安装即可。

安装后CodeXL后,会以两种方式出现:一是单独的软件方式出现,二是以Visual Studio的插件形式出现。

Quartus II 12.0 SP2安装

DE4的OPenCL开发环境花费了太多时间。刚开始是安装了Quartus II 13.0,结果发现这是商业发布版,不支持DE4开发板;后面听说要12.1 SP1才行,SDK要0.9版本,于是从内部渠道拿到0.9的SDK,重新下载12.1 SP1安装,结果还是不行。

通过Altera的OpenCL资料,在cmd命令行里输入aclkc --list-boards,就能找到该SDK支持的开发板,一共应该是6个。可只发现了2个,而且这2个还是之前安装Quartus II 13.0时安装的。最后找到Altera的OpenCL工程师咨询,给我们的建议是完全按照getting_started文件里的步骤来。

由于我们也找不到其他原因,所以就只有试试这个方法。

之前我们的安装步骤是:AMD显卡驱动 -> Visual Studio2010 -> AMD SDK -> CodeXL,这是针对GPU的开发环境,当时的要求是先在GPU上跑通,再做FPGA。跑通之后,其他软件的安装顺序是Quartus II 12.1 SP1 -> USB-Blaster -> PCIe driver -> acl(只需解压)。

再看看Altera文档上的顺序是:Quartus II 12.0 SP2 -> acl -> PCIe driver -> Visual Studio。这个是针对DE4的开发环境的建立顺序。所以打算把相关的软件都先卸载,然后再按顺序安装。

所以,我卸载了所有Quartus软件(12.1和13.0),Visual Studio,PCIe driver,CodeXL(作为VS的插件,故也需重新安装方可),acl(USB-Blaster和AMD SDK是没有卸载的)。

接下来的安装顺序是:Quartus II 12.0 SP2(重新下载的) -> acl -> PCIe driver -> Visual Studio -> CodeXL。

安装之后,再次在cmd里输入aclkc --list-boards,可以看到闪过一列信息,由于闪过之后马上消失,所有截屏了很多次才成功,就是下图


接下来就是运行Altera给的实例,先开FPGA的电,然后再开机。

下载sof到FPGA(怎么弄还不知道),接下来是在Visual Studio里编译程序,生成exe文件,运行该文件。可以看到成功执行。

我把DE4的电源断掉,继续运行exe文件,发现还是成功运行,感觉挺怪异的,排查之后发现是PCIe接口再给DE4供电。直接把DE4拔掉之后,运行则发生错误,而且此时进行调试也是不成功的,这个说明调试也是在对应的设备上进行的,而不是在CPU上。

现在的问题是如何生存sof文件?

以下都是以前的错误安装,记录在此,以备不时之需。

Quartus II 12.1SP1安装

由于Quartus II 13.0不支持Stratix IV,导致前面的13.0安装工作完全浪费(连下载话费了1天多时间)。通过professor黄跟Altera的中国区大学计划经理沟通后才最终确认这件事,没办法只能重新下载12.1SP1安装。

进入Quartus II订购版的下载页面,下载并安装相应的软件。这里提供了3种方式,我采用的是第1种,通过下载管理器自动下载并安装软件,该方法非常耗时,我下载了1天多才安装成功(之前还由于电源管理导致多次下载失败)。


在这里我同时使用了第2种方法,直接下载各个安装文件进行安装,下图中用红色方框圈中的是需要下载的文件

这种方法需要手动安装各个器件库和其他相关软件,但由于可以通过迅雷等下载工具下载,所以速度会比第一种方法快许多。
安装完成后,找到License破解即可进行下一步。
以下环境不适用于DE4,故可以说是错误的。

Quartus II 13.0安装

在Altera下载中心下载软件,按照其提示信息,将所需要的文件下载到同一个文件夹中,运行QuartusSetup.exe安装,然后嵌入License(需要支持OpenCL)。

这是我下载的软件列表

安装成功后,我把我的License嵌入到软件中。下图是该License的授权范围,可以看出是支持OpenCL的。

我所选择的这些软件安装空间需要20G左右。

后续安装参照面向OpenCL的Altera SDK开始设计指南。

Altera SDK安装

在Altera SDK for OpenCL下载软件,并进行安装,需要已经安装有Quartus II 13.0和Stratix V器件支持。

安装之后进行环境变量的确认及添加,下图是Altera SDK for OpenCL Getting Started.pdf里的环境变量图


首先,确认ALTERAAOCLSDKROOT,QUARTUS_ROOTDIR是否正确


接下来就是PATH变量,因为在用户变量或者系统变量里都只能各自存在一个PATH变量,所以其值是写在一起的,选择用户变量的Path变量,进行编辑,即可看到里面的值

下面2个图是Path变量里的2个值


最后一个变量LM_LICENSE_FILE是没有的,所以需要自己添加,变量值是License的路径


按照参考,环境变量设置完毕后,则可以检查该SDK是否安装成功

方法是:

打开cmd,输入“where aoc”,能够返回aoc.bat的路径则表明安装成功


其实,我还有个小疑问,安装AMD的SDK后,可以通过在cmd里输入clinfo来查看是否有OpenCL设备;而在这里,即使上面的都正确,输入clinfo也不会出现关于Altera的设备信息(是有些东西没有安装完全么,还是本来就不会出现这样一个信息?)

USB-Blaster安装

通过USB-Blaster将一块Altera开发板与电脑相连,在设备管理器中检测到未知的usb设备,手动安装该驱动,驱动路径是:%QUARTUS_ROOTDIR%\drivers\usb-blaster。

PCIe驱动安装

进入如下目录%ALTERAOCLSDKROOT%\windows64\driver,点击其中的install.bat进行安装。

成功安装后,插入DE4-530开发板,再重启电脑(PCIe接口是不支持热插拔的)。按照Altera SDK for OpenCL Getting Started.pdf的说明,此时在设备管理器应该能看到2个新增的设备,如下


我安装后,先关闭电脑,再打开DE4的电源,然后开机,看到的只有最下面那个PCIe的驱动WinDriver,并没有出现上面那个加速器设备Accelerators。还不知道原因

转载于:https://www.cnblogs.com/lifan3a/articles/4607636.html

DE4-530的OpenCL开发环境搭建相关推荐

  1. VS2015 OpenCL开发环境搭建

    1 环境搭建 俗话说工欲善其事必先利其器,想要学习某项技术,必须先把环境搭建好. 2 准备工具 GeForce MX150显卡驱动(使用驱动精灵或者鲁大师安装即可) GPU-Z:下载 CUDA:安装8 ...

  2. OpenCL编程(1)- 开发环境搭建(NVIDIA GPU+Win10篇)

    基于NVIDIA GPU的OpenCL开发环境搭建的步骤如下: 1.下载安装显卡驱动 使用鲁大师或驱动精灵下载安装与显卡型号相适应的显卡驱动并安装,若采用默认路径安装,则在路径C:\Program F ...

  3. Android环境搭建和Android HelloWorld—Android开发环境搭建

    Android_Android开发环境搭建-搭建Android的开发环境 1.我考虑先下载JDK7.0,在JDK的安装中,考虑一般SDK都是向上兼容的,于是选择了最高的版本7.0 这里是我总结的详细的 ...

  4. qt工程在linux系统里颜色显示错误_【飞凌嵌入式RK3399开发板试用体验】+QT开发环境搭建测试(二)...

    作者:飞扬的青春 在拿到开发板之后,已经体验了Android操作系统,接下来就是体验Linux下的开发,本次以QT的一个小案例来测试下. 首先是自己先搭建了一个Ubuntu18.04的虚拟机,使用真机 ...

  5. Go:分布式学习利器(1) -- 开发环境搭建 + 运行第一个go程序

    文章目录 为什么要学习 go 开发环境搭建 -- MAC 运行第一个go程序 go 函数的返回值设置 go 函数的命令行参数 为什么要学习 go 在如下几个应用场景的需求下产生了go: 超大规模分布式 ...

  6. 智能合约开发环境搭建及Hello World合约

    如果你对于以太坊智能合约开发还没有概念(本文会假设你已经知道这些概念),建议先阅读入门篇. 就先学习任何编程语言一样,入门的第一个程序都是Hello World.今天我们来一步一步从搭建以太坊智能合约 ...

  7. iPhone开发环境搭建全过程 iPhone手机开发内容,中文手册

    http://3g.edu.csdn.net/kecheng/iphone.html  iPhone手机开发内容 http://www.docin.com/p-34874880.html# iPhon ...

  8. python搭建numpy_python开发环境搭建及numpy基本属性-【老鱼学numpy】

    目的 本节我们将介绍如何搭建python的开发环境以及numpy的基本属性,这样可以检验我们的numpy是否安装正确了. python开发环境的搭建 工欲善其事必先利其器,我用得比较顺手的是Intel ...

  9. windows下pomelo开发环境搭建及JS乱码问题

    from: http://blog.csdn.net/wangqiuyun/article/details/9243263 最近一直在研究node.js这一块,为的就是使用网易的pomelo框架,学习 ...

  10. Android配置----Android开发环境搭建

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

最新文章

  1. 自动打包Shell脚本
  2. Learn Python The Hard Way(20)
  3. 每个即将成为或想成为网络工程师最想看的文章
  4. Openswan企业实战之ipsec ***加速ERP系统
  5. Java的TreeMap统计单词数量
  6. 【LeetCode】5.最长回文子串
  7. c语言常用指令翻译,c语言常见专业词汇带翻译
  8. 使用Lambda在AWS云上使用Java
  9. 工厂方法模式(Factory Method Pattern)
  10. __super作用(C++中)
  11. [常微分方程]Lecture 2: 欧拉数值方法及推广
  12. 一步一步手写实现实时监测物体YOLO v3 EASY METHOD | OpenCV Python CNN卷积神经网络
  13. java在线编辑word_java web实现在线编辑word,并将word导出(一)
  14. 重装系统后新建文本文档打不开怎么办
  15. ps怎样查看图片坐标
  16. Coding中UML建模问题释疑
  17. 35岁,还学编程是不是很难
  18. 慕课网视频中的代码---3-4 Minst手写体识别
  19. 2022年值得关注的 8 个人工智能趋势及中国人工智能行业发展情况
  20. 【英文SEO】Google网站管理员工具是什么?

热门文章

  1. 虚拟机中 yum 安装时报错
  2. BigDecimal 加减乘除 | 比较大小 | 取最大最小值 | 保留小数位 |转String
  3. 笔记.cloudflare 的橙色云代理ssl坑
  4. MySQL 随机获得一条数据的方法
  5. java实现插入排序+代码推导
  6. 用于保存计算机输入输出数据的材料及其,与房地产,电子,金融,汽车并称五大产业的是()...
  7. 动态内存申请函数 malloc_malloc 的实现原理 内存池 mmap sbrk 链表
  8. mybatis中的SqlMapConfig.xml配置文件基本使用
  9. python标点符号全是英文吗_python 过滤中文、英文标点特殊符号
  10. git rm -r --cached_程序员一定能用到的git命令:分支+暂存+回退+标签+创建项目仓库...