CUDA中自动初始化显卡设备宏
每次为了减少初始化的工作量,可以写入下面的宏。
#define CUT_DEVICE_INIT(ARGC,ARGV){    \
    int deviceCount;    \
    CUDA_SAFE_CALL_NO_SYNC(cudaGetDeviceCount(&deviceCount));    \
    if(deviceCount == ){    \
        fprintf(stderr,"cutil error:no devices supporting CUDA.\n")    \
        exit(EXIT_FAILURE);    \
    }    \
    int dev=;    \
    cutGetCmdLineArgumenti(ARGC,(const char **) ARGV,"device",&dev);    \
    if(dev < ) dev=;    \
    if(dev > deviceCount - ) dev=deviceCount - ;    \
    cudaDeviceProp deviceProp;    \
    CUDA_SAFE_CALL_NO_SYNC(cudaGetDeviceProperties(&deviceProp,dev));    \
    if(deviceProp.major < ){    \
        fprintf(stderr,"cutil error: device does not support CUDA.\n");    \
        exit(EXIT_FAILURE);    \
    }    \
    if(cutCheckCmdLineFlag(ARGC,    (const char **) ARGV,"quiet") == CUTFalse)    \
        fprintf(stderr,"Using device %d:%s\n",dev,deviceProp.name);    \
    CUDA_SAFE_CALL(cudaSetDevice(dev));    \
}
#define CUT_EXIT(argc,argv)    \
    if(!cutCheckCmdLineFlag(argc, ( const char **)argv, "noprompt")){    \
        printf("\n Press ENTER to exit...\n");    \
        fflush(stdout);    \
        fflush(stderr);    \
        getchar();    \
    }    \
exit(EXIT_SUCCESS);
在主程序中:
int main(int argc,char** argv){
    CUT_DEVICE_INIT(argc,argv);
    ...主程序内容
    CUT_EXIT(argc,argv);
}
CUDA中自动初始化显卡设备宏的更多相关文章
- CUDA中确定你显卡的thread和block数
		
CUDA中确定你显卡的thread和block数 在进行并行计算时, 你的显卡所支持创建的thread数与block数是有限制的, 因此, 需要自己提前确定够用, 再进行计算, 否则, 你需要改进你的 ...
 - .NET中那些所谓的新语法之一:自动属性、隐式类型、命名参数与自动初始化器
		
开篇:在日常的.NET开发学习中,我们往往会接触到一些较新的语法,它们相对以前的老语法相比,做了很多的改进,简化了很多繁杂的代码格式,也大大减少了我们这些菜鸟码农的代码量.但是,在开心欢乐之余,我们也 ...
 - C++中变量自动初始化的问题
		
C++中有一些变量在如果没有赋初值会被编译器自动赋值为0,但有的变量又不会这样,而得到一个随机数,下面具体讨论一下: 首先看一下C++中的几个存储区:1.栈区:由编译器自动分配释放 ,存放函数的参数值 ...
 - CUDA中关于C++特性的限制
		
CUDA中关于C++特性的限制 CUDA官方文档中对C++语言的支持和限制,懒得每次看英文文档,自己尝试翻译一下(没有放lambda表达式的相关内容,太过于复杂,我选择不用).官方文档https:// ...
 - CUDA中多维数组以及多维纹理内存的使用
		
纹理存储器(texture memory)是一种只读存储器,由GPU用于纹理渲染的图形专用单元发展而来,因此也提供了一些特殊功能.纹理存储器中的数据位于显存,但可以通过纹理缓存加速读取.在纹理存储器中 ...
 - (linux)main.c中的初始化
		
main.c中的初始化 head.s在最后部分调用main.c中的start_kernel() 函数,从而把控制权交给了它. 所以启动程序从start_kernel()函数继续执行.这个函数是main ...
 - 自己实现简单的AOP(四)自动初始化代理对象
		
前面三篇随笔,已经完成了AOP的核心功能,但 代理对象的初始化还是有些麻烦,本文将解决该问题. Demo 片段如下: public class HomeController : Controller ...
 - Delphi结构体的扩展,可以自动初始化,反初始化,自定义拷贝函数.
		
转载:http://www.raysoftware.cn/?p=518&utm_source=tuicool 恭贺Delphi XE7诞生,Delphi XE7在编译器内部集成了我之前所实现的 ...
 - u-boot中nandflash初始化流程分析(转)
		
u-boot中nandflash初始化流程分析(转) 原文地址http://zhuairlunjj.blog.163.com/blog/static/80050945201092011249136/ ...
 
随机推荐
- mina在spring中的配置多个端口
			
本次练习中是监听2个端口 applicationContext-mina.xml: <?xml version="1.0" encoding="UTF-8" ...
 - L2-004. 这是二叉搜索树吗?(前序转后序递归)
			
L2-004. 这是二叉搜索树吗? 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 一棵二叉搜索树可被递归地定义为具有下列性质的 ...
 - Ubuntu16.04+TensorFlow r1.12环境搭建指南
			
一.操作系统安装 OS版本:Ubuntu 16.04 (ubuntu-16.04.5-server-amd64.iso) CPU:4Core以上 内存:4GB以上 磁盘空间:80G以上 二.基础环境准 ...
 - [转]eclipse 设置默认编码为Utf-8
			
参考:http://www.cnblogs.com/yimu/archive/2011/06/30/SXLYLOVE.html 需要设置的几处地方为: Window->Preferences-& ...
 - 蓝牙服务 UUID
			
https://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspx 手机蓝牙对手机 ,华为平板取红米手机 8 个Audio So ...
 - Django 学习之---静态文件处理详解
			
前言: 1.静态文件是指 网站中的 js, css, 图片,视频等文件 2.静态文件放在对应的 app 下的 static 文件夹中 或者 STATICFILES_DIRS 中的文件夹中. 当 DEB ...
 - linux命令-passwd
			
修改密码 #passwd 新密码 重新输入密码 #passwd dennywang ////命令+用户名 ////////////////////////////////////////////// ...
 - hadoop再次集群搭建(2)-配置免秘钥ssh登录
			
SSH对于大多程序员都不陌生,目前主流的云服务提供上也是通过SSH来提供链接的安全保障,比如AWS通过使用下载的私钥(private key)实现与EC2实例安全连接.GitHub通过上传的公钥(pu ...
 - 如何使用google等一系列搜索引擎?
			
对于我们经常使用的搜索引擎大家都都不陌生,但是,如何高效的利用呢?大家都知道空格是搜索多个关键词,那么有没有其他的快捷键呢?答案是肯定的,以下内容转自知乎 1.双引号 把搜索词放在双引号中,代表完全匹 ...
 - zabbix启动web界面提示:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
			
问题 zabbix启动web界面提示: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' ( ...