在VCU1525 上 編譯SDAccelExamples 遇到問題記錄

1,版本問題

我下載的是https://github.com/Xilinx/SDAccel_Examples/tree/2018.2 上master branch 分支上的examples 文件,對應的默認是2017.1 的,而我們用的是2018.2的SDx,所以應該切換到2018.2的branch上下載;
否則版本問題在編譯kmeans的example 時就會遇到,找不到xcl2.hpp 和 找不到 cl_ext_xilinx.h 的問題;
再就是 在使用SDx環境時,需要首先安裝OpenCL 的三個庫文件,這三個庫文件都是ubuntu 的關於openCL 的庫文件,在ubuntu 官網上能找到 在xenial/lib development文件庫中(xenial 指的是 ubuntu16.04版本)
網址:https://packages.ubuntu.com/xenial/libdevel/
這三個庫文件(ug1277 50頁)是:
Ubuntu
On Ubuntu the ICD library is packaged with the distribution. Install the following packages:
• ocl-icd-libopencl1
• opencl-headers
• ocl-icd-opencl-dev

CL/CL_ext_xilinx.h could not be found問題解答論壇地址:
https://forums.xilinx.com/t5/SDAccel/CL-CL-ext-xilinx-h-could-not-be-found/m-p/907423

2,編譯問題

總是報錯:
ERROR:Library libxdp.so not found! XILINX_XRT not set
上網查詢是環境變量沒有設置,可是在https://forums.xilinx.com/t5/SDAccel/CL-CL-ext-xilinx-h-could-not-be-found/m-p/907423 這篇帖子中xilinx 工作人員也說了,
環境變量是在/opt/xilinx/xrt/ 路徑下,source setup.csh 和setup.sh 這兩個文件就可以了,當然我在 source setup.csh 的時候,它報語法錯誤,就是setup.csh文件的13行括號的語法錯誤,於是
我上網查詢,.csh 文件還可以用 csh setup.csh命令來運行,結果我沒有安裝 csh 命令包,安裝時報缺少依賴包的問題,按照它的提示安裝依賴包,再安裝 csh,
就可以用 csh setup.csh 命令來運行 setup.csh 文件了,其中 setup.sh 文件是可以用 source setup.sh 直接運行的。
問題是現在 這兩個文件都已經運行過了,但是它還是報 XILINX_XRT 的錯誤!
解決:
最後通過在 SDx自帶的shell環境中運行
csh /opt/xilinx/xrt/setup.csh
bash /opt/xilinx/xrt/setup.sh
成功解決

3,出現 “no device found” "failed to find Xilinx platform"問題

參考網址:https://forums.xilinx.com/t5/SDAccel/Error-Failed-to-find-Xilinx-platform-https-github-com-aws-aws/td-p/794657
之所以出現該問題是因爲沒有運行下面的三個命令,因爲我用的是第二種運行方式,即人工的添加配置文件,不是直接運行 check的方式,即添加完下面的三行命令後,要運行
./host_kmeans -i ./data/100 -c ./data/100.gold_c5 -m 5 -n 5 -g 2
具體請參考README.md

```
export LD_LIBRARY_PATH=$XILINX_SDX/runtime/lib/x86_64/:$LD_LIBRARY_PATH
export XCL_EMULATION_MODE=<sw_emu|hw_emu>
emconfigutil --platform 'xilinx:vcu1525:dynamic' --nd 1
```

4,出現 “1 cpu emulation compute unit exited unexpectedly” 問題
解決:
帖子網址:https://forums.xilinx.com/t5/SDAccel/My-SDx-IDE-can-t-run-the-printf-example-code/td-p/837345
問題原因:
該問題是由於SDx 環境自帶的 objcopy 文件和 Ubuntu 系統默認的 objcopy 文件 版本不一致導致的,
該文件在SDx 環境中的路徑 :SDx/2018.2/gnu/binutils/bin/objcopy
該文件在Ubuntu 的路徑 :/usr/bin/objcopy
解決方法:
1,把 SDx/2018.2/gnu/binutils/bin/objcopy 備份,然後刪除
2,打開 teminal cd SDx/2018.2/gnu/binutils/bin/
3,輸入 ln -s /usr/bin/objcopy objcopy
4,在 SDx 的shell 窗口,cd 到 /home/lab1/SDx2018/SDx/2018.2/examples/acceleration/kmeans 路徑
5.輸入 make clean 來清除掉以前生成的文件,
6,xclbin 文件夾也要刪除
7,重新執行 make TARGETS=sw_emu all 編譯文件
8,執行 make TARGETS=sw_emu all 運行程序,成功。

 

5,host code 怎麼編譯?
ug1277 9頁說到:
<1>.Each host application source file is compiled to an object file (.o).
<2>.The object files (.o) are linked with the Xilinx SDAccel runtime shared library to create the executable (.exe).

編譯命令是啥?

待解決。


6,"can not find the usebar"
重新安裝 xrt (安裝包在E:/VCU1525/ml-suite/)

下載地址:https://china.xilinx.com/products/boards-and-kits/alveo/applications/xilinx-machine-learning-suite.html#gettingStartedVCU1525


7.qdma_mbox.c中 timer 報錯
原因:Ubuntu 中沒有 linux/timer.h
該文件源碼地址:https://elixir.bootlin.com/linux/v4.15/source/include/linux/timer.h


8.錯誤:"Failed to open device index, 0"
解決方法:
暫時是重新安裝了 ubuntu kernel 4.15.0-36 ,重新裝了一下驅動,又回到了 kernel 4.15.0.43 就神奇的能用了。

9,error while loading shared libraries: libxilinxopencl.so: cannot open shared object file: No such file or directory
解決方法:
source /opt/dsa/xinlinx_vcu1525_dynamic_5_1/xbinst/setup.sh

 

 

 

 

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