【问题标题】:PTX - difference between .local and .paramPTX - .local 和 .param 之间的区别
【发布时间】:2013-07-15 10:04:10
【问题描述】:

我正在研究 PTX,但我不明白 .param.local 状态空间之间的区别。

.local 是线程可见的变量并存储在它们的堆栈中(顺便说一下,线程内存)

.param 是用于对象分配(如果按值传递)、函数参数和返回值和输入参数的变量,它们也在堆栈上分配

在 PTX 手册上有:

在 PTX 中,函数输入参数的地址可以移动到 使用 mov 指令注册。请注意,参数将是 如有必要,复制到堆栈中,因此地址将在 .local 状态空间,可通过 ld.localst.local 访问 说明。

我不明白:如果 .param == .local 并且所有内容都已在堆栈中,为什么还要将 .param 复制到堆栈中?

【问题讨论】:

  • .param 是作为内核调用的一部分从主机传递到设备的数据的 PTX 级抽象,即这些是内核调用参数或参数。在早期的 GPU 中,用于此目的的实际存储是共享内存,在后来的 GPU 中,这被更改为常量内存库。
  • @njuffa 根据您的回复,发帖人没有提出任何其他问题,在我看来,您的评论足以作为答案。如果您将其发布为答案,我会赞成。
  • @Robert Crovella 谢谢我已将信息复制到答案中

标签: cuda nvidia ptx


【解决方案1】:

.param 是作为内核调用的一部分从主机传递到设备的数据的 PTX 级抽象,即这些是内核调用参数或参数。在早期的 GPU 中,用于此目的的实际存储是共享内存,在后来的 GPU 中,这被更改为常量内存库。

【讨论】:

    猜你喜欢
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 2010-09-14
    • 2023-04-02
    • 1970-01-01
    相关资源
    最近更新 更多