运行cuda内核的设备是什么

时间:2013-04-16 16:52:39

标签: cuda optix

有没有办法从内核(GPU代码)找出代码运行的设备?你可以找到blockIdx,threadIdx,blockDim和gridDim,但是有什么方法可以找到CUDA设备i​​d吗?

对于那些疑惑的人,我打算在OptiX程序中使用它来更好地控制OptiX缓冲区。

1 个答案:

答案 0 :(得分:1)

这适用于OptiX 3.0和3.5,但我无法保证它始终有效。我们应该在将来的版本中为此提供真正的API。

namespace rti_internal_register
{
    __device__ unsigned reg_device_id;
}

rtBuffer<uchar4, 2> output_buffer;

RT_PROGRAM void pinhole_camera()
{
    if( rti_internal_register::reg_device_id == 0 )
        output_buffer[launch_index] = make_color( make_float3( 0.5, 0.0, 0.0 ) );
    else
        output_buffer[launch_index] = make_color( make_float3( 0.0, 0.5, 0.0 ) );
}