利用CUDA查看多张显卡可用显存和总显存大小

6 篇文章 0 订阅

利用CUDA查看每张显卡上的可用显存大小和总的显存大小,参考了博文1博文2,主要使用的函数是cudaMemGetInfo(),cudaGetDeviceCount()和cudaSetDevice()

#include <cuda.h>
#include <stdio.h>
#include <cuda_runtime.h>
#include <device_launch_parameters.h>

int main()
{
	size_t avail;
	size_t total;
	int deviceCount=0;
	cudaGetDeviceCount(&deviceCount);              // 用deviceCount获取显卡总数量
	for(int i_dev=0;i_dev<deviceCount;i_dev++)
	{
		cudaSetDevice(i_dev);		               // 使用第i_dev张显卡作为使用的显卡
		cudaMemGetInfo(&avail, &total);            // 获取可用和总显存大小
		printf("Device %d Memeory:\n",i_dev);
		printf("Avaliable Memery = %dm   Total Memory = %dm\n", int(avail/1024/1024), int(total / 1024 / 1024));
		printf("\n");		
	}	
}

博文2中使用的是 cuInit(),cuMemGetInfo()函数,在linux下编译的时候需要加上 -lcuda 不然会报错,这篇博文的代码好像有点问题,就是第一个cuMemGetInfo()获取的数据都为0。

size_t 获取的显卡内存单位是字节(B),数据大小以及超过int的范围了,要么用long long型接收显存大小的数据,要么先处理转换成兆字节(MB)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值