【问题标题】:cuda offset device pointer in host code主机代码中的 cuda 偏移设备指针
【发布时间】:2011-03-31 05:58:53
【问题描述】:

我首先在 cublas 中处理一个矩阵,我已经将它发送到设备并且我想处理 矩阵的一些列向量,仍然使用 cublas 函数。我首先尝试使用指针算术运算来从主机偏移设备指针,但它似乎不起作用。 有什么方法可以处理矩阵中的向量而不将其复制回主机。

例如: cublasSscal (int n, float alpha, float *x, int incx); 用于缩放向量 我有一个指向列主矩阵 B 的设备指针, 我想缩放B的第三列而不将向量复制回主机,怎么做?

【问题讨论】:

  • 你应该发布一些困扰你的代码

标签: pointers cuda device


【解决方案1】:

m 是行数, ldB 是 B 的前导维度。

cublasSscal (m, alpha, B + 2*ldB, 1); //  indices are 0 based

【讨论】:

  • 它可以工作,谢谢,但是主机编译器如何知道设备内存的布局?
  • @ema 我不确定我是否理解你的问题,你能详细说明一下
  • 起初我以为设备指针只能在nvcc编译的内核代码中操作,因为有一些“填充技术”可以使其更快。所以指针移位操作并不安全,但是移位设备指针似乎可以。我们可以把它当作主机内存来对待。它只是不允许取消引用。我说的对吗?
猜你喜欢
  • 2013-05-20
  • 2013-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-25
  • 2013-03-09
  • 2020-08-20
相关资源
最近更新 更多