1. 程式人生 > >OpenCL教程 第一章 環境搭建-Nvidia顯示卡篇(上)

OpenCL教程 第一章 環境搭建-Nvidia顯示卡篇(上)

第一章 環境搭建

俗話說工欲善其事必先利其器,想要學習某項技術,必須先把環境搭建好,想要在FPGA上開發OpenCL專案必須先有一塊顯示卡用於除錯,因為FPGA編譯OpenCL專案非常緩慢,所以先用顯示卡將專案除錯完成後再編譯成FPGA可執行檔案,從而使用FPGA執行,所以環境搭建就分為兩個部分,第一部分是顯示卡OpenCL開發環境的搭建,第二部分是FPGA OpenCL開發環境的搭建

準備工具

顯示卡環境搭建

第一步:顯示卡驅動安裝

顯示卡型號:Nvidia 1080ti
首先安裝1080ti的顯示卡驅動(可以使用驅動精靈或者魯大師等)
安裝完成後可以在控制面板中看到顯示卡驅動:
這裡寫圖片描述

顯示卡驅動不一定最新的就是最好的,最新的往往可能對於其他軟體的支援不夠,所以在安裝好顯示卡驅動後需要使用GPU-Z檢視當前的驅動版本是否支援OpenCL
解壓後安裝,一路選擇預設,安裝完成後開啟GPU-Z如下:
這裡寫圖片描述
可以看到當前版本的顯示卡驅動版本為397.93,並且支援OpenCL

第二步:CUDA安裝

從官網下載CUDA 並雙擊執行安裝程式
這裡寫圖片描述

安裝完成後
1、找到OpenCL.lib檔案預設路徑為:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\lib\Win32\OpenCL.lib
這裡寫圖片描述
內容可能因版本不同而不一樣

2、找到OpenCL程式庫標頭檔案,預設路徑為:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\include\CL
這裡寫圖片描述

3、在驅動程式的預設安裝路徑C:\Program Files\NVIDIA Corporation\OpenCL
找到OpenCL.dll
這裡寫圖片描述

第三步:配置VS

(1)新建一個模板目錄01Template,並在該目錄下新增OpenCL_inc以及OpenCL_lib兩個子目錄
這裡寫圖片描述

將之間找到的CL資料夾拷貝到OpenCL_inc目錄下
這裡寫圖片描述
將OpenCL.lib以及OpenCL.dll,OpenCL64.dll檔案拷貝到OpenCL_lib目錄下
這裡寫圖片描述

(2)開啟VS2013,新建工程,並將工程儲存到剛剛建立的01Template目錄下
這裡寫圖片描述

(3)選擇 專案->屬性
這裡寫圖片描述

(4)選擇 C/C++ ->常規->附加包含目錄,設定目錄為
這裡寫圖片描述
這裡寫圖片描述
(5)選擇 連結器->輸入->附加依賴項,附加依賴項為OpenCL.lib
這裡寫圖片描述
這裡寫圖片描述

(6)選擇 連結器->常規->附加目錄庫,設定路徑為OpenCL_lib
這裡寫圖片描述
這裡寫圖片描述

(7)新建main.cpp原始檔
這裡寫圖片描述

並在main.cpp中新增以下內容

#include <iostream>
#include <string>
#include "CL\opencl.h"
using namespace std;
string getPlatformName(const cl_platform_id pid){
    size_t param_value_size;
    clGetPlatformInfo(pid, CL_PLATFORM_NAME, 0, NULL, &param_value_size);
    char *param_value = new char[param_value_size];
    clGetPlatformInfo(pid, CL_PLATFORM_NAME, param_value_size, param_value, NULL);
    return param_value;
}
int main(){
    cl_uint num_platforms;
    clGetPlatformIDs(0, NULL, &num_platforms);
    cl_platform_id *platforms = new cl_platform_id[num_platforms];
    clGetPlatformIDs(num_platforms, platforms, NULL);
    for (cl_uint i = 0; i < num_platforms; i++){
        string platname = getPlatformName(platforms[i]);
        cout << "<" << i << "> " << "Platform name is :" << platname << endl;
    }
    return 0;
}

執行後若無錯誤會返回以下結果
這裡寫圖片描述

到這裡1080ti顯示卡的OpenCL開發環境就搭建完成了,可以將上述模板匯出為VS模板,以後直接新增該模板工程即可