From: Weatherby,Gerard (gweatherby_at_uchc.edu)
Date: Thu Jun 20 2019 - 12:54:53 CDT

I've installed CUDA-10 from the NVIDIA debian repository on an Ubuntu18.04.2 LTS system. I'm getting the following message:


echo "Compiling " CUDAMDFF.cu " --> " CUDAMDFF.o " ..."; \
/usr/local/cuda/bin/nvcc --ptxas-options=-v -gencode arch=compute_30,code=compute_30 -gencode arch=compute_30,code=sm_35 -gencode arch=compute_30,code=sm_37 -gencode arch=compute_50,code=compute_50 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_60,code=compute_60 -gencode arch=compute_60,code=sm_60 --ftz=true --machine 64 -O3 -DARCH_LINUXAMD64 -DVMDOPENGL -DVMDCOLVARS -DVMDCUDA -DMSMPOT_CUDA -DVMDIMD -DVMDXINERAMA -DVMDXINPUT -DVMDLIBPNG -DVMDLIBTACHYON -DVMDPYTHON -DVMDTHREADS -DWKFTHREADS -DUSEPOSIXTHREADS -D_REENTRANT -DVMDNUMPY -DVMDQUICKSURF -DVMDWITHCARBS -DVMDPOLYHEDRA -DVMDSURF -DVMDMSMS -DVMDNANOSHAPER -DVMDTCL -DVMDTK -DVMDSTATICPLUGINS -DVMDGUI -DVMDFLTK -I../lib/tachyon/include -I/usr/include/python2.7 -I/usr/lib/python2.7/dist-packages/numpy/core/include -I/usr/lib/python2.7/dist-packages/numpy/core/lib -I/usr/include/tcl8.5 -I/usr/include/tk8.5 -I../plugins/include -I../plugins/LINUXAMD64/molfile -I../lib/netcdf/include -I../lib/fltk/include -I. -c CUDAMDFF.cu -o ../LINUXAMD64/CUDAMDFF.o
Compiling CUDAMDFF.cu --> CUDAMDFF.o ...
CUDAMDFF.cu(133): error: identifier "__float2half_rn" is undefined

1 error detected in the compilation of "/tmp/tmpxft_000042a7_00000000-8_CUDAMDFF.compute_60.cpp1.ii".
Makefile:582: recipe for target 'CUDAMDFF.o' failed
make: *** [CUDAMDFF.o] Error 1

Goggle search results suggest I have version mismatch of something, but I'm not sure what the exact issue is. Any suggestions for what to try/change next?

Version info:
------
/usr/local/cuda/bin/nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Apr_24_19:10:27_PDT_2019
Cuda compilation tools, release 10.1, V10.1.168
-----
/usr/local/cuda/bin/nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Apr_24_19:10:27_PDT_2019
Cuda compilation tools, release 10.1, V10.1.168

​My build script:
------------------------------
#!/bin/bash
ORIGIN=$(dirname $(readlink -f $0))
WORK=/tmp/vmdwork
VERS=1.9.3

#setup parallel make
MAKE_J=$(($(nproc)+1))
export PLUGINDIR=$WORK/plugin.d

#install prerequisites
function prep( ) {
sudo apt-get -qq -y install libfltk1.3-dev tk8.5-dev libnetcdf-dev libtachyon-dev-common libtachyon-mt-0-dev libxinerama-dev libxi-dev python-dev
}

#untar the source to our work directory
function extract( ) {
mkdir -p $WORK
tar xf $ORIGIN/vmd-${VERS}.src.tar.gz -C $WORK
}

#build the plugins
function plugins( ) {
cd $WORK/plugins
#not really configured for parallel make, so do a few times and ignore errors
    DIR="TCLINC=-I/usr/include/tcl8.5 TCLLIB=-L/usr/lib/x86_64-linux-gnu/ LINUXAMD64"
make $DIR -s -j ${MAKE_J} 2>/dev/null
make $DIR -s -j ${MAKE_J} 2>/dev/null
#finally, compile serially and make sure valid
make $DIR -s || { echo "plugin compile fail"; exit 1; }
make distrib || { echo "plugin distrib fail"; exit 1; }
}

#
# config file expects python2.5, cuda-8.0 -> patch it to use python.27, current cuda
#
function patchconfig( ) {
(
cat <<'ENDPATCH'
--- /tmp/configure 2019-06-20 13:02:58.183049223 -0400
+++ ./configure 2019-06-20 13:15:47.374880104 -0400
@@ -466,7 +466,7 @@

 $arch_cc = "cc";
 $arch_ccpp = "CC";
-$arch_nvcc = "/usr/local/cuda-8.0/bin/nvcc";
+$arch_nvcc = "/usr/local/cuda/bin/nvcc";
 $arch_nvccflags = "--ptxas-options=-v " .
                     "-gencode arch=compute_30,code=compute_30 " .
                     "-gencode arch=compute_30,code=sm_35 " .
@@ -922,7 +922,7 @@
 # This option enables the use of CUDA GPU acceleration functions.
 #######################
 $cuda_defines = "-DVMDCUDA -DMSMPOT_CUDA";
-$cuda_dir = "/usr/local/cuda-8.0";
+$cuda_dir = "/usr/local/cuda";
 $cuda_include = "";
 $cuda_library = "";
 $cuda_libs = "-Wl,-rpath -Wl,\$\$ORIGIN/ -lcudart_static";
@@ -1388,7 +1388,7 @@
 $python_defines = "-DVMDPYTHON";
 $python_include = "-I$stock_python_include_dir -I$stock_numpy_include_dir -I$stock_numpy_library_dir";
 $python_library = "-L$stock_python_library_dir";
-$python_libs = "-lpython2.5 -lpthread";
+$python_libs = "-lpython2.7 -lpthread";
 @python_h = ('PythonTextInterp.h',
                        'VMDTkinterMenu.h',
         'py_commands.h',
@@ -2293,7 +2293,7 @@

     if ($config_cuda) {
       $arch_nvccflags .= " --machine 64 -O3 $cuda_include";
- $cuda_library = "-L/usr/local/cuda-8.0/lib64";
+ $cuda_library = "-L/usr/local/cuda/lib64";
     }

     $arch_lex = "flex"; # has problems with vendor lex
ENDPATCH
) > /tmp/vmdpatch$$
patch $WORK/vmd-${VERS}/configure /tmp/vmdpatch$$
}

#
# configure and build VMD
#
function vmd( ) {
set -e
cd $WORK/vmd-${VERS}
if [ ! -d plugins ]; then
ln -s $WORK/plugin.d plugins
fi
export TCL_INCLUDE_DIR=/usr/include/tcl8.5
export TK_INCLUDE_DIR=/usr/include/tk8.5
export NETCDFLIB="-L/usr/lib64"
export NETCDFINC="-I/usr/include"
export NETCDFLDFLAGS="-lnetcdf"
export PYTHON_INCLUDE_DIR="/usr/include/python2.7"
export PYTHON_LIBRARY_DIR="/usr/lib/python2.7"
export NUMPY_INCLUDE_DIR="/usr/lib/python2.7/dist-packages/numpy/core/include"
export NUMPY_LIBRARY_DIR="/usr/lib/python2.7/dist-packages/numpy/core/lib"
echo 'LINUXAMD64 FLTK OPENGL TK IMD TCL PTHREADS PYTHON NUMPY NETCDF COLVARS XINPUT LIBPNG LIBTACHYON CUDA XINERAMA NOSILENT' > configure.options

./configure
cd src
make
sudo make install
}

prep
extract
plugins
patchconfig
vmd​






--
Gerard Weatherby| Application Architect
NMRbox | Department of Molecular Biology and Biophysics | UConn Health
263 Farmington Avenue, Farmington, CT 06030-6406
Phone: 860 679 8484
uchc.edu