CUDA编译器nvcc的用法用例与问题简答
来源:互联网 发布:被绿是怎样体验知乎 编辑:程序博客网 时间:2024/06/05 04:31
本文使用nvcc版本:Cuda compilation tools, release 5.5, V5.5.0
1.nvcc支持OpenMP
书写makefile时,使用-fopenmp
命令选项时会报nvcc fatal : Unknown option ‘fopenmp’错误。正确的编译选项是:
-Xcompiler -fopenmp
2.nvcc指定GPU计算能力
在内核中调用原子函数(例如atomicAdd)时,如果编译的时候出现”error: identifier “atomicAdd” is undefined”;
那么首先要确定的GPU显卡计算能力是否在1.1或者1.1以上,原子性操作在低端的计算能力 GPU 是不支持的,1.1 以上的计算能力才支持全局内存的原子操作,1.2 以上的计算能力才支持共享内存的原子操作。
使用原子操作的话在编译的时候需要指明GPU的计算能力,添加如下nvcc的编译选项:
-gencode=arch=compute_35,code=\"sm_35,compute_35\"
3.nvcc提示警告
使用 nvcc -Wall
时会提示nvcc fatal : Unknown option ‘Wall’的错误。原来nvcc默认开启所有警告,如果想禁止警告,使用-w
编译选项。
具体使用nvcc --help
查看帮助。
附1 nvcc编译CUDA实际项目makefile
# Check for 32-bit vs 64-bitPROC_TYPE = $(strip $(shell uname -m | grep 64))ifeq ($(PROC_TYPE),) FLAGS+= -m32else FLAGS+= -m64endif#cuda install pathCUDA_INSTALL_PATH ?= /usr/local/cuda-5.5#environment variable VPATHVPATH=./include#gpu architectureGENCODE_SM35 := -gencode=arch=compute_35,code=\"sm_35,compute_35\"CXX=nvccCXXFLAGS=-g -Xcompiler -fopenmp -DDEBUGCXXFLAGS+=$(FLAGS) $(GENCODE_SM35)#source filesCXXFILES = $(wildcard src/*.cpp)CUFILES =$(wildcard src/*.cu)#header filesINCLUDES= -Iinclude -I${CUDA_INSTALL_PATH}/include#static libLIBDIR=./libLIBS=$(LIBDIR)/libxmlextern.a#preprocessOBJDIR=./objNOTDIR_CXXFILES=$(notdir ${CXXFILES})NOTDIR_CUFILES=$(notdir ${CUFILES})OBJS=$(addprefix ./obj/,$(patsubst %.cpp,%.o,${NOTDIR_CXXFILES})) OBJS+=$(addprefix ./obj/,$(patsubst %.cu,%.o,${NOTDIR_CUFILES})) #compileDICUALG.out:${OBJS} $(MAKE) -C ./src/xmlparser $(CXX) -Xcompiler -fopenmp -o $@ $^ $(LIBS) ${OBJDIR}/%.o :src/%.cpp $(CXX) ${CXXFLAGS} ${INCLUDES} -c $< -o $@${OBJDIR}/%.o :src/%.cu $(CXX) ${CXXFLAGS} ${INCLUDES} -c $< -o $@${OBJDIR}/md5.o ${OBJDIR}/common.o:macro.h${OBJDIR}/GPU_Decomposer3.o:cnre.h gpu_define3.h global.h .PHONY:cleanclean: rm obj/* ./DICUALG.out
具体不详细解释,有问题可留言提问。
参考文献
[1]NVCC命令编译选项.http://blog.csdn.net/k346k346/article/details/50377714
[2]http://www.tuicool.com/articles/uIj2q2
1 0
- CUDA编译器nvcc的用法用例与问题简答
- CUDA中NVCC的编译器选项
- 发现NVCC编译器一个CUDA函数添加注释支持的问题
- 在WinDOWS X64下 Cuda NVCC 与 Intel C/C++ compiler联合使用的问题
- 解决nvcc找不到的问题(Ubuntu16.04 CUDA 8.0)
- linux下通过jni编译CUDA代码生成动态链接库遇到的问题 nvcc -fPIC
- sizeof用法与编译器对齐的问题.
- sizeof用法与编译器对齐的问题
- NVCC CUDA编译流程
- NVCC CUDA编译流程
- NVCC CUDA编译流程
- nvcc编译器选项
- visual studio 中cuda-nvcc.exe开关的设置位置
- CUDA以及NVCC编译流程
- NVIDIA CUDA Compiler Driver NVCC
- cuda 1.x 编译器产生的奇怪问题及解决方法
- cuda 7.5 不支持 ubuntu 15.10 的 gcc 5 编译器问题
- 与编译器相关的问题
- Spring启动时注解扫描的问题
- iOS通讯录
- Ext学习-1
- VERSION_CODES 的 含义
- 设计模式(二十)---状态模式
- CUDA编译器nvcc的用法用例与问题简答
- C# - 冒泡排序算法练手
- VS2013 App_Code中的类访问不到 VS2013类不能访问
- ThinkPHP 图片上传接口类
- <a href="#">和<a href="javascript:void(0);">
- 常用性能指标描述
- 移动设备手机网页通过特殊链接:打电话,发短信,发邮件
- JDK自带方法实现消息摘要运算
- NDK之java调用C方法