【问题标题】:Copy data from register to global memory将数据从寄存器复制到全局内存
【发布时间】:2018-12-30 06:51:27
【问题描述】:

我是编写 CUDA 的初学者。我不明白如何将数据从寄存器复制或传输到全局内存。谁能给我一个例子?谢谢

【问题讨论】:

  • 谷歌没有帮助你吗?
  • 不,我看不到任何例子。
  • 在 CUDA C/C++ 编程模型中没有寄存器存储这样的动物。有一个 register 关键字,但它只是一个编译器提示,通常会被编译器忽略。因此,您可以从一个示例开始,说明注册的含义。一个普通的立即变量?
  • 浮动 pvx = p->vx;浮动 pvy = p->vy;浮动像素 = p-> x;浮动 py = p->y;浮动 pax = p->ax;浮动工资 = p->ay; pvx += pax * dt; pvy += 支付 * dt; px += pvx * dt; py += pvy * dt; // // 从墙壁反弹 // while( px size ) { px = px 大小) { py = py
  • 您可以编辑自己的问题。点击上述问题中cuda 标记下方的“编辑”链接。

标签: cuda


【解决方案1】:

将数据从寄存器复制或传输到全局内存

据我所知,没有办法强制 CUDA 将变量存储在寄存器中。 CUDA 编译器 (nvcc) 将决定哪些数据存储在寄存器中,哪些存储在全局内存中。

您可以通过在编译期间检查输出文件来检查编译器放入寄存器的内容。

如何将 px、py、pvx、pvy 更新到全局内存

我不太确定在这种情况下您所说的 全局内存 是什么意思。如果您希望它是全局的,即所有线程都可以访问它,您需要使用 __device__ 关键字声明它。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    相关资源
    最近更新 更多