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,一经查实,立即删除!

相关文章

Q-Dir

Q-dir,可以分界面,分文件夹,快捷选择等优势,非常好用的工具,可以替代微软的File Explorer。 官网:https://www.softwareok.com/?seiteFreeware/Q-Dir转载于:https://www.cnblogs.com/JTCLASSROOM/p/109719…

一行代码 实现集合去重

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

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

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

PHP商城数据库安全事务处理方法

现在是一个电商时代,做电商的首先得有一个商城,所以商城的安全也是不容忽视的,一个数据安全的商城离不开数据库的事务处理,商城在资金、商品、下单、结账等重要步骤加上事务控制这是不一定不可少的,像市场上的一些开源…

职业规划之ABZ,未雨绸缪35岁危机

35岁的中年人正面临着上有老下有小,房贷车贷等生活压力,然而在职场上又面临被裁员或在招聘中年龄超限的尴尬局面。那么,我们如何应对此危机呢?ABZ理论为我们打开了一扇天窗。 ABZ理论由著名的创业者投资人,LinkedIn和P…

集合去重 (集合元素为引用类型)--- 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 开发代码中的 中文正常,但提交到码云时填写的提交日志是乱码。 提交到码云后是这样的&#…

Box 类

public class Box extends JComponent implements Accessible使用 BoxLayout 对象作为其布局管理器的一个轻量级容器。Box 提供几个对使用 BoxLayout 的容器(甚至非 Box 容器)有用的类方法。 Box 类可以创建几种影响布局的不可见组件:glue、s…

神奇的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 是我的项…

2019.6.20

今日内容 MongoDB可视化工具 一、Scrapy爬虫框架 二、微信机器人 转载于:https://www.cnblogs.com/jrc123/p/11062606.html

PCL点云 Lebel:Research

https://blog.csdn.net/wokaowokaowokao12345/article/details/73741957 https://blog.csdn.net/u010696366/article/category/3108337转载于:https://www.cnblogs.com/radiumlrb/p/10986918.html

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…

Docker - Compose 使用说明、详解docker-compose

Compose 模板文件 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 模板文件是使用 Compose 的核心,涉及到的指令关键字也比较多。但大家不用担心,这里面大部分指令…