CUDA中自动初始化显卡设备宏
时间:2022-04-22
本文章向大家介绍CUDA中自动初始化显卡设备宏,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
每次为了减少初始化的工作量,可以写入下面的宏。
#define CUT_DEVICE_INIT(ARGC,ARGV){
int deviceCount;
CUDA_SAFE_CALL_NO_SYNC(cudaGetDeviceCount(&deviceCount));
if(deviceCount == 0){
fprintf(stderr,"cutil error:no devices supporting CUDA.n")
exit(EXIT_FAILURE);
}
int dev=0;
cutGetCmdLineArgumenti(ARGC,(const char **) ARGV,"device",&dev);
if(dev < 0) dev=0;
if(dev > deviceCount - 1) dev=deviceCount - 1;
cudaDeviceProp deviceProp;
CUDA_SAFE_CALL_NO_SYNC(cudaGetDeviceProperties(&deviceProp,dev));
if(deviceProp.major < 1){
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:%sn",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);
}
- 【java基础】匿名类
- 朴素贝叶斯法 2016年11月11日
- 11g中关于控制文件自动备份的改进(r6笔记第22天)
- Java基础(02)-15总结对象数组,集合Collection,集合List
- alert日志中的两种ORA错误分析(r6笔记第21天)
- 通过定制orabbix监控分析潜在的Oracle问题 (r6笔记第32天)
- 【C语言练手】C语言画太极图
- 关于奇怪的并行进程分析(一) (r6笔记第41天)
- 关于ora-02391问题的总结(r6笔记第40天)
- 一次数据库响应慢的问题诊断(r6笔记第39天)
- 贝叶斯分类器及Python实现
- R语言中文分词工具
- orabbix结合python发送图形报表(二) (r6笔记第38天)
- 14(01)正则表达式,Pattern,Mactcher,Math,BigInteger,BigDeximal,System等
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php提供实现反射的方法和实例代码
- PHP实现批量修改文件名的方法示例
- Linux VPS快速下载Bilibili视频脚本 ,支持1080P/720P/360P等格式
- PHP递归统计系统中代码行数
- PHP切割整数工具类似微信红包金额分配的思路详解
- php写入文件不覆盖的实例讲解
- php解决crontab定时任务不能写入文件问题的方法分析
- Laravel项目中timeAgo字段语言转换的改善方法示例
- php生成微信红包数组的方法
- 解决php写入数据库乱码的问题
- php写入txt乱码的解决方法
- PHP实现的AES 128位加密算法示例
- php写入mysql中文乱码的实例解决方法
- php实现的支付宝网页支付功能示例【基于TP5框架】
- php校验公钥是否可用的实例方法