在Windows下使用OpenCL配置

前言

目前,NVIDIA 和 AMD 的 Windows driver 均有支持OpenCL(NVIDIA 的正式版 driver 是從自195.62 版開始,而 AMD則是從9.11 版開始)。NVIDIA 的正式版 driver 中包含 OpenCL.dll,因此可以直接使用。AMD 到目前為止,則仍需要安裝其 SDK 才有 OpenCL.dll。不過,在最新的 SDK 中,NVIDIA 和 AMD 使用的 calling convention 是相同的。也就是說,使用 AMD 的 SDK編譯的 OpenCL 程式,可以直接在 NVIDIA 的 driver 下運作。反過來也是一樣。AMD 的 OpenCL SDK 是在 AMD Stream SDK 2.8.1里面。NVIDIA 的OpenCL SDK 則包括在最新的 CUDA 5.5 SDK 中。兩個 SDK 可以同時安裝在同一部電腦中,基本上不會有沖突的問題。

由于OpenCL SDK 的重點,只是在 header file 和程序庫,因此設定上是很簡單的。在 AMD 的 SDK 中,會建立一個環境 ATISTREAMSDKROOT。Header files 就在include 目錄中,而程序庫則在lib里面。NVIDIA 的 SDK 也是類似,有一個環境為NVSDKCOMPUTE_ROOT。不過,因辦 NVIDIA 的 SDK 同時包括 CUDA 及 OpenCL,因此它的 header files 是在OpenCL\common\inc 目錄里,而程序庫是在OpenCL\common\lib 里面。

由于程序庫的部分,還有一點特別需要注意的是,AMD 和 NVIDIA 都有提供 32 bits 及 64 bits 的程序庫,供32 bits 及 64 bits 的程序使用。NVIDIA 的 SDK 中,32 bits 的程序庫是在lib 目錄下的 Win32 目錄里,而 64 bits 的則是在 x64 目錄里。AMD 的 SDK 中,則分別是在 x86 及 x86_64 目錄里。

配置方法

以下是使用 Visual Studio 2008 設定。

NVIDIA 的 CUDA SDK:



特別注意的是,因為 NVIDIA 的 SDK 在區分 32 bits 及 64 bits 版本程式庫所使用的目錄名稱(Win32 及 x64)和 Visual Studio 2008 內建的 $(PlatformName) 是一致的,因此可以直接使用。AMD 的 SDK 就要分別設定了。另外,如果使用的是 32 bits 的 SDK,則不包括 64 bits 的 library,因此路經就不需要再加上$(PlatformName)。

AMD的SDK

最后,把 OpenCL.lib 加到程序庫里面就可以了(這點對兩個SDK 都是一樣的):


最后再順便提到一個地方。在 MacOS X 中,OpenCL 的 header是存在 OpenCL 目錄中,也就是
  1. #include?<OpenCL/opencl.h>??
但是在 Windows 下(以及可能所有其它的 OS 下),都是
  1. #include?<CL/cl.h>??
因此,如果想要讓同一個程序,可以同時在各 OS 下都能編譯的話,在 include ,寫成:
  1. #ifdef?__APPLE__??
  2. ?#include?<OpenCL/opencl.h>??
  3. ?#else??
  4. ?#include?<CL/cl.h>??
  5. ?#endif??
這樣就可以同時在 MacOS X? 下,以及其它的 OS 下都能使用了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/448658.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/448658.shtml
英文地址,請注明出處:http://en.pswp.cn/news/448658.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux下啟動mongodb

完成安裝mongodb&#xff08;略&#xff09; 創建數據目錄&#xff1a; # mkdir /data/mongo 創建配置文件 # vi /data/mongo/mongodb.cnf dbpath/data/mongo/ logpath/data/mongo/mongo.log logappendtrue forktrue port27017 或者&#xff1a;不創建配置文件通過mongod參數啟…

Linux調優(文件系統)

查看單個文件是否發生碎片化&#xff08;被存在磁盤非連續磁盤塊上&#xff09;# filefrag -v /var/log/messages 查看文件系統是否存在大量碎片&#xff08;會顯示空閑離散的塊&#xff09;# dumpe2fs /dev/sda1 檢查文件系統中是否有錯誤產生# fsck /dev/sdb1 1、格式化相關 …

使用 nohup 設置后臺進程

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 引言&#xff1a; 有時候需要在Linux上設置一個后臺進程&#xff0c;但是當你關閉terminal之時&#xff0c;它會被系統kill掉&#xff0…

CVE-2019-0708 BlueKeep的掃描和打補丁

2019獨角獸企業重金招聘Python工程師標準>>> 簡介 CVE-2019-0708 BlueKeep是一個Windows遠程桌面服務的遠程代碼執行漏洞&#xff0c;其危害程度不亞于CVE-2017-0143 EternalBlue&#xff0c;該漏洞影響了某些舊版本的Windows系統。此漏洞是預身份驗證&#xff0c;無…

《OpenCL異構計算》新版中譯本派送中!

《OpenCL異構計算1.2》新鮮出爐&#xff0c;目前市面上仍一書難求&#xff01;我們已向清華出版社訂購到第一批新書。關注異構開發社區&#xff0c;積極參與&#xff0c;就有可能免費獲取新書&#xff01; 1.如果您異構社區的老朋友&#xff0c;請關注&#xff1a;10.1假期后我…

centOS安裝Ftp

1、查看是否安裝 rpm -q vsftpd 2、安裝方法 yum install -y vsftpd 3、查看安裝位置 whereis vsftpd 4、服務管理 //服務狀態systemctl status vsftpd.service//服務啟動systemctl start vsftpd.service//服務停止systemctl stop vsftpd.service//開啟啟動systemctl enable vs…

查看、關閉當前服務器上啟動服務 / 進程

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 我用 java -jar 的方式啟動了一個服務&#xff0c;然后要關閉這個服務 / 進程。 1. ps -aux 查看當前進程&#xff0c;整個列表最 后一…

Python基礎小結

目錄 一、執行Python程序的兩種方式1.1 交互式1.2 命令行式二、執行Python程序的兩種IDE2.1 Pycharm2.2 Jupyter三、變量3.1 什么是變量?3.2 變量的組成?3.3 變量名的定義規范3.4 定義變量的兩種方式3.5 常量四、注釋4.1 單行注釋4.2 多行注釋4.3 引用計數4.4 垃圾回收機制4.…

Booster 系列之——多線程優化

項目地址&#xff1a;github.com/didi/booste… 對于開發者來說&#xff0c;線程管理一直是最頭疼的問題之一&#xff0c;尤其是業務復雜的 APP&#xff0c;每個業務模塊都有著幾十甚至上百個線程&#xff0c;而且&#xff0c;作為業務方&#xff0c;都希望本業務的線程優先級最…

OpenCL

OpenCL&#xff08;全稱Open Computing Language&#xff0c;開放運算語言&#xff09;是第一個面向異構系統通用目的并行編程的開放式、免費標準&#xff0c;也是一個統一的編程環境&#xff0c;便于軟件開發人員為高性能計算服務器、桌面計算系統、手持設備編寫高效輕便的代碼…

dubbo的底層原理

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 一、Duboo基本概念解釋 Dubbo是一種分布式服務框架。 Webservice也是一種服務框架&#xff0c;但是webservice并不是分布式的服務框架&…

BOM屬性對象方法

本文原鏈接&#xff1a;https://cloud.tencent.com/developer/article/1018747 BOM 1.window對象 2.location對象 3.history對象 BOM也叫瀏覽器對象模型&#xff0c;它提供了很多對象&#xff0c;用于訪問瀏覽器的功能。BOM缺少規范&#xff0c;每個瀏覽器提供商又按照自己想法…

nginx+php+mysql+haproxy+keepalived+NFS,搭建wordpress

實現LNMP 實現環境&#xff1a; 服務版本系統CentOS7.6Mysql5.6.34Nginx1.14.2PHP7.1.30HAProxy1.8.20Keepalived1.3.5NFS1.3.0主機IPMysql_master192.168.37.108Mysql_slave192.168.37.105NginxPHP192.168.37.103NginxPHP192.168.37.104HAProxyKeepalived192.168.37.101HAPro…

OpenCL “速成”沖刺【第一天】

話說軟件開發從來沒有速成一說&#xff0c;一門語言你學的越快&#xff0c;說明你在別的語言上下個功夫越多&#xff0c;所以這次加了引號&#xff0c;只不過幾周之后可能會有一個公司內部OpenCL的考核&#xff0c;雖然本人不需要考核&#xff0c;不過也正好借機整理下之前Open…

Java8函數式編程

最近使用lambda表達式&#xff0c;感覺使用起來非常舒服&#xff0c;箭頭函數極大增強了代碼的表達能力。于是決心花點時間深入地去研究一下java8的函數式。 一、lambda表達式 先po一個最經典的例子——線程 public static void main(String[] args) {// Java7new Thread(new R…

電腦如何獲得管理員權限

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 我只是記錄下&#xff0c;方便以后查看。 參見&#xff1a; https://jingyan.baidu.com/article/ab69b270ff426e2ca6189f54.html

.NET混淆器 Dotfuscator如何保護應用程序?控制流了解一下!

Dotfuscator是一個.NET的Obfuscator。它提供企業級的應用程序保護&#xff0c;大大降低了盜版、知識產權盜竊和篡改的風險。Dotfuscator的分層混淆、加密、水印、自動失效、防調試、防篡改、報警和防御技術&#xff0c;為世界各地成千上萬的應用程序提供保護。 Dotfuscator提供…

到底什么才是人生最大的投資

不是房子&#xff0c;不是股票&#xff0c; 是人&#xff0c;跟什么人交往&#xff0c;跟隨什么人&#xff0c; 交什么樣的朋友&#xff0c;其實就是你投資什么人&#xff0c; 而這&#xff0c;是對人生影響最大的。 錢不會給人機會&#xff0c;房子也不會&#xff0c; 只有人會…

tcpdump抓包命令

目錄&#xff1a; 命令格式選項expression表達式示例【命令格式】 man手冊顯示如下 1 tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ]2 [ -c count ]3 [ -C file_size ] [ -G rotate_seconds ] [ -F file ]4 [ -i …

百度Ueditor編輯器wordimage踩坑

背景 改造公司老項目后臺編輯器&#xff0c;使用百度的Ueditor做替換。 發現問題 1、ue編輯器初始化后部分參數無法覆蓋ueditor.config.js中的選項。2、wordimage&#xff08;word圖片轉存&#xff09;始終是灰色&#xff0c;無法使用。解決辦法 1、將ueditor.config.js中的inp…