cudaChooseDevice函数使用Multi-GPU

时间:2014-06-18 06:38:30

标签: cuda gpu

我有3个Gpu设备的Pc,我想选择最符合我的设备1属性的设备,它只有8个多处理器(注意:设备0和设备2有30个多处理器),但是在运行下面的代码之后它给出了设备0的所有时间。

int main( void ) {
cudaDeviceProp prop;
int dev;
HANDLE_ERROR( cudaGetDevice( &dev ) );
printf( "ID of current CUDA device: %d\n", dev );
memset( &prop, 0, sizeof( cudaDeviceProp ) );
prop.Multiprocessorcount = 8;

HANDLE_ERROR( cudaChooseDevice( &dev, &prop ) );
printf( "ID of CUDA device which has 8 multiprocessor %d\n", dev );
HANDLE_ERROR( cudaSetDevice( dev ) );
}

1 个答案:

答案 0 :(得分:2)

cudaChooseDevicefollowing description

  

在* device中返回具有最佳匹配* prop。

的属性的设备

不幸的是,您似乎不同意运行时API关于" best"的定义。

在这种情况下,请使用您自己的方法选择设备。

事实上,你甚至没有在这个"问题"中提出问题。但需要明确的是,cudaChooseDevice使用的算法没有详细记录或描述。因此,在您需要特定结果或特定行为的情况下,您可能不应该使用它。