首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从C文件中分离内核

如何从C文件中分离内核
EN

Stack Overflow用户
提问于 2014-11-17 17:34:23
回答 2查看 175关注 0票数 0

嗨,我想把我的一些CUDA内核函数分离到一个单独的文件中,这样我就可以重用它们了。

假设我有两份文件:

  1. A.cu包含可重用的CUDA内核。
  2. B.cu包含一些内核和主机函数,我想在其中调用A.cu文件中的一些内核。

我该怎么做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-17 18:09:46

您可以做的是将内核原型放在一个.cuh文件中,然后将其包含在第二个文件中。Here是组织你的数据自动化系统代码的一种方式。

票数 1
EN

Stack Overflow用户

发布于 2014-11-17 18:06:35

对于您所描述的情况,您可以以几乎与在C/C++中进行此操作的方式相同的方式来完成此操作。下面是一个充分发挥作用的例子:

代码语言:javascript
运行
复制
$ cat B.cu
#include "myheader.h"

__global__ void kernel1(){
  printf("Hello 1\n");
}

int main(){

  kernel1<<<1,1>>>();
  cudaDeviceSynchronize();
  kernel2<<<1,1>>>();
  cudaDeviceSynchronize();
  return 0;
}

$ cat A.cu
#include "myheader.h"

__global__ void kernel2(){
  printf("Hello 2\n");
}

$ cat myheader.h
#include <stdio.h>
__global__ void kernel2();

$ nvcc -arch=sm_20 -o test A.cu B.cu
$ cuda-memcheck ./test
========= CUDA-MEMCHECK
Hello 1
Hello 2
========= ERROR SUMMARY: 0 errors
$
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26978470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档