3

我在使用 nvcc 编译器时遇到问题。我发现使用 nvcc 4.2 编译的主机代码的运行速度比使用 g++ 4.4.6 编译的相同代码慢 5 倍。我正在使用 NVIDIA SDK Makefile 模板来编译发布配置中的代码。在这两种情况下,都使用了 -O2 优化。这怎么可能,因为 nvcc 应该将主机代码传递给主机编译器。有任何想法吗?

这是我的生成文件:

# 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
4

1 回答 1

1

用 nvcc 或 g++ 编译 c++ 代码应该没有区别(CUDA 编译器驱动程序

但是尝试直接用 g++ 编译所有 c++ 代码。在您给出的示例中,AppHost.cpp 文件被传递给 nvcc 而不是 g++。

如果你能提供源代码和makefile,那将有很大帮助。

于 2012-07-31T15:48:50.203 回答