加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

Intel altera opencl 入門

04/15 20:35
2134
閱讀需 15 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

大俠好,歡迎來到FPGA技術(shù)江湖,江湖偌大,相見即是緣分。大俠可以關(guān)注FPGA技術(shù)江湖,在“闖蕩江湖”、"行俠仗義"欄里獲取其他感興趣的資源,或者一起煮酒言歡。

今天給大俠帶來Intel altera opencl 入門,話不多說,上貨。

概述

Intel altera 的 OpenCL 主要面向信號處理類應(yīng)用的客戶,是用C語言開發(fā)FPGA的利器,開放計算語言(OpenCL)聯(lián)盟著名的公司有 FPGA巨頭Intel altera、兩大顯卡GPU巨頭AMD英偉達(dá)、CPU巨頭Intel、軟件服務(wù)器巨頭IBM以及全世界最大的公司Apple(蘋果)等等。不過AMD和英偉達(dá)是用GPU實現(xiàn)的OpenCL并行運(yùn)算,Intel altera是用FPGA實現(xiàn)并行運(yùn)算。

1. 系統(tǒng)要求

? Microsoft 64-bit Windows 7專業(yè)版或者更高。

? 對于Windows操作系統(tǒng), 要安裝微軟公司的Visual Studio 2010或者2012專業(yè)版(推薦)?;蛘撸?/p>

? Red Hat Enterprise 64-bit Linux (RHEL) 5或者6。
? 對于Linux操作系統(tǒng), 安裝操作系統(tǒng)過程中要把C編譯器包括GCC勾選上。

2.安裝Altera的軟件和搭建OpenCL環(huán)境(以Windows為例,Linux也類似):

?安裝Quartus II 13.1 ?Update4(或者14.0)?安裝Altera OpenCL 13.1 Update4(AOCLSetup-13.1.4.182.exe)(或者14.0)

設(shè)置環(huán)境變量(基于默認(rèn)的安裝路徑):

變量和值如下:ALTERAOCLSDKROOT和C:altera13.1hld(或者C:altera14.0hld)
PATH和C:altera13.1hldwindows64bin(或者C:altera14.0hldbin;C:altera14.0hldhostwindows64bin)
LM_LICENSE_FILE和c:alteralicense.dat

參考下圖:

然后在命令行里面運(yùn)行where aoc,測試一下軟件是否安裝正確以及環(huán)境變量是否設(shè)置正確,如果正確,如下圖;如果不正確,修改錯誤再來。

或者(14.0)

3.開發(fā)板環(huán)境的安裝和測試(以臺灣友晶的DE5-Net開發(fā)板為例,不過沒有開發(fā)板也可以,開發(fā)板不是必需的):

1). 準(zhǔn)備工作:下載DE5-Net開發(fā)板的全套軟件安裝包,http://www.terasic.com/downloads ... 5NET_openCL_BSP.zip ?136MB,把里面的terasic文件夾解壓縮到C:altera13.1hldboard下。

設(shè)置DE5-Net開發(fā)板的環(huán)境變量:

變量和值如下:AOCL_BOARD_PACKAGE_ROOT和C:altera13.1hldboardterasicde5net參考下圖:

然后在命令行里面運(yùn)行aocl install來安裝開發(fā)板驅(qū)動。

關(guān)閉你的PC,安裝和連接開發(fā)板硬件后,重新開機(jī),在命令行里面運(yùn)行aoc --list-boards,如果硬件安裝連接成功,會顯示開發(fā)板名字de5net_a7,如果開發(fā)板不存在,顯示none found。

2). 測試開發(fā)板:

在命令行里面運(yùn)行 cd C:altera13.1hldboardterasictestsblank,運(yùn)行aocl program blank.aocx,如果開發(fā)板已經(jīng)安裝連接好,aocx里面的sof文件會通過PCI-E接口下載,并且會返回成功的信息,如果開發(fā)板不存在或者沒有安裝連接好,會自動解壓縮出reprogram_temp.sof,用戶可以通過USB下載電纜去下載。

備注:沒有開發(fā)板的客戶可以在設(shè)置環(huán)境變量后跳過后面的步驟,繼續(xù)。

4.編譯和測試OpenCL工程:

1). 編譯OpenCL工程:在命令行里面運(yùn)行cd C:altera13.1hldboardterasictestsboardtest進(jìn)入工程文件夾,運(yùn)行aoc boardtest.cl --sw-dimm-partition開始編譯,編譯時間大約1個小時,最終產(chǎn)生的boardtest.aocx里面包含了sof文件,可以給開發(fā)板編程進(jìn)去。

2). 測試OpenCL工程(通過開發(fā)板):

在命令行里面運(yùn)行 cd C:altera13.1hldboardterasictestsblank,運(yùn)行aocl program boardtest.aocx,如果開發(fā)板已經(jīng)安裝連接好,aocx里面的sof文件會通過PCI-E接口下載,并且會返回成功的信息,如果開發(fā)板不存在或者沒有安裝連接好,會自動解壓縮出reprogram_temp.sof,用戶可以通過USB下載電纜去下載。

提示:沒有開發(fā)板的客戶可以跳過上面的步驟,直接編譯下面不需要開發(fā)板的例子,有開發(fā)板的客戶可以直接到第五步:

下面完全脫離真實的開發(fā)板來運(yùn)行Cytech_C5SOC.zip:

設(shè)置“虛擬”板的環(huán)境變量(替換原來的環(huán)境變量):

變量和值如下:AOCL_BOARD_PACKAGE_ROOT和 C:altera13.1hldboardCytech_C5SOC

參考下圖:

解壓縮Cytech_C5SOC.zip里面的內(nèi)容到C:altera13.1hldboard(也可以是其它文件夾),把例子exm_opencl_hello_world_windows64.zip里面的hello_world.cl也復(fù)制到這個文件夾下,在命令行里面運(yùn)行cd C:altera13.1hldboard,運(yùn)行aoc hello_world.cl開始編譯。----因為Cyclone V SOC的5CSXFC6容量比Stratix V的5SGSMD5小幾倍,所以編譯時間只有20分鐘左右,最終產(chǎn)生的hello_world.aocx里面包含了sof文件,同時也產(chǎn)生了轉(zhuǎn)換后的.V源碼和整個編譯后的Quartus II完整工程,包括大量的底層配套的各種IP源碼。

再演示3個不同的例子,分別是vector_add、matrix_mult和FFT,也是完全脫離真實的開發(fā)板來運(yùn)行:

 

 

不改變上面“虛擬”板的環(huán)境變量,目的是繼續(xù)使用Cyclone V SOC的5CSXFC6,可以產(chǎn)生為這個系列優(yōu)化的源碼。分別解壓縮3個zip例子到C:altera13.1hldboard(也可以是其它目錄),然后分別在在命令行里面:

1.運(yùn)行cd C:altera13.1hldboardvector_adddevice,然后運(yùn)行aoc vectorAdd.cl開始編譯。
2.運(yùn)行cd C:altera13.1hldboardmatrix_multdevice,然后運(yùn)行aoc matrix_mult.cl開始編譯。
3.運(yùn)行cd C:altera13.1hldboardfft1ddevice,然后運(yùn)行aoc fft1d.cl開始編譯。

3個例子之間沒有任何聯(lián)系,可以單獨運(yùn)行,如果你的PC內(nèi)存足夠大,可以一起運(yùn)行。

在產(chǎn)生的不同Quartus II工程中,可以找到matrix_mult.v、vectorAdd.v和fft1d.v這些轉(zhuǎn)換出的源碼。特別注意的是,這些最終的源碼是acl_kernel_interface接口,這種接口比較簡單,和FIFO差不多,只不過多了幾個啟動結(jié)束控制線,如start,valid等等。

備注:大家可以把這些源碼復(fù)制到自己的工程中和自己寫的其它邏輯模塊連接起來即可。如果想產(chǎn)生基于Stratix V器件優(yōu)化的源碼,可以在環(huán)境變量的路徑中把臺灣友晶的DE5-Net開發(fā)板作為虛擬板(也就是恢復(fù)第三步的環(huán)境變量),然后編譯cl文件即可。

5.編譯Host程序:

啟動Visual Studio 2012,點擊“文件打開項目”,選擇C:altera13.1hldboardterasictestsboardtesthostboardtest.sln(或者直接在硬盤上雙擊這個sln文件,VS 2012會自動完成上述步驟),然后點擊“生成生成解決方案”,最后在……h(huán)ostx64Release下產(chǎn)生了boardtest.exe,不過這個exe不能運(yùn)行,因為缺少幾個dll文件,把C:altera13.1hldwindows64bin下的所有的6個dll文件復(fù)制過來,和這個exe放在同一個文件夾下就可以運(yùn)行了。備注:沒有開發(fā)板的客戶可以跳過上面這個步驟。

6.查看結(jié)果:把第四步產(chǎn)生的aocx文件下載到開發(fā)板,成功后會返回信息,然后運(yùn)行第五步產(chǎn)生的exe即可在PC屏幕上看到開發(fā)板返回的最終結(jié)果。

備注:沒有開發(fā)板的客戶可以跳過上面這個步驟。

沒有開發(fā)板的客戶只需要走1、2、4步即可。

參考資料、例子和其它:

1.參考資料:http://www.altera.com.cn/product ... l/opencl-index.html

網(wǎng)頁最下面3個入門文檔:
面向OpenCL的Altera SDK開始設(shè)計:aocl_getting_started.pdf
面向OpenCL的Altera SDK編程指南:aocl_programming_guide.pdf
面向OpenCL的Altera SDK優(yōu)化指南:aocl_optimization_guide.pdf

其中13.1版本對應(yīng)的aocl_getting_started.pdf第8頁是錯的,PATH應(yīng)該是C:altera13.1hldwindows64bin,14.0里面改正了。2.Altera目前有13個OpenCL的例子在http://www.altera.com.cn/support/examples/opencl/opencl.html ?里面,上面第4步用到的exm_opencl_hello_world_windows64.zip例子就來自于這個網(wǎng)頁。3.Cl文件是OpenCL的源碼文件,aocx是cl文件編譯后的編程文件,里面包括sof文件。PC機(jī)那邊的Host軟件不是必需的,做host軟件僅僅是為了和開發(fā)板通信來獲取開發(fā)板運(yùn)行openCL的信息。沒有開發(fā)板的用戶只要寫一個cl文件然后自己建立一個Quartus II工程就可以編譯了,最后產(chǎn)生了轉(zhuǎn)換后的.V源碼和整個編譯后的Quartus II完整工程,包括大量的底層配套的各種IP源碼。

4.因為事先設(shè)置了環(huán)境變量的緣故,所以cl文件放到任何路徑下都可以編譯,編譯后會在cl文件所在的文件夾里面產(chǎn)生完整的Quartus II整個工程,里面就有轉(zhuǎn)換后的.v文件。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
A3P250-PQG208 1 Microsemi FPGA & SoC Field Programmable Gate Array, 250000 Gates, CMOS, PQFP208, 0.50 MM PITCH, PLASTIC, QFP-208
$22.32 查看
EPM240F100I5 1 Intel Corporation Flash PLD, 7.5ns, 192-Cell, CMOS, PBGA100,
$11.93 查看
A3P250-FG144 1 Microsemi FPGA & SoC Field Programmable Gate Array, 250000 Gates, CMOS, PBGA144, 1 MM PITCH, FBGA-144
$21.67 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

任何技術(shù)的學(xué)習(xí)就好比一個江湖,對于每一位俠客都需要不斷的歷練,從初入江湖的小白到歸隱山林的隱世高人,需要不斷的自我感悟自己修煉,讓我們一起仗劍闖FPGA乃至更大的江湖。