推力设备管理和内核

时间:2012-07-10 20:09:03

标签: cuda thrust

我在当前项目中使用Thrust,所以我不必自己编写device_vector抽象或(分段)扫描内核。

到目前为止,我已经完成了使用推力抽象的所有工作,但对于简单的内核或内核,它们不能轻易转换为for_each或转换抽象,我宁愿在某些时候编写我自己的内核。

所以我的问题是:我可以通过Thrust(或者可能是CUDA)询问当前正在使用哪个设备以及它具有哪些属性(最大块大小,最大共享内存,所有这些东西)?

如果我无法获得当前设备,那么如果我提供内核寄存器和共享内存要求,那么我是否可以通过某种方式来计算内核维度?

1 个答案:

答案 0 :(得分:3)

您可以使用CUDA查询当前设备。请参阅device management上的CUDA文档。查找cudaGetDevice()cudaSetDevice()cudaGetDeviceProperties()

Thrust目前没有设备管理的概念。我不确定你的意思是“计算内核尺寸”,但是如果你想确定启动自定义内核的网格尺寸,那么你需要自己做。它可以帮助查询内核的属性cudaFuncGetAttributes(),这是Thrust使用的。

相关问题