OpenCL(CUDA5.0) + Visual Studio 2010 环境配置

1.安装步骤

1)安装CUDA5.0
本文默认的安装目录为:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA \v5.0
CUDA SDK的默认安装目录为:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.0
其他路径请自行修改路径!


2)添加环境变量
安装完成Toolkit和SDK后,已自动配置好环境变量。保险起见,手动配置环境变量,在系统环境变量(右击计算机选择属性->选择高级系统设置->环境变量)中新建如下项:
CUDA_SDK_PATH=C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.0\common
CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0
CUDA_LIB_PATH=%CUDA_PATH%\lib\Win32
CUDA_BIN_PATH=%CUDA_PATH%\bin
CUDA_SDK_LIB_PATH=%CUDA_SDK_PATH%\common\lib\Win32
CUDA_SDK_BIN_PATH=%CUDA_SDK_PATH%\bin\Win32


3)修改环境变量—系统PATH

在系统环境变量Path 后添加如下内容:
;%CUDA_LIB_PATH%;%CUDA_BIN_PATH%;%CUDA_SDK_LIB_PATH%;%CUDA_SDK_BIN_PATH%;


2.CUDA、OpenCL 关键字及函数高亮显示

1).cl; .cu; .cuh 文件中C/C++ 关键字高亮
这个设置是让Visual Studio2010 在编辑.cl; .cu; .cuh 文件时,把.cl; .cu; .cuh 文件里的C/C++语法高亮。设置方法: 在Visual Studio 2010 的菜单依次选“Tools|Options|Text Editor|File Extension(工具|选项|文本编辑器|文件扩展名)”,在该窗口中将“Editor(编辑器)”下拉框选择“Microsoft Visual C++”在“Extension(扩展名)”文本框中输入cl 点击“Add(添加)”按钮,重复工作把cu 和cuh 添加为Visual C++类型,添加完成后点击“OK(确定)”按钮,如下图所示。

2)OpenCL和CUDA 关键字高亮设置

为了让CUDA 的关键字,如__global等的文字高亮,需按如下步骤设置: 将C:\ ProgramData\NVIDIA Corporation \CUDA Samples\v5.0\doc\syntax_highlighting\visual_studio_8目录下的usertype.dat文件复制到C:\Program Files \Microsoft Visual Studio10.0\Common7\IDE \ 目录下(对x64位Win7系统为C:\Program Files(X86)\Microsoft Visual Studio 10.0 \Common7\IDE\)。重启Visual Studio 2010 后打开.cl等文件,OpenCL的关键字应该变成蓝色了。


3)OpenCL和CUDA函数高亮,及函数输入代码提示

实现这个功能需要使用Visual Assist X,如果没有安装支持Visual Studio 2010 的Visual Assist X,这部分功能无法实现。这里只是为使编写代码更加方便,对与OpenCL和CUDA程序的开发无实质性障碍。如果已经安装Visual Assist X,可以通过以下两步实现需要的功能:

①使Visual Assist X 支持OpenCL和CUDA函数高亮和代码完成

在Visual Studio 2010 的菜单里依次选择:VAssist X|Visual assist X Options|Projects|C/C++Directories,在该界面的“Platform”下拉框中选择Custom,在“Show Directories for”下拉框中选择Other include files, 然后在下面的输入框里,新建、添加如下路径:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA \v5.0\include

C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.0\common\inc

如下图:


②使Visual Assist X 支持.cl; .cu; .cuh文件

使Visual Assist X 实现.cl; .cu; .cuh文件高亮和代码完成功能,需要编辑注册表。在修改注册表时,为避免带来不必要的错误请先关闭Visual Studio 2010。使用Win+R组合键打开“运行”窗口,键入入regedit命令(register edit的缩写)打开注册表,找到如下位置:

HKEY_CURRENT_USER\Software\Whole Tomato\Visual Assist X\VANet10

在右边找到ExtSource 项目,鼠标右键选修改,在原有文字后添加如下文字:.cl; .cu; .cuh确定后关闭注册表。重新打开Visual Studio 2010,Visual Assist X 便开始支持.cl; .cu; .cuh文件的语法高亮及代码完成。此时.cl; .cu; .cuh文件的CUDA 函数是高亮的,使用函数名符号就会自动提示函数全称,参数类型等信息。

3.新建项目并添加依赖项

新建一个Win32项目,为了使项目中可以使用OpenCL和CUDA的函数以及OpenCL C语法,需要添加必须的.h头文件以及dll库等。
假设已有一新建的项目OpenCLProcessor,右击该解决方案,选择项目属性:

选择Configuration Properties -> C/C++ -> General,在右侧Additional Include Directories中添加头文件位置入%CUDA_PATH% \include(或将CL文件夹复制到本地代码路径中,此处只用填入当前路径“.”),如下图:

选择Configuration Properties -> Linker -> General,在右侧Additional Library Directories中添加头文件位置填入%CUDA_LIB_PATH%,为程序添加程序依赖lib文件位置,如下图:

然后在Configuration Properties -> Linker -> Input选项卡,在右侧的Additional Dependencies中添加依赖库的名称:opencl.lib。若还有其他依赖库,如本文中的FreeImage.lib等,按顺序填入并以分号隔开,如下图:


至此,OpenCL+VS2010的配置以及项目新建代码已经完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/448679.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一行代码 实现集合去重

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 代码写法:(这是针对元素为基本数据类型的集合) 针对引用类型元素去重,可根据元素内多…

《Mali OpenCL SDK v1.1.0》教程样例之一“Hello World”

1、算法简述 实现矩阵相加:Cn An Bn。这个例子虽然很简单,但是由于矩阵元素之间相互独立,每个元素可以非常容易地进行并行计算,可以非常理想地在OpenCL中实现。 2. C/C实现 [cpp] view plaincopyprint?/* * This confidential…

集合去重 (集合元素为引用类型)--- java 8 新特性 --- 根据元素单属性、多属性实现去重

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 代码写法: (要求 JDK 1.8 或 1.8 以上) package gentle.entity;import lombok.Data; /**** auth…

Django--Forms组件使用

Forms组件的使用 在html表单验证中,需要通过各种信息的验证,比如注册界面的姓名、密码、邮箱、电话等的验证,是否符合定义好的规则,不可能每次都要取出对应的字段一一判断,django内置了Forms组件,可以方便的…

yii2关联表

asArray()这个方法很好用,返回数组是1版本想要的形式,这种方式有种tp框架的感觉转载于:https://www.cnblogs.com/peipeiyu/p/10974487.html

详细程序注解学OpenCL一 环境配置和入门程序

本专栏是通过注解程序的方法学习OpenCL,我觉得一个一个地去抠原理也不是办法,干脆直接学习程序,然后把相关原理都直接注解到程序语句当中。 原创地址:http://blog.csdn.net/kenden23/article/details/14101657 一开始要配置好环境…

解决 IDEA 在 commit 代码时 git 日志乱码 (提交时填写的中文说明乱码)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1.问题描述: idea 开发代码中的 中文正常,但提交到码云时填写的提交日志是乱码。 提交到码云后是这样的&#…

神奇的pdfkit工具——将字符串保存为pdf文件

神奇的pdfkit工具——将字符串保存为pdf文件 1、安装工具包 pip install pdfkit 2、上干货 import pdfkitdef create_pdf(str_data, to_file):将字符串生成pdf文件 # (需下载wkhtmltox)将程序路径传入config对象config pdfkit.configuration(wkhtmltopd…

OpenCL结构

原标题:从零开始学习OpenCL开发(一)架构 1 异构计算、GPGPU与OpenCL OpenCL是当前一个通用的由很多公司和组织共同发起的多CPU\GPU\其他芯片 异构计算(heterogeneous)的标准,它是跨平台的。旨在充分利用GP…

docker-compose 使用小例

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 只是一个很简单的小例。 1. 原本有的容器 2. docker-compose.yml 写法: gentle 处可以任意写,gentle 是我的项…

AMD GPU+VS2010的OpenCL配置

安装开发环境可以参照DE4-530的OpenCL开发环境搭建(最终版),这篇文章的大部分内容转载自:http://www.verydemo.com/demo_c92_i226325.html AMD的Heterogeneous Computing有很多AMD的OpenCL资料,包括各种分析工具&#…

ABP开发框架前后端开发系列---(9)ABP框架的权限控制管理

在前面两篇随笔《ABP开发框架前后端开发系列---(7)系统审计日志和登录日志的管理》和《ABP开发框架前后端开发系列---(8)ABP框架之Winform界面的开发过程》开始介绍了权限管理的内容,其中只是列出了内部的权限系统的审…

GIL , 线程池 , 同步 , 异步 , 队列 , 事件

一.什么是GIL 官方解释:In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native threads from executing Python bytecodes at once. This lock is necessary mainly because CPython’s memory management is not thread-safe. (Howev…

在Windows下使用OpenCL配置

前言 目前,NVIDIA 和 AMD 的 Windows driver 均有支持OpenCL(NVIDIA 的正式版 driver 是从自195.62 版开始,而 AMD则是从9.11 版开始)。NVIDIA 的正式版 driver 中包含 OpenCL.dll,因此可以直接使用。AMD 到目前为止…

CVE-2019-0708 BlueKeep的扫描和打补丁

2019独角兽企业重金招聘Python工程师标准>>> 简介 CVE-2019-0708 BlueKeep是一个Windows远程桌面服务的远程代码执行漏洞,其危害程度不亚于CVE-2017-0143 EternalBlue,该漏洞影响了某些旧版本的Windows系统。此漏洞是预身份验证,无…

《OpenCL异构计算》新版中译本派送中!

《OpenCL异构计算1.2》新鲜出炉,目前市面上仍一书难求!我们已向清华出版社订购到第一批新书。关注异构开发社区,积极参与,就有可能免费获取新书! 1.如果您异构社区的老朋友,请关注:10.1假期后我…

查看、关闭当前服务器上启动服务 / 进程

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 我用 java -jar 的方式启动了一个服务,然后要关闭这个服务 / 进程。 1. ps -aux 查看当前进程,整个列表最 后一…

Booster 系列之——多线程优化

项目地址:github.com/didi/booste… 对于开发者来说,线程管理一直是最头疼的问题之一,尤其是业务复杂的 APP,每个业务模块都有着几十甚至上百个线程,而且,作为业务方,都希望本业务的线程优先级最…

dubbo的底层原理

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 一、Duboo基本概念解释 Dubbo是一种分布式服务框架。 Webservice也是一种服务框架,但是webservice并不是分布式的服务框架&…

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

实现LNMP 实现环境: 服务版本系统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…