在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.mzph.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…