使用GTX950和Tesla K40在计算机上安装CUDA-7.5

时间:2016-08-03 07:22:25

标签: linux cuda graphic

我正在尝试在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?因为我拔下电源后, ./ smokeParticles 示例也成功了 特斯拉K40形成我的主板。 (我假设GTX 950正在运行样本......)

是否有命令或其他东西可以告诉我我正在使用特斯拉K40?

2 个答案:

答案 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()选择要运行的卡。查看示例源以了解如何使用它。