NVIDIA HPC SDK虽然附带了CUDA、cuBLAS等库,但安装路径与CUDA Toolkit有差异。cuda-samples有些示例用到了cuBLAS等数学库,按照文档直接make
会找不到库文件。
翻找示例的Makefile
想找全局的设置,发现有行ALL_CCFLAGS += $(EXTRA_NVCCFLAGS)
,其中EXTRA_NVCCFLAGS
在Makefile
中未出现过,推测是全局的额外参数。再往下看还有行ALL_LDFLAGS += $(ALL_CCFLAGS)
,如果设定了$(EXTRA_NVCCFLAGS)
那么对编译、链接都有效。
于是把NVHPC-SDK附带的包含目录和库目录写成GCC参数的样子,导出环境变量,再构建cuda-samples就成功了。项目约600MB,构建后2.5GB。
SDK="/opt/nvidia/hpc_sdk/Linux_x86_64/2023"
unset EXTRA_NVCCFLAGS
EXTRA_NVCCFLAGS="$EXTRA_NVCCFLAGS -I$SDK/math_libs/include"
EXTRA_NVCCFLAGS="$EXTRA_NVCCFLAGS -L$SDK/math_libs/lib64"
export EXTRA_NVCCFLAGS
NVHPC-SDK安装如有差异,相应修改环境变量即可。