我正在尝试在Ubuntu 14.04上安装CUDA-7.5,而且我的主板上插有GTX950和Tesla K40。
和 lspci | grep -i nvidia 命令给出以下结果:
01:00.0 3D controlloer: NVIDIA Corporation GK110BGL [Tesla K40c] (rev a1)
02:00.0 VGA compatible controller: NVIDIA Corporation GM206 [GeForece GTX 950] (rev a1)
02:00.1 Audio device: NVIDIA Corporation Device 0fba (rev a1)
我想我已经在我的计算机上成功安装了CUDA-7.5,因为我实际上可以在 NVIDIA_CUDA-7.5_Samples / bin /中运行 ./ smokeParticles 示例x86_64的/ Linux的/释放/
但我有一个问题:
是否有命令或其他东西可以告诉我我正在使用特斯拉K40?
答案 0 :(得分:2)
我想扩展 halfelfs回答。他建议的解决方案肯定是正确的,但我不认为它是一般的。仅仅取决于从命令行返回的硬编码设备编号可能会变成陷阱一次 - 出于任何原因 - 操作系统会更改先前分配的设备编号。
我的建议是:
int getDeviceNumberByName( const char * deviceName )
{
int deviceCount;
cudaGetDeviceCount ( &deviceCount );
for ( int currentDevice = 0 ; currentDevice < deviceCount ; ++currentDevice )
{
cudaDeviceProp deviceProperties;
cudaGetDeviceProperties( &deviceProperties, currentDevice );
if ( 0 == strcmp( deviceProperties.name, deviceName )
return currentDevice;
}
return -1; // not found
}
使用此功能,您可以非常灵活,即使更改底层硬件也可以。
说明强>
获取已安装的NVIDIA设备的总数并读取每个设备的属性。检查设备名称是否与提供的设备名称匹配,是否确实返回设备编号,否则返回-1(如果未找到)。
答案 1 :(得分:0)
在cuda示例中,deviceQuery
用于测试cuda是否正确安装并显示有关每张卡的基本信息。这将告诉您每个cuda设备的设备编号。
例如,我在我的服务器上运行它:
$ ./deviceQuery |egrep '^Device [0-9]+'
Device 0: "GeForce GTX 980 Ti"
Device 1: "GeForce GTX 980 Ti"
Device 2: "GeForce GTX 980 Ti"
Device 3: "GeForce GTX 980 Ti"
在您的cuda应用程序中,使用cudaSetDevice()
选择要运行的卡。查看示例源以了解如何使用它。