3
我有使用nvcc编译器的问题。我发现使用nvcc 4.2编译的主机代码比使用g ++ 4.4.6编译的相同代码慢5倍左右。我正在使用NVIDIA SDK Makefile模板来编译发行版配置中的代码。在这两种情况下都使用-O2优化。这怎么可能,因为nvcc应该将主机代码传递给主机编译器。有任何想法吗?CUDA nvcc慢主机代码
这是我的makefile:
# Add source files here
EXECUTABLE := App
verbose=1
# C/C++ source files (compiled with gcc/c++)
CCFILES := \
cmdl.cpp main.cpp
# Cuda source files (compiled with cudacc)
CUFILES_sm_30 := AppCuda.cu AppHost.cpp
# Do not link with CUTIL
OMIT_CUTIL_LIB := 1
################################################################################
# Rules and targets
ROOTDIR=/home/snpsyn/NVIDIA_GPU_Computing_SDK/C/common
include $(ROOTDIR)/../common/common.mk
请问您是否可以告诉我们关于您的代码的更多信息?你在计算什么?如何? – Pedro
并与哪个版本的nvcc? – leftaroundabout
nvcc是4.2版本。我正在对主要部分计算多变量概率分布(直方图)的数据进行一些分析。使用Microsoft cl或nvcc编译时,应用程序的主机代码在Windows上运行良好。如果在Ubuntu上使用g ++进行编译,它也可以正常运行,但是如果我在Ubuntu上使用nvcc进行编译,它会显着降低速度。我想如果我只将主机代码传递给nvcc编译器(没有gpu内核),它将被传递给主机编译器(g ++),它应该产生与使用g ++相同的代码,但事实并非如此。 – ECHO001