DE4-530的OpenCL開發環境搭建

簡潔完整的文檔見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的自動補全插件,當然也可以不安裝。自己去百度,下載安裝並破解。

 DE4-530的OpenCL開發環境搭建

 

AMD顯卡驅動安裝

顯卡驅動是顯卡和SDK應用之間的橋樑,故顯卡驅動也需支持OpeCL開發。

AMD的OpenCL系統要求頁面內,可以看到是可以支持Microsoft 64-bit Windows 7 的,與DE4-530可以共用一個操作系統,這就解決了操作系統的問題。

在頁面底部,有這樣一段信息:

DE4-530的OpenCL開發環境搭建
顯示了AMD公司已經發行的SDK與顯卡催化劑版本。其顯卡催化劑一般都內置有SDK,只是版本比較老而已。

顯卡驅動安裝有2種方法:

1.通過下載最新的“Download AMD Catalyst Drivers”來安裝,該方法可以選擇安裝所有的AMD驅動,這樣可以省去單獨安裝SDK(這樣可以省去下步的SDK安裝,直接檢測SDK是否安裝成功);該方法有個很不好的缺點就是:安裝的時候不容易成功,會很麻煩;

      2.直接通過“驅動精靈”把顯卡驅動更新爲最新版本,該方法只安裝顯卡驅動,不會安裝其他軟件,比如聲頻驅動,SDK之類的。

首先介紹第1種方法,我試了很多次都失敗了,所以並不推薦該方法,我先介紹我的安裝過程及錯誤。

點擊“Download AMD Catalyst Drivers”進入顯卡驅動下載頁面,選擇自己PC的顯卡和操作系統,進入對應的AMD HD7900顯卡驅動頁面,裏面有穩定版,測試版,文檔;並描述了其詳細信息DE4-530的OpenCL開發環境搭建

從中我們可以看出其內部組件是支持OpenCL開發的,具體的版本這些暫時還沒搞懂

在安裝該驅動之前,PC已經安有普通驅動,以下是該驅動的軟件信息

DE4-530的OpenCL開發環境搭建
從這個頁面來看,我並不清楚該驅動是否支持OpenCL開發,我的想法是既然沒有寫明,那麼應該就是不支持(安裝後也是這個界面,所以說這裏是看不出是否安裝OpenCL的),畢竟現在OpenCL開發是一個重要的概念。

那麼接下來我們就安裝新驅動,安裝過程會讓選擇組件

DE4-530的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下載頁面選擇下載相應的版本)

其安裝流程與上面顯卡安裝時一樣的,只是在選擇組件的時候不一樣。

DE4-530的OpenCL開發環境搭建
從中可以看到,只有3個可選項,其餘的都是已經成功安裝的,點擊繼續安裝。

安裝完成後,我們來檢測是否成功安裝,其方法有3:

      1.查看安裝日誌,看看所勾選的3個組件是否成功安裝;

      2.在cmd命令窗口輸入“clinfo”:未安裝前,只會CPU的信息;安裝成功後,會顯示GPU的信息;下圖是安裝後的GPU信息

DE4-530的OpenCL開發環境搭建

      3.在設備管理器中查看“顯卡驅動程序詳細信息”

       這是未安裝SDK前的詳細信息,其中沒有OpenCL.dllDE4-530的OpenCL開發環境搭建

       這是安裝SD後的詳細信息,其中已經有了OpenCL.dll 
DE4-530的OpenCL開發環境搭建

至此,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的插件形式出現。

DE4-530的OpenCL開發環境搭建


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,可以看到閃過一列信息,由於閃過之後馬上消失,所有截屏了很多次才成功,就是下圖

DE4-530的OpenCL開發環境搭建
接下來就是運行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天多才安裝成功(之前還由於電源管理導致多次下載失敗)。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章