日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

linux 编译opencl,OpenCL编译环境配置(VS+Nvidia)

發(fā)布時間:2023/11/27 生活经验 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 编译opencl,OpenCL编译环境配置(VS+Nvidia) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

英偉達的顯卡首先要下載安裝CUDA開發(fā)包,可以參考這里的步驟: ??VS2015編譯環(huán)境下CUDA安裝配置

安裝好CUDA之后,OpenCL的配置就已經(jīng)完成了80%了,剩下的工作就是把OpenCL的路徑添加到工程中。

1. 新建一個win32控制臺應(yīng)用程序,在工程的屬性管理器Debug中添加一個屬性頁“OpenCL.props”,之后雙擊打開

2. 在C/C++ ->常規(guī)->附加包含目錄 中添加CUDA的include文件夾路徑,我的路徑是“D:\Software\CUDA\Development\include”

3. 在鏈接器->常規(guī)->附加庫目錄 中添加lib文件夾路徑,我的路徑是“D:\Software\CUDA\Development\lib\Win32”

4. 在鏈接器->輸入->附加依賴項 里添加lib文件 OpenCL.lib

經(jīng)過以上4個步驟,OpenCL編譯環(huán)境就已經(jīng)配置好了,可以把屬性頁“OpenCL.props”保存起來,下次直接這個屬性頁就可以了,不用每次都重復(fù)配置。以下是測試程序:

#include

#include

#include

#include

int main()

{

//cl_platform 表示一個OpenCL的執(zhí)行平臺,關(guān)聯(lián)到GPU硬件,如N卡,AMD卡

cl_platform_id *platforms;

//OpenCL中定義的跨平臺的usigned int和int類型

cl_uint num_platforms;

cl_int i, err, platform_index = -1;

char* ext_data;

size_t ext_size;

const char icd_ext[] = "cl_khr_icd";

//要使platform工作,需要兩個步驟。1 需要為cl_platform_id結(jié)構(gòu)分配內(nèi)存空間。2 需要調(diào)用clGetPlatformIDs初始化這些數(shù)據(jù)結(jié)構(gòu)。一般還需要步驟0:詢問主機上有多少platforms

//查詢計算機上有多少個支持OpenCL的設(shè)備

err = clGetPlatformIDs(5, NULL, &num_platforms);

if (err < 0)

{

perror("Couldn't find any platforms.");

exit(1);

}

printf("本機上支持OpenCL的環(huán)境數(shù)量: %d\n", num_platforms);

//為platforms分配空間

platforms = (cl_platform_id*)

malloc(sizeof(cl_platform_id) * num_platforms);

clGetPlatformIDs(num_platforms, platforms, NULL);

//獲取GPU平臺的詳細信息

for (i = 0; i < num_platforms; i++)

{

//獲取緩存大小

err = clGetPlatformInfo(platforms[i],

CL_PLATFORM_EXTENSIONS, 0, NULL, &ext_size);

if (err < 0)

{

perror("Couldn't read extension data.");

exit(1);

}

printf("緩存大小: %d\n", ext_size);

ext_data = (char*)malloc(ext_size);

//獲取支持的擴展功能

clGetPlatformInfo(platforms[i], CL_PLATFORM_EXTENSIONS,

ext_size, ext_data, NULL);

printf("平臺 %d 支持的擴展功能: %s\n", i, ext_data);

//獲取顯卡的名稱

char *name = (char*)malloc(ext_size);

clGetPlatformInfo(platforms[i], CL_PLATFORM_NAME,

ext_size, name, NULL);

printf("平臺 %d 是: %s\n", i, name);

//獲取顯卡的生產(chǎn)商名稱

char *vendor = (char*)malloc(ext_size);

clGetPlatformInfo(platforms[i], CL_PLATFORM_VENDOR,

ext_size, vendor, NULL);

printf("平臺 %d 的生產(chǎn)商是: %s\n", i, vendor);

//獲取平臺版本

char *version = (char*)malloc(ext_size);

clGetPlatformInfo(platforms[i], CL_PLATFORM_VERSION,

ext_size, version, NULL);

printf("平臺 %d 的版本信息: %s\n", i, version);

//查詢顯卡是獨立的還是嵌入的

char *profile = (char*)malloc(ext_size);

clGetPlatformInfo(platforms[i], CL_PLATFORM_PROFILE,

ext_size, profile, NULL);

printf("平臺 %d 是獨立的(full profile)還是嵌入式的(embeded profile)?: %s\n", i, profile);

//查詢是否支持ICD擴展

if (strstr(ext_data, icd_ext) != NULL)

platform_index = i;

std::cout << "平臺ID = " << platform_index << std::endl;

/* Display whether ICD extension is supported */

if (platform_index > -1)

printf("平臺 %d 支持ICD擴展: %s\n",

platform_index, icd_ext);

std::cout << std::endl;

//釋放空間

free(ext_data);

free(name);

free(vendor);

free(version);

free(profile);

}

if (platform_index <= -1)

printf("No platforms support the %s extension.\n", icd_ext);

getchar();

//釋放資源

free(platforms);

return 0;

}

在本機上執(zhí)行輸出:

linux內(nèi)核編譯環(huán)境配置

linux內(nèi)核編譯環(huán)境配置 如果不是編譯內(nèi)核,只需要安裝與內(nèi)核相匹配的kernel-devel開發(fā)包即可.即是/lib/modules/`uname -r`/build -> /usr/src/ ...

Syslinux編譯環(huán)境配置簡要步驟

由于畢業(yè)設(shè)計要做一個加密U盤的LINUX,需要修改一sysylinux引導(dǎo)程序,在網(wǎng)上很少有關(guān)于syslinux編譯環(huán)境配置的文章,在此簡要總結(jié)一下,發(fā)出來共享. 需要的軟件: 1.? vmware ...

Android編譯環(huán)境配置

Android編譯環(huán)境配置 網(wǎng)上關(guān)于Android編譯環(huán)境配置的整理資料有不少,經(jīng)整理親測后,希望能給需要的親們提供幫助. 主要分為四步: 1.安裝JDK(Java Standard Edition ...

mac OS&lpar;OS X&rpar;的OI編譯環(huán)境配置指南

編譯環(huán)境:gdb+Atom 如何安裝gdb: http://logic0.blog.163.com/blog/static/1889281462014183271283/ ? Atom下載地址: ht ...

Android編譯環(huán)境配置(Ubuntu 14&period;04)

常識:編譯Android源代碼需要在Linux系統(tǒng)環(huán)境下進行... 在Linux中,開發(fā)Android環(huán)境包括以下需求:Git.repo.JDK(現(xiàn)在一般使用OpenJDK)等:其中,Git用于下載源 ...

Berkeley DB &lpar;VC6&period;0 編譯環(huán)境配置&rpar;

操作系統(tǒng):winxp VC環(huán)境:VC6.0 必需文件:Berkeley DB安裝文件(db-.msi) 下載地址:http://www.oracle.com/technology/software/p ...

Android代碼編譯環(huán)境配置 &OpenCurlyDoubleQuote;Gerrit和Git環(huán)境配置”

Gerrit和Git環(huán)境配置可以參考 步驟1. 先在Gerrit中創(chuàng)建新的賬戶: 步驟2. 在新的客戶端上生成密鑰(可以使用的是生成的公鑰): 步驟 ...

關(guān)于Sublime text 的PHP編譯環(huán)境配置的問題

前一段時間終于裝上了傳說中的代碼編輯神器====>Sublime Text ,一打開便愛不釋手,于是在網(wǎng)上找PHP的配置方案和插件,所有的一切都搞定了,可就是編譯的時候沒有顯示,也沒有提示,熬了 ...

2016&sol;01&sol;10 C&plus;&plus; Primer 小記 —— 命令行編譯環(huán)境配置

OK!第一篇博文!自賀一下! 今日看了此書的前幾頁.嗯,說得挺全,基礎(chǔ)易懂. 之前學(xué)過c++,但沒用過命令行編譯. 本人用的VS里的編譯器,文件名是cl.exe,在VC目錄下. 雖然有了編譯器,但并不 ...

隨機推薦

一分鐘讀懂MySQL分布式消息的處理

在很多MYSQL環(huán)境中,對于MYSQL的分布式事物處理一直是個難題,在當(dāng)前互聯(lián)網(wǎng)環(huán)境中,大多數(shù)應(yīng)用系統(tǒng)是基于SOA的很多復(fù)雜接口之間的調(diào)用,并且事物之間的處理優(yōu)先級也是有先后的,所以對于實際入庫的數(shù)據(jù) ...

OpenCV 2&period;4&period;13 編譯使用&lpar;VS2015下&rpar;

OpenCV2.4.13編譯(VS2015) 這里給出已經(jīng)編譯好的的下載路徑.包括Win64的debug和release版本. OpenCV for MSVC14 Win64 1.下載OpenCV源碼 ...

1&period;iOS直播ijkplayer(第一周)

準備工作: 1.使用的B站的開源框架ijkplayer ,下載地址:?https://github.com/Bilibili/ijkplayer ijkplayer 是一個基于 ffplay?的輕量級 ...

Tips for OpenMesh

OpenMesh 求兩點之間的距離 MyMesh::Point p1(1,2,3); MyMesh::Point p2(1,2,5); double d=(p1-p2).length();

Scrum第一天任務(wù)認領(lǐng)情況

在團隊項目“廣商百貨”的SCRUM項目中我認領(lǐng)的任務(wù)是對登錄注冊界面進行完善.具體功能還沒有實現(xiàn),還在學(xué)習(xí)中...

(轉(zhuǎn))IOS筆記 &num;pragma mark的用法

簡單的來說就是為了方便查找和導(dǎo)航代碼用的. ? 下面舉例如何快速的定位到我已經(jīng)標識過的代碼. ? ? #pragma mark?播放節(jié)拍器 - (void) Run:(NSNumber?*)tick{ ...

myeclipse8&period;6安裝svn插件

1.從官方網(wǎng)站下載site-1.6.16.zip,網(wǎng)址:subclipse.tigris.org: 2.將解壓出來的features與plugins,復(fù)制到任意目錄:Genuitec/MyEclips ...

python 中的類

1.1 類里面包括:類的屬性.方法 OO的特征(Object Oriented) 封裝:信息隱蔽技術(shù) 繼承:繼承是子類自動共享父類之間數(shù)據(jù)和方法的機制 >>> class MyCla ...

Laravel5使用QQ郵箱發(fā)送郵件配置

在.env文件中設(shè)置如下MAIL_DRIVER=smtpMAIL_HOST=smtp.qq.comMAIL_PORT=465MAIL_USERNAME=00000000000@qq.comMAIL_P ...

JS浮點計算精度問題分析與解決

問題描述 在JS計算四則運算時會遇到精度丟失的問題,會引起諸多問題,看看以下例子: 例如:在chrome控制臺輸入 0.1 + 0.7 輸出結(jié)果是 0.7999999999999999 例如:0.1+ ...

總結(jié)

以上是生活随笔為你收集整理的linux 编译opencl,OpenCL编译环境配置(VS+Nvidia)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。