CUDA: 不要在一个.cpp文件中声明kernel(即以_global_和_device_的函数)
来源:互联网 发布:搜索引擎优化排名 编辑:程序博客网 时间:2024/05/29 03:33
源于网上的一个材料。
头文件kernel.h
extern __global__ void kernel();实现文件kernel.cu
#include <stdio.h>#include "kernel.h"__global__ void kernel(){ printf("hello world!");}
测试test.cu:
#include "kernel.h"int main(void){ kernel<<<1,1>>>(); cudaDeviceSynchronize();return 0;}问题来了, 如果将test.cu改为test.cpp, 就会出现问题
make all Building file: ../src/test2.cppInvoking: NVCC Compiler/usr/local/cuda-5.5/bin/nvcc -G -g -O0 -gencode arch=compute_35,code=sm_35 -odir "src" -M -o "src/test2.d" "../src/test2.cpp"/usr/local/cuda-5.5/bin/nvcc -G -g -O0 --compile -x c++ -o "src/test2.o" "../src/test2.cpp"In file included from ../src/test2.cpp:3:0:../src/kernel.h:5:8: 错误: ‘__global__’不是一个类型名../src/test2.cpp: 在函数‘int main()’中:../src/test2.cpp:10:2: 错误: ‘kernel’在此作用域中尚未声明../src/test2.cpp:10:10: 错误: expected primary-expression before ‘<’ token../src/test2.cpp:10:16: 错误: expected primary-expression before ‘>’ token../src/test2.cpp:10:18: 错误: expected primary-expression before ‘)’ token../src/test2.cpp:11:24: 错误: ‘cudaDeviceSynchronize’在此作用域中尚未声明make: *** [src/test2.o] 错误 1
问题分析:
因为cpp默认是用主机编译器即c++的编译器来处理的。
而在test.cpp中包含了kernel.h,kernel.h中声明了__global__函数。
NOTE: 上述主要参考自:
http://blog.csdn.net/lingerlanlan/article/details/25063331?utm_source=tuicool
从明天起, 继续钻研深度学习了。。。。。。
0 0
- CUDA: 不要在一个.cpp文件中声明kernel(即以_global_和_device_的函数)
- cuda编程:不要在一个cpp文件中声明__device__和__global__函数
- 在.h文件中写声明,在.cpp文件中写变量和函数,以及实现类的函数
- 怎么避免在类实现的cpp文件中不要多次进行类声明
- C++ 在.h文件中声明,在.cpp文件中定义 模板函数和模板类
- Cuda学习笔记(四)——在vs2010中配置.cpp和.cu文件
- 模板函数的声明和定义都放在一个文件中
- 模板类成员函数的定义和声明为什么要放在一个文件中
- 模板类成员函数的定义和声明为什么要放在一个文件中
- 模板类成员函数的定义和声明为什么要放在一个文件中
- C++模板中声明和定义是否可以分开存放在.h和.cpp文件中
- C++ 保存在两个cpp文件中函数,怎样声明才能互相调用?
- 在.h文件中声明变量后,无法在.CPP中使用的问题
- nginx禁止用户访问隐藏文件和.htaccess文件 .htaccess文件(或者”分布式配置文件”)提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以
- C++模板类的成员函数定义与声明必须在一个头文件中
- 解决方案:静态成员对象的声明在头文件中,函数代码在另外一个文件中,提示链接错误
- 在CPP文件中自动添加函数注释的ADDIN
- 在CPP文件中自动添加函数注释的ADDIN
- LeetCode_个人题解
- C 不引入第三变量交换两个数的值(异或运算符^)
- 本博客全部移至http://blog.sina.com.cn/u/5501630255
- 广播机制的优越性
- 常用的排序算法以及实现
- CUDA: 不要在一个.cpp文件中声明kernel(即以_global_和_device_的函数)
- 哈希表
- 《C语言及程序设计》实践参考——反弹的皮球
- 《C语言及程序设计》实践参考——M$pszi$y是嘛意思?
- android的隐藏文件或文件夹
- 《C语言及程序设计》实践参考——Bessel函数
- 《C语言及程序设计》实践参考——贪财的富翁
- 《C语言及程序设计》实践参考——在北京买房
- 零基础学习Mahout之一:搭建单机环境