【问题标题】:CUDA function call-able by either the device or host设备或主机均可调用的 CUDA 函数
【发布时间】:2011-06-11 04:37:13
【问题描述】:

我在一些 CUDA 代码中有一个可重用的函数,需要从设备和主机调用。有合适的限定词吗?

例如在这种情况下 func1 的正确定义是什么:

int func1 (int a, int b) {
    return a+b;
}

__global__ devicecode (float *A) {
    int i = blockDim.x * blockIdx.x + threadIdx.x;
    A[i] = func1(i,i);
}

void main() {
    // Normal cuda memory set-up

    // Call func1 from inside main:
    int j = func1(2,4)

    // Normal cuda memory copy / program run / retrieve data
}

到目前为止,我只能通过两次使用该功能来使其工作:一次明确用于设备,一次用于主机。有没有更好的办法?

【问题讨论】:

    标签: c++ function scope cuda


    【解决方案1】:

    来自 CUDA 编程指南:

    __device____host__ 限定词可以一起使用,但是,在 在这种情况下,该函数会同时针对主机和设备进行编译。

    【讨论】:

      猜你喜欢
      • 2010-12-16
      • 2012-08-26
      • 2017-10-29
      • 1970-01-01
      • 2020-08-20
      • 2012-11-21
      • 2022-01-08
      • 1970-01-01
      • 2012-07-14
      相关资源
      最近更新 更多