首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GCC与NVCC的代码共享

GCC与NVCC的代码共享
EN

Stack Overflow用户
提问于 2016-02-20 14:56:24
回答 1查看 250关注 0票数 0

如果某个项目有一个可选的CUDA构建,那么如何在两个项目变体之间共享代码,从而最大限度地实现代码重用?

例如,在保证建立数据自动化系统的项目中,可以在项目的CPU和GPU部分之间共享代码,如下所示:

代码语言:javascript
复制
//shared_functions.h
float computeEta(float lambda, int t);

//shared_functions.cu
__host__ __device__ 
float computeEtaDevice(float lambda, int t){
    return (1.0/(lambda*(float)t));
}

float computeEta(float lambda, int t){
    return computeEtaDevice(lambda, t);
}

//test.cpp
#include "shared_functions.h"
...
computeEta(lambda, t);

然而,在编译时没有数据自动化系统的情况下,如何做到这一点尚不清楚。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-20 16:46:04

所以,经过一些实验,看起来类似的东西起了作用(用浏览器写的例子):-

代码语言:javascript
复制
//shared.h
#if defined(__CUDACC__) && defined(__CUDA_ARCH__)
    #define __SHARED_CODE__ __device__
#else
    #define __SHARED_CODE__ 
#endif

__SHARED_CODE__
inline float func1(float a, float b){
    return a + b;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35524904

复制
相关文章

相似问题

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