cuda - CUDA nvcc慢主机代码

标签 cuda nvcc

我在使用nvcc编译器时遇到问题。我发现使用nvcc 4.2编译的主机代码运行速度比使用g ++ 4.4.6编译的相同代码慢5倍。我正在使用NVIDIA SDK Makefile模板来编译发行配置中的代码。在这两种情况下,都使用-O2优化。这是怎么回事,因为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

最佳答案

用nvcc或g ++(CUDA compiler driver)编译c ++代码应该没有什么区别

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

如果您可以提供源代码和makefile,将会很有帮助。

关于cuda - CUDA nvcc慢主机代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11115343/

相关文章:

cuda - CUDA编译中如何分配寄存器

c++ - NVCC 警告级别

python - CUDA-Python : How to launch CUDA kernel in Python (Numba 0. 25)?

cuda - 并行处理伪代码以在GPU上工作:克服未对齐的内存访问

c++ - cudamallocmanaged 是否足够聪明,不会复制不需要的数据?

c - 在cuda设备函数中使用省略号

cuda - 如何替换已弃用的 tex2D(texture<T, 2, cudaReadModeElementType>, float, float) [with T=float]?

c - 并行 (CUDA) 二维泊松求解器

c++ - 无法在 device_memory 中创建 cusp::coo_matrix 的 thrust::host_vector?

c++ - Cuda(NVCC)编译器的_ITERATOR_DEBUG_LEVEL?