是否可以通过内核(GPU代码)找出运行代码的设备? 您可以找到blockIdx,threadIdx,blockDim和gridDim,但是是否可以找到CUDA设备ID?

对于那些想知道的人,我计划在OptiX程序中使用它,以更好地控制OptiX缓冲区。

===============>>#1 票数: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 ) );
}

  ask by apartridge translate from so

未解决问题?本站智能推荐:

5回复

将结果写入CUDA / Optix中的文本文件

我想知道是否可以编写在程序Cuda / Optix中计算出的变量的文本文件。 那是我的.cu文件中的变量,因此不能由CPU写入。
1回复

CUDA中渐进式光子映射的透明度

我正在做一个基于optix的项目。 我需要使用渐进式光子贴图,因此我尝试使用样本中的渐进式光子贴图,但是未实现透明材料。 我在Google上搜索了很多,还试图了解其他包含透明度材料的示例(例如Glass,Tutorial,whitted)。 最后,我得到了如下解决方案; 找到生命
1回复

CUDA中的3D建模(光线追踪前阶段)

我正在尝试使用CUDA实现简单的光线跟踪代码。 我被困在建模部分 。 我试图弄清楚如何用对象为3D空间建模(从一个简单的3D空间开始,中间包含一个3D立方体)。 我已经阅读了有关openGL和CUDA的混合项目的信息,但是这些文章太笼统了-正如我所说的,我是新来的。 有没有实
1回复

如何在同一Visual Studio项目中编译CUDA C文件和Nvidia OptiX文件

我目前在Visual Studio上使用Optix光线跟踪引擎。 我的问题包括计算数据并使用Optix渲染它们。 我已经编写了一个纯C CUDA程序来计算数据,但是无法将其集成到Optix项目中。 我使用SDK的CMakeLists.txt并对其进行了修改,从而编译了Optix项目
4回复

当cuda内核正在运行时访问cuda设备内存

我已经使用cudaMalloc在设备上分配了内存,并将其传递给了内核函数。 在内核完成执行之前,是否可以从主机访问该内存?
1回复

CUDA multi gpu:运行相同的内核(双芯片设备)

我正在编写必须在GTX690(双芯片)板上运行相同内核的代码。 由于计算是可分离的,我不需要设备之间的数据交换,我只是将结果合并到CPU上。 我理解如何在每个设备上运行代码,以及如何在每个设备的内存空间中提供i / o数据空间。 我在尝试设置常量时遇到问题,这两个设备上运行的内核都使用
1回复

Cuda内核未同时运行

最初,我问的是由于某些原因,当我指定不同的流时,我的内核拒绝同时运行。 现在已经解决了,但是对我来说,它们的并发行为仍然不清楚。 我知道我的系统可以运行多个流,因为并发内核CUDA示例运行良好。 我也可以扩展此示例,使其模仿我的代码,并且仍然可以同时运
1回复

在cuda内核中运行

有什么方法可以在cuda内核中有一个函数。 我的意思是我的cuda内核很长很难调试。 谢谢。
1回复

我的CUDA内核是否真的在设备上运行或在仿真中被主机误执行了?

我刚刚获得了支持GPU的视频卡,并开始使用CUDA。 为了让我对块和线程有所了解,我编写了一个简单的内核,该内核仅将其标识符存储到共享内存中,然后将其复制回主机并打印。 但是,尽管如此,为什么不在内核函数中简单地使用printf ? 即使我相信这是不可能的,我还是尝试过。 这是我的尝试:
1回复

CUDA错误-内核执行因设备功能无效而失败

我在成功编译cuda-convnet2后尝试运行CIFAR10,但出现此错误 我在Zotak Nvidia geforce 750ti GPU上运行linux。 这是日志输出