gpt4 book ai didi

来自花药 cu 文件的 CUDA 函数调用

转载 作者:行者123 更新时间:2023-12-04 00:47:23 28 4
gpt4 key购买 nike

我有两个 cuda 文件,分别是 A 和 B。我需要从 A 到 B 调用一个函数,比如..

__device__ int add(int a, int b) //this is a function in A
{
return a+b;
}



__device__ void fun1(int a, int b) //this is a function in B
{
int c = A.add(a,b);
}

我该怎么做?

我可以使用静态关键字吗?请给我一个例子..

最佳答案

简短的回答是你不能。 CUDA 只支持内部链接,因此编译内核所需的一切都必须在同一个翻译单元中定义。

您可以将函数放入头文件中,如下所示:

// Both functions in func.cuh
#pragma once
__device__ inline int add(int a, int b)
{
return a+b;
}

__device__ inline void fun1(int a, int b)
{
int c = add(a,b);
}

并将该头文件包含到您需要使用这些函数的每个 .cu 文件中。 CUDA 构建链似乎支持 inline 关键字,并且这种声明不会在我使用的任何 CUDA 平台(不包括 Windows)上生成重复符号。我不确定它是否有效,所以请放心

关于来自花药 cu 文件的 CUDA 函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6252912/

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