`
你像从前一样
  • 浏览: 9652 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

[2011.03.02] Win7(32 bits)+VS2008下CUDA环境的安装与配置

    博客分类:
  • CUDA
阅读更多

1.       得到相关软件

 

1.1.     得到 CUDA driver CUDA toolkit CUDA SDK code samples

 

vidia 的官网上可以下载得到 CUDA driver CUDA toolkit CUDA SDK code samples CUDA 环境相关文件,例如目前的最新版 3.2 的下载地址是   http://developer.nvidia.com/object/cuda_3_2_downloads.html 。注意选择对应的操作系统和操作系统位数。

 

1.2.     得到 CUDA VS Wizard

 

CUDA VS Wizard 可以使我们更加方便的在 VS 中添加 CUDA 项目。在 http://sourceforge.net/projects/cudavswizard/ 可以得到 CUDA VS Wizard ,注意选择对应的操作系统位数,否则将有可能出现 Err source: CreatcustomProject 等错误信息。

 

2.       更新显卡驱动

 

我们得到一个文件名如 devdriver_3.2_winvista-win7_32_263.06_general.exe 的显卡驱动安装文件。选择安装路径开始安装(如果选择了非默认路径会有提示是否改回默认路径)。在安装的过程中可能会有数次黑屏及分辨率调整的过程。

 

3.       安装 CUDA toolkit

 

我们下载得到一个文件名如 cudatoolkit_3.2.16_win_32.msi 的文件,执行安装即可。

 

4.       安装 CUDA SDK code samples

 

我们下载得到一个文件名如 gpucomputingsdk_3.2.16_win_32.exe 的安装文件,执行安装即可。

 

5.       安装 CUDA VS Wizard

 

6.       配置 VS 2008环境

 

6.1.     语法高亮

 

如果希望程序可以高亮显示,则需要将 CUDA SDK 安装目录(比如在我的电脑上是 G:\win7 software\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\doc\syntax_highlighting\visual_studio_8 )下的 usertype.dat 文件复制到 VS2008 安装目录 Microsoft Visual Studio 9.0\Common7\IDE 下。

 

6.2.     设置 VS2008 环境

 

打开 VS2008 ,选择菜单【工具 (Tools) - 【选项 (Options) - 【项目和解决方案 (Projects and Solutions) - VC++ 目录 (VC++ Directories) 】。

 

在【包含文件 (Include Files) 】中添加(以下需按照自己的安装目录更改路径):

G:\win7 software\NVIDIA GPU Computing Toolkit\CUDA\v3.2\include

G:\win7 software\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\common\inc

在【库文件 (Library Files) 】中添加:

G:\win7 software\NVIDIA GPU Computing Toolkit\CUDA\v3.2\lib\Win32

G:\win7 software\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\common\lib

在【源文件 (Source Files) 】中添加:

G:\win7 software\NVIDIA GPU Computing Toolkit\CUDA\v3.2\src

G:\win7 software\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\common\src


选择【 VC++ 项目设置 (VC++ Project Settins) 】,在【 C/C++ 文件扩展名 (C/C++ File Extensions) 】中添加 *.cu ,在【包括的扩展名 (Extensions to Include) 】添加 .cuh


选择【文本编辑器 (Text Editor) - 【文件扩展名 (File Extension) 】,在编辑框中填入 cu ,在【编辑器 (Editor) 】下拉菜单中选择 Microsoft Visual C++ ,点击添加。

 

6.3.     规则添加

 

此时如果运行 SDK Browser browser.exe 自带的程序能过通过,则配置完成,否则将 CUDA toolkit 安装目录(如 G:\win7 software\NVIDIA GPU Computing Toolkit\CUDA\v3.2\extras\visual_studio_integration\rules )下的四个 rules 文件复制到 G:\win7 software\Microsoft Visual Studio 9.0\VC\VCProjectDefaults 目录下。

 

6.4.     添加环境变量 / 没有找到 cutil32D.dll

 

       添加环境变量(【计算机】 - 【属性】 - 【高级系统设置】 - 【高级】 - 【环境变量】)。随意取一个变量名,在变量值中填入类似如下的目录:

       G:\win7 software\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\bin\win32\Debug;

       G:\win7 software\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\bin\win32\Release;

       G:\win7 software\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\bin\win32\EmuDebug;

       G:\win7 software\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\bin\win32\EmuRelease;

 

       Path 中添加:

       %CUDA_DLL%\Debug;%CUDA_DLL%\Release;%CUDA_DLL%\EmuDebug;%CUDA_DLL%\EmuRelease;

 

       如果没有添加环境变量,将会在运行时报错“没有找到 cutil32D.dll ”或其他。

 

7.       创建一个新的项目

 

7.1.     创建一个空项目

 

       打开 VS2008 ,选择菜单栏中的【文件】 - 【新建】 - 【项目】,选择【其他语言】 - Win32 - Win32 控制台应用程序】,填写名称创建解决方案。


       Win32 应用程序向导的【附加选项】中勾选【空项目】。


       右击项目名称,选择【自定义生成规则】,勾选【 CUDA Build Rule v3.0.0 】。


       右击项目,选择【属性】,选择【配置属性】 - 【链接器】 - 【输入】,在附加依赖项中添加 cudart.lib cutil32D.lib 。否则在编译时会出现类似“ error LNK2019 无法解析的外部符号 ”的错误。


       右击【源文件】文件夹,选择【添加】 - 【新建项】,选择【 CUDA 】,填写名称,新建一个 .cu 文件,点击【添加】。


7.2.     使用 CUDA VS Wizard 创建新项目

       打开 VS2008 ,选择菜单栏中的【文件】 - 【新建】 - 【项目】,选择【其他语言】 - CUDA - CUDAWinApp 】,填写名称创建解决方案。


       生成解决方案后,可以看到如下结构的项目,其中 sample.cu 为示例代码。

 

       将其放到【源文件】文件夹中, Ctrl+F5 运行,可看到如下的执行结果。


 

=============================================

 

以上是以正确解决的步骤,今天遇到过的问题包括:

 

1.CUDA toolkit无法使用迅雷下载,使用迅雷下下来的是一个30k左右的错误文件。

2.目前CUDA VS Wizard项目首页的Download位置下载的是64位版本,应点击“Other Version”下面的“Browse all files”找到32位版本。

3.按照旧版本的配置方法无法找到cuda.rules文件。

4.运行示例程序时出现“没有找到cutil32D.dll”的错误提示。

5.新建一个空项目中后,运行示例代码,编译时出现“error LNK2019 无法解析的外部符号”错误。

 

=============================================

 

Reference

 

 

[1] 张舒, 禇艳利, 赵开勇, 等. GPU高性能运算之CUDA[M]. 北京: 中国水利水电出版社, 2009.

[2] http://wenku.baidu.com/view/6e2e0d29915f804d2b16c1eb.html

[3] http://mingkook.blog.163.com/blog/static/174238418201011693959676/

  • 大小: 12.4 KB
  • 大小: 11.2 KB
分享到:
评论

相关推荐

    大学生创新创业训练计划经验分享.zip

    大学生创新创业训练计划(以下简称为“大创计划”)是一项旨在提升大学生创新能力和创业精神的实践活动。通过这项计划,学生可以在导师的指导下,自主开展研究性学习和创业实践。下面我将分享一些关于大创计划的经验和建议。

    node-v12.22.3-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    毕业设计-The coding solutions of Leetcode and 剑指Offer using .zip

    这里为你收集整理了关于毕业设计、课程设计可参考借鉴的资料一份,质量非常高,如果你投入时间去研究几天相信肯定对你有很大的帮助。到时候你会回来感谢我的。 本资源是经过本地编译测试、可打开、可运行的项目、文件或源码,可以用于毕业设计、课程设计的应用、参考和学习需求,请放心下载。 祝愿你在这个毕业设计项目中取得巨大进步,顺利毕业! 但还需强调一下,这些项目源码仅供学习和研究之用。在使用这些资源时,请务必遵守学术诚信原则和相关法律法规,不得将其用于任何商业目的或侵犯他人权益的行为。对于任何因使用本资源而导致的问题,包括但不限于数据丢失、系统崩溃或安全漏洞,风险自担哦!

    【微信小程序毕业设计】宠物店商城系统开发项目(源码+演示视频+说明).rar

    【微信小程序毕业设计】宠物店商城系统开发项目(源码+演示视频+说明).rar 【项目技术】 微信小程序开发工具+java后端+mysql 【演示视频-编号:282】 https://pan.quark.cn/s/cb634e7c02b5 【实现功能】 本系统实现的是和宠物相关的信息管理和发布,加入了商品销售的功能。操作角色为管理员和用户、商家,管理员的功能为用户管理、商家管理、宠物分类管理、宠物信息管理、商品分类管理、宠物用品管理、项目类型管理、服务项目管理、宠物日志管理、订单管理等;用户的功能为购买宠物、商品、预约服务发表日志管理订单等。商家功能为提供宠物、宠物用品、宠物服务,管理订单和服务预约等。

    雷迪森的工具包(95分以上课程大作业).zip

    Java SSM项目是一种使用Java语言和SSM框架(Spring + Spring MVC + MyBatis)开发的Web应用程序。SSM是一种常用的Java开发框架组合,它结合了Spring框架、Spring MVC框架和MyBatis框架的优点,能够快速构建可靠、高效的企业级应用。 1. Spring框架:Spring是一个轻量级的Java开发框架,提供了丰富的功能和模块,用于开发企业级应用。它包括IoC(Inverse of Control,控制反转)容器、AOP(Aspect-Oriented Programming,面向切面编程)等特性,可以简化开发过程、提高代码的可维护性和可测试性。 2. Spring MVC框架:Spring MVC是基于Spring框架的Web框架,用于开发Web应用程序。它采用MVC(Model-View-Controller,模型-视图-控制器)的架构模式,将应用程序分为模型层、视图层和控制器层,提供了处理请求、渲染视图和管理流程的功能。 3. MyBatis框架:MyBatis是一个持久层框架,用于与数据库进行交互。它提供了一种将数据库操作与Java对象映射起来的方式,避免了手动编写繁琐的SQL语句,并提供了事务管理和缓存等功能,简化了数据库访问的过程

    node-v9.10.1.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于B2C的网上拍卖系统_秒杀与竞价.zip

    基于B2C的网上拍卖系统主要用于帮助人们应用互联网方便快捷买到自己所中意的商品,并参与到秒杀与竞拍当中。 主要功能包括: 1.前台模块 (1)普通用户登录/注册。 (2)分类查看商品(普通商品与促销商品) (3)查看商品详细信息 (4)查看秒杀商品 (5)查看竞拍商品 (6)将商品加入购物车 (7)购买,结算功能 (8)留言 2.后台模块 (1)修改密码 (2)商品管理: -- 编辑/删除 -- 设置/取消促销 (3)秒杀商品:设置/取消秒杀 (4)竞拍商品:设置/取消竞拍 (5)订单管理:查看订单 (5)留言管理:查看/删除留言 项目访问路径: 前台:http://localhost:8080/sale 后台:http://localhost:8080/sale/user/adminlogin

    【前端素材】大数据-政务大数据共享交换平台.zip

    大数据技术指的是用于处理和分析大规模数据集的技术和工具。以下是一些常见的大数据技术和工具: Hadoop:Apache Hadoop是一个用于分布式存储和处理大规模数据的开源框架。它包括Hadoop Distributed File System(HDFS)用于数据存储和MapReduce用于数据处理。 Spark:Apache Spark是一个快速、通用的集群计算系统,提供了比MapReduce更快的数据处理能力。它支持内存计算和更多复杂的数据处理流程。 NoSQL数据库:NoSQL数据库(如MongoDB、Cassandra等)则更适用于处理这类数据。 数据仓库:数据仓库是一个用于集成和分析大规模数据的存储系统,一些知名的数据仓库包括Snowflake、Amazon Redshift等。 数据湖:数据湖是一个存储结构化和非结构化数据的存储池,用于支持数据分析和机器学习应用。 机器学习:大数据技术也广泛应用于机器学习领域,支持大规模数据的模型训练和预测分析。 流式处理:针对实时数据处理需求,流式处理技术(如Apache Kafka、Apache Flink)可以实时。

    【前端素材】大数据-气象预报大数据平台.zip

    大数据技术指的是用于处理和分析大规模数据集的技术和工具。以下是一些常见的大数据技术和工具: Hadoop:Apache Hadoop是一个用于分布式存储和处理大规模数据的开源框架。它包括Hadoop Distributed File System(HDFS)用于数据存储和MapReduce用于数据处理。 Spark:Apache Spark是一个快速、通用的集群计算系统,提供了比MapReduce更快的数据处理能力。它支持内存计算和更多复杂的数据处理流程。 NoSQL数据库:NoSQL数据库(如MongoDB、Cassandra等)则更适用于处理这类数据。 数据仓库:数据仓库是一个用于集成和分析大规模数据的存储系统,一些知名的数据仓库包括Snowflake、Amazon Redshift等。 数据湖:数据湖是一个存储结构化和非结构化数据的存储池,用于支持数据分析和机器学习应用。 机器学习:大数据技术也广泛应用于机器学习领域,支持大规模数据的模型训练和预测分析。 流式处理:针对实时数据处理需求,流式处理技术(如Apache Kafka、Apache Flink)可以实时。

    数学模型算法多目标决策分析方法.pptx

    数学模型算法

    ############ 光电传感器的描述

    光电传感器

    node-v12.17.0-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    Web开发工具和方法课程的学术项目Java、Spring、Hibernate、Angular

    Java SSM项目是一种使用Java语言和SSM框架(Spring + Spring MVC + MyBatis)开发的Web应用程序。SSM是一种常用的Java开发框架组合,它结合了Spring框架、Spring MVC框架和MyBatis框架的优点,能够快速构建可靠、高效的企业级应用。 1. Spring框架:Spring是一个轻量级的Java开发框架,提供了丰富的功能和模块,用于开发企业级应用。它包括IoC(Inverse of Control,控制反转)容器、AOP(Aspect-Oriented Programming,面向切面编程)等特性,可以简化开发过程、提高代码的可维护性和可测试性。 2. Spring MVC框架:Spring MVC是基于Spring框架的Web框架,用于开发Web应用程序。它采用MVC(Model-View-Controller,模型-视图-控制器)的架构模式,将应用程序分为模型层、视图层和控制器层,提供了处理请求、渲染视图和管理流程的功能。 3. MyBatis框架:MyBatis是一个持久层框架,用于与数据库进行交互。它提供了一种将数据库操作与Java对象映射起来的方式,避免了手动编写繁琐的SQL语句,并提供了事务管理和缓存等功能,简化了数据库访问的过程

    云计算基础课件—云安全dr.pptx

    云计算基础课件—云安全dr.pptx

    jizu3.cod

    jizu3.cod

    线性规划模型及应用中的整数规划讲义.pptx

    数学模型算法

    JAVA毕业设计之医疗挂号管理系统(springboot+mysql)完整源码.zip

    医疗挂号管理系统是一款基于Spring Boot和MySQL的Java毕业设计项目,旨在为医院提供一个高效、便捷的挂号管理解决方案。该系统采用了当下流行的微服务架构,通过Spring Boot框架实现快速开发和部署,同时使用MySQL数据库进行数据存储和管理。 在技术方面,本项目主要使用了以下技术: Spring Boot:一个基于Spring框架的快速开发工具,可以简化项目的搭建、配置和部署过程,提高开发效率。 MySQL:一款开源的关系型数据库管理系统,用于存储和管理医疗挂号管理系统中的数据。 MyBatis:一款优秀的持久层框架,用于实现Java对象与数据库之间的映射关系,简化数据库操作。 Redis:一款高性能的键值对缓存数据库,用于缓存系统中的热点数据,提高系统性能。 Bootstrap:一款前端UI框架,用于构建响应式的用户界面,提高用户体验。 jQuery:一款轻量级的JavaScript库,用于简化前端开发,实现动态效果和Ajax交互。 在功能方面,医疗挂号管理系统主要包括以下模块: 用户注册与登录:用户可以注册并登录系统,创建个人账户。 医生信息管理:管理员可以添加、修改和删除医生信息,包括姓名、职称、科室等。 挂号管理:用户可以选择医生和就诊时间进行挂号,支持在线支付挂号费用。 挂号记录查询:用户可以查看自己的挂号记录,包括挂号时间、医生信息等。 取消挂号:用户可以在规定时间内取消挂号,系统将退还挂号费用。 预约提醒:系统会在预约就诊前通过短信或邮件提醒用户。 统计报表:管理员可以查看系统的挂号统计数据,包括每日挂号人数、各科室挂号人数等。 通过这些功能,医疗挂号管理系统为医院提供了一个便捷、高效的挂号管理解决方案,有助于提高医疗服务质量和患者满意度。

    基于C++ QT的航空订票系统 .zip

    基于QT的系统

    线性规划模型及应用中的单纯形方法讲义.pptx

    数学模型算法

    小程序-43-基于小程序的企业产品推广系统-源码.zip

    提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

Global site tag (gtag.js) - Google Analytics