【CUDA编程系列】在VS2015E上配置CUDA10.0

其他链接:
CUDA编程基本入门学习笔记

参考博文:
https://www.cnblogs.com/skyfsm/p/9673960.html
https://www.cnblogs.com/ww1x/p/10820362.html

1.下载cuda10.0

(有更高版本建议尝试下载更高版本,高版本可支持低驱动,低版本不支持高去驱动)
https://developer.nvidia.com/cuda-10.0-download-archive
一路安装。
测试是否成功:
进入cmd,输入nvcc -V命令,出现显卡型号则说明成功。

2.打开VS2015E

2.1 创建空项目:
在这里插入图片描述我们需要确定一下编译器的环境,我使用的是release x64
2.2 然后打开右侧属性管理器,右击release x64,然后选择添加新项目属性表:
在这里插入图片描述
将属性表保存到指定位置,当下次创建项目后就可以直接调用了。
在这里插入图片描述
然后双击我们新创建的属性表:
2.3 找到链接器->常规->附加库目录
添加 $(CUDA_PATH)\lib\$(Platform)
在这里插入图片描述

2.4 然后找到链接器->输入->附加依赖项
填入:

cublas.lib
cuda.lib
cudadevrt.lib
cudart.lib
cudart_static.lib
OpenCL.lib
//可能并用不到这么多lib,但对于新手来说,这样不会因为漏掉lib而报错

(可在cuda下的lib目录找,cuda10.0默认目录:C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.0/lib/x64)
在这里插入图片描述
然后关掉属性页。

2.5 新建CUDA C/C++文件
点开右侧解决方案资源管理器,右击:添加->新建项
然后选择 NVIDIA CUDA 10.0 -> code -> CUDA C/C++ File
文件取名test
在这里插入图片描述

2.6 关闭属性页,在右侧解决方案资源管理器,右击项目名称,
选择生成依赖项->生成自定义
在这里插入图片描述
选择cuda选项:

在这里插入图片描述
2.7 设置 test.cu的属性
在右侧解决方案资源管理器,右击新创建的test.cu文件,选择属性:
然后在常规->项类型中选择CUDA C/C++:
在这里插入图片描述

2.8 点击菜单栏:工具->选项:
然后点击:文本编译器->文件扩展名,添加如下:
在这里插入图片描述

3.常见问题

如图:
在这里插入图片描述
解决方案:
一般都是附加依赖项添加的有缺失,可以尝试检查依赖项目录无误,然后继续添加lib/x64目录下lib文件名称

4.最后验证代码:
在test.cu中输入:
可以查看我们GPU的一些硬件配置情况:

#include "device_launch_parameters.h"
#include <iostream>

int main()
{
    int deviceCount;
    cudaGetDeviceCount(&deviceCount);
    for(int i=0;i<deviceCount;i++)
    {
        cudaDeviceProp devProp;
        cudaGetDeviceProperties(&devProp, i);
        std::cout << "使用GPU device " << i << ": " << devProp.name << std::endl;
        std::cout << "设备全局内存总量: " << devProp.totalGlobalMem / 1024 / 1024 << "MB" << std::endl;
        std::cout << "SM的数量:" << devProp.multiProcessorCount << std::endl;
        std::cout << "每个线程块的共享内存大小:" << devProp.sharedMemPerBlock / 1024.0 << " KB" << std::endl;
        std::cout << "每个线程块的最大线程数:" << devProp.maxThreadsPerBlock << std::endl;
        std::cout << "设备上一个线程块(Block)种可用的32位寄存器数量: " << devProp.regsPerBlock << std::endl;
        std::cout << "每个EM的最大线程数:" << devProp.maxThreadsPerMultiProcessor << std::endl;
        std::cout << "每个EM的最大线程束数:" << devProp.maxThreadsPerMultiProcessor / 32 << std::endl;
        std::cout << "设备上多处理器的数量: " << devProp.multiProcessorCount << std::endl;
        std::cout << "======================================================" << std::endl;     
        
    }
    system("pause");
    return 0;
}

效果:
在这里插入图片描述

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值