gpt4 book ai didi

c++ - 可由设备或主机调用的 CUDA 函数

转载 作者:可可西里 更新时间:2023-11-01 17:24:08 25 4
gpt4 key购买 nike

我在一些需要从设备和主机调用的 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
}

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

最佳答案

来自 CUDA 编程指南:

The __device__ and __host__ qualifiers can be used together however, in which case the function is compiled for both the host and the device.

关于c++ - 可由设备或主机调用的 CUDA 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4726005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com