0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Intel altera opencl入门

FPGA技术江湖 来源:FPGA技术江湖 2024-04-13 11:53 次阅读

今天给大侠带来Intel altera opencl 入门,话不多说,上货。

概述

Intel altera 的 OpenCL 主要面向信号处理类应用的客户,是用C语言开发FPGA的利器,开放计算语言(OpenCL)联盟著名的公司有 FPGA巨头Intel altera、两大显卡GPU巨头AMD英伟达CPU巨头Intel、软件和服务器巨头IBM以及全世界最大的公司Apple(苹果)等等。不过AMD和英伟达是用GPU实现的OpenCL并行运算,Intel altera是用FPGA实现并行运算。

1. 系统要求

• Microsoft 64-bit Windows 7专业版或者更高。

• 对于Windows操作系统, 要安装微软公司的Visual Studio 2010或者2012专业版(推荐)。

或者:

• Red Hat Enterprise 64-bit Linux (RHEL) 5或者6。

• 对于Linux操作系统, 安装操作系统过程中要把C编译器包括GCC勾选上。

2.安装Altera的软件和搭建OpenCL环境(以Windows为例,Linux也类似):

•安装Quartus II 13.1 Update4(或者14.0)

•安装Altera OpenCL 13.1 Update4(AOCLSetup-13.1.4.182.exe)(或者14.0)

设置环境变量(基于默认的安装路径):

变量和值如下:

ALTERAOCLSDKROOT和C:altera13.1hld(或者C:altera14.0hld)

PATH和C:altera13.1hldwindows64in(或者C:altera14.0hldin;C:altera14.0hldhostwindows64in)

LM_LICENSE_FILE和c:alteralicense.dat

参考下图:

2aaa4aa6-f92d-11ee-a297-92fbcf53809c.png

2ab32e50-f92d-11ee-a297-92fbcf53809c.png

然后在命令行里面运行where aoc,测试一下软件是否安装正确以及环境变量是否设置正确,如果正确,如下图;如果不正确,修改错误再来。

2ab9e768-f92d-11ee-a297-92fbcf53809c.png

或者(14.0)

2ac6d4e6-f92d-11ee-a297-92fbcf53809c.png

3.开发板环境的安装和测试(以台湾友晶的DE5-Net开发板为例,不过没有开发板也可以,开发板不是必需的):

1)。 准备工作:下载DE5-Net开发板的全套软件安装包,http://www.terasic.com/downloads 。.. 5NET_openCL_BSP.zip 136MB,把里面的terasic文件夹解压缩到C:altera13.1hldoard下。

设置DE5-Net开发板的环境变量:

变量和值如下:

AOCL_BOARD_PACKAGE_ROOT和C:altera13.1hldoard erasicde5net

参考下图:

2ad509e4-f92d-11ee-a297-92fbcf53809c.png

然后在命令行里面运行aocl install来安装开发板驱动。

关闭你的PC,安装和连接开发板硬件后,重新开机,在命令行里面运行aoc --list-boards,如果硬件安装连接成功,会显示开发板名字de5net_a7,如果开发板不存在,显示none found。

2)。 测试开发板:

在命令行里面运行 cd C:altera13.1hldoard erasic estslank,运行aocl program blank.aocx,如果开发板已经安装连接好,aocx里面的sof文件会通过PCI-E接口下载,并且会返回成功的信息,如果开发板不存在或者没有安装连接好,会自动解压缩出reprogram_temp.sof,用户可以通过USB下载电缆去下载。

备注:没有开发板的客户可以在设置环境变量后跳过后面的步骤,继续。

4.编译和测试OpenCL工程:

1)。 编译OpenCL工程:

在命令行里面运行cd C:altera13.1hldoard erasic estsoardtest进入工程文件夹,运行aoc boardtest.cl --sw-dimm-partition开始编译,编译时间大约1个小时,最终产生的boardtest.aocx里面包含了sof文件,可以给开发板编程进去。

2)。 测试OpenCL工程(通过开发板):

在命令行里面运行 cd C:altera13.1hldoard erasic estslank,运行aocl program boardtest.aocx,如果开发板已经安装连接好,aocx里面的sof文件会通过PCI-E接口下载,并且会返回成功的信息,如果开发板不存在或者没有安装连接好,会自动解压缩出reprogram_temp.sof,用户可以通过USB下载电缆去下载。

提示:没有开发板的客户可以跳过上面的步骤,直接编译下面不需要开发板的例子,有开发板的客户可以直接到第五步:

下面完全脱离真实的开发板来运行Cytech_C5SOC.zip:

2aec8c5e-f92d-11ee-a297-92fbcf53809c.png

设置“虚拟”板的环境变量(替换原来的环境变量):

变量和值如下:

AOCL_BOARD_PACKAGE_ROOT和 C:altera13.1hldoardCytech_C5SOC

参考下图:

2af3eb2a-f92d-11ee-a297-92fbcf53809c.png

解压缩Cytech_C5SOC.zip里面的内容到C:altera13.1hldoard(也可以是其它文件夹),把例子exm_opencl_hello_world_windows64.zip里面的hello_world.cl也复制到这个文件夹下,在命令行里面运行cd C:altera13.1hldoard,运行aoc hello_world.cl开始编译。----因为Cyclone V SOC的5CSXFC6容量比Stratix V的5SGSMD5小几倍,所以编译时间只有20分钟左右,最终产生的hello_world.aocx里面包含了sof文件,同时也产生了转换后的.V源码和整个编译后的Quartus II完整工程,包括大量的底层配套的各种IP源码。

再演示3个不同的例子,分别是vector_add、matrix_mult和FFT,也是完全脱离真实的开发板来运行:

2b0422e2-f92d-11ee-a297-92fbcf53809c.png

2b12d526-f92d-11ee-a297-92fbcf53809c.png

2b199de8-f92d-11ee-a297-92fbcf53809c.png

不改变上面“虚拟”板的环境变量,目的是继续使用Cyclone V SOC的5CSXFC6,可以产生为这个系列优化的源码。

分别解压缩3个zip例子到C:altera13.1hldoard(也可以是其它目录),然后分别在在命令行里面:

1.运行cd C:altera13.1hldoardvector_adddevice,然后运行aoc vectorAdd.cl开始编译。

2.运行cd C:altera13.1hldoardmatrix_multdevice,然后运行aoc matrix_mult.cl开始编译。

3.运行cd C:altera13.1hldoardfft1ddevice,然后运行aoc fft1d.cl开始编译。

3个例子之间没有任何联系,可以单独运行,如果你的PC内存足够大,可以一起运行。

在产生的不同Quartus II工程中,可以找到matrix_mult.v、vectorAdd.v和fft1d.v这些转换出的源码。特别注意的是,这些最终的源码是acl_kernel_interface接口,这种接口比较简单,和FIFO差不多,只不过多了几个启动结束控制线,如start,valid等等。

备注:大家可以把这些源码复制到自己的工程中和自己写的其它逻辑模块连接起来即可。如果想产生基于Stratix V器件优化的源码,可以在环境变量的路径中把台湾友晶的DE5-Net开发板作为虚拟板(也就是恢复第三步的环境变量),然后编译cl文件即可。

5.编译Host程序:

启动Visual Studio 2012,点击“文件打开项目”,选择C:altera13.1hldoard erasic estsoardtesthostoardtest.sln(或者直接在硬盘上双击这个sln文件,VS 2012会自动完成上述步骤),然后点击“生成生成解决方案”,最后在……hostx64Release下产生了boardtest.exe,不过这个exe不能运行,因为缺少几个dll文件,把C:altera13.1hldwindows64in下的所有的6个dll文件复制过来,和这个exe放在同一个文件夹下就可以运行了。

备注:没有开发板的客户可以跳过上面这个步骤。

6.查看结果:

把第四步产生的aocx文件下载到开发板,成功后会返回信息,然后运行第五步产生的exe即可在PC屏幕上看到开发板返回的最终结果。

备注:没有开发板的客户可以跳过上面这个步骤。

没有开发板的客户只需要走1、2、4步即可。

参考资料、例子和其它:

1.参考资料:http://www.altera.com.cn/product 。.. l/opencl-index.html

网页最下面3个入门文档:

面向OpenCL的Altera SDK开始设计:aocl_getting_started.pdf

面向OpenCL的Altera SDK编程指南:aocl_programming_guide.pdf

面向OpenCL的Altera SDK优化指南:aocl_optimization_guide.pdf

其中13.1版本对应的aocl_getting_started.pdf第8页是错的,PATH应该是C:altera13.1hldwindows64in,14.0里面改正了。

2.Altera目前有13个OpenCL的例子在http://www.altera.com.cn/support/examples/opencl/opencl.html 里面,上面第4步用到的exm_opencl_hello_world_windows64.zip例子就来自于这个网页。

3.Cl文件是OpenCL的源码文件,aocx是cl文件编译后的编程文件,里面包括sof文件。PC机那边的Host软件不是必需的,做host软件仅仅是为了和开发板通信来获取开发板运行openCL的信息。没有开发板的用户只要写一个cl文件然后自己建立一个Quartus II工程就可以编译了,最后产生了转换后的.V源码和整个编译后的Quartus II完整工程,包括大量的底层配套的各种IP源码。

4.因为事先设置了环境变量的缘故,所以cl文件放到任何路径下都可以编译,编译后会在cl文件所在的文件夹里面产生完整的Quartus II整个工程,里面就有转换后的.v文件。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1603

    文章

    21328

    浏览量

    593275
  • 编译器
    +关注

    关注

    1

    文章

    1577

    浏览量

    48627
  • OpenCL
    +关注

    关注

    2

    文章

    47

    浏览量

    33128

原文标题:Intel altera opencl 入门

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用Altera Interface Planner高效设计FPGA引脚布局

    Altera Interface Planner 用于探索设备的外设架构,并高效地分配接口。通过实时进行拟合和合法性检查,防止非法引脚分配。
    的头像 发表于 03-22 15:52 990次阅读
    使用<b class='flag-5'>Altera</b> Interface Planner高效设计FPGA引脚布局

    英特尔旗下FPGA公司Altera正式亮相

    日前,英特尔 FPGA Vision线上直播中发布,将英特尔编程解决方案事业部 (PSG) 作为独立的FPGA公司——Altera
    的头像 发表于 03-18 14:11 165次阅读

    昨天看到消息AlteraIntel独立出来了,不知道大家常用的FPGA是什么?

    昨天看到消息AlteraIntel独立出来了,不知道大家常用的FPGA是什么?我这边分成常规生产治具是altera的,算法和图像相关的使用的是Xilinx的;
    发表于 03-06 13:39

    英特尔成立Altera新公司,专注FPGA端到端解决方案

    来源于英特尔的可编程芯片分部于今年初独立运营,随后确定名为“Altera,英特尔旗下公司”的正式名号。英特尔计划在未来两年内为Altera融资上市。
    的头像 发表于 03-04 09:59 192次阅读

    关于RZ/G2L OpenCL应用运行方法介绍

    OpenCL是Open Computing Language的简写,目前已经形成了标准,是跨平台的,通常由图形处理器(GPU)提供硬件层面支持。
    的头像 发表于 02-19 12:16 377次阅读
    关于RZ/G2L <b class='flag-5'>OpenCL</b>应用运行方法介绍

    集成电源解决方案-Altera FPGA应用介绍

    电子发烧友网站提供《集成电源解决方案-Altera FPGA应用介绍.pdf》资料免费下载
    发表于 11-28 09:21 0次下载
    集成电源解决方案-<b class='flag-5'>Altera</b> FPGA应用介绍

    FPGA入门怎样选择合适的板子?

    市面上FPGA芯片占有率较高的是xilinx,其次是altera,这两家市场占有率之和达到百分之八十以上, 具体选择哪家厂商的芯片入门呢?这两家的开发环境也有所不同,哪家的或者说是具体的哪款开发板适合初学者由浅入深得学习FPGA开发呢?
    发表于 11-17 16:42

    针对Altera的电源管理快速参考指南

    电子发烧友网站提供《针对Altera的电源管理快速参考指南.pdf》资料免费下载
    发表于 11-16 11:26 0次下载
    针对<b class='flag-5'>Altera</b>的电源管理快速参考指南

    #fpga intel altera a10开发板

    开发板
    明德扬科技
    发布于 :2023年10月09日 09:09:22

    Altera内存解决方案

    以下主题概述了Altera的外部内存接口解决方案。 Altera提供最快、最高效、延迟最低的内存接口IP核。Altera的外部存储器接口IP设计用于方便地与当今更高速的存储器设备接口。 Alt
    发表于 09-26 07:38

    ARM Mali-T600系列GPU OpenCL开发人员指南

    。 GPU被设计为同时执行多个线程。 它们并行运行包含相对较少控制代码的计算密集型数据处理任务。 GPU通常包含比应用程序处理器多得多的处理元素,因此计算速度比应用程序处理器高得多。 OpenCL是第一种开放标准语言,使开发人员能够在GPU、应用程序处理器和其他类型的处理器上运行通用计算任务。
    发表于 08-24 07:07

    OpenCL库与已安装平台之间OpenCL版本不匹配怎么解决?

    用 OpenVINO™ 进行推断。 收到错误:your OpenCL library only supports OpenCL 2.1, but some installed platforms
    发表于 08-15 08:08

    Altera FPGA_CPLD设计 高级篇

    Altera FPGA_CPLD设计 高级篇
    发表于 08-05 18:38

    OpenCL不能在i.MX8M平台上与OpenCV一起工作是为什么?

    我正在使用基于 i.MX8M 的平台和 Vivante GC7000Lite GPU。(来自 Variscite 的 DART-MX8M)我正在尝试运行 OpenCL 加速的 OpenCV 示例代码
    发表于 05-29 07:38