Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
executable file 110 lines (84 sloc) 2.84 KB
#! /bin/bash
# COOKIE=$(mcookie); grep -v V_GREP_ME $0 > /dev/shm/runme-$COOKIE.sh ; sleep 1; exec bash /dev/shm/runme-$COOKIE.sh
PKG=cuda
MAJOR=10.2
MINOR=89
VERSION=$MAJOR.$MINOR
BUILD=0
DRIVERVERSION=440.33.01
# https://developer.nvidia.com/compute/machine-learning/cudnn/secure/7.6.5.32/Production/10.2_20191118/cudnn-10.2-linux-x64-v7.6.5.32.tgz
CUDNNVER=7.6.5.32
CUDNNFILE=cudnn-$MAJOR-linux-x64-v$CUDNNVER.tgz
PREFIX=/pkg/$PKG-$VERSION-$BUILD
if [ -n "$TESTING" ]; then PREFIX=/dev/shm/$PKG-$VERSION-$BUILD ; fi
set -e
umask 022
# be carefull on machines with 8Gig and less
BUILD_TMPDIR=/dev/shm/$PKG-$VERSION-$BUILD.build.tmp
test -d $BUILD_TMPDIR && rm -rf $BUILD_TMPDIR
mkdir -p $BUILD_TMPDIR/home
export TMPDIR=$BUILD_TMPDIR
export HOME=$BUILD_TMPDIR/home
exec </dev/null
mkdir -p $PREFIX
cat >$PREFIX/profile <<-EOF
PATH=$PREFIX/bin:\$PATH
export LD_LIBRARY_PATH=$PREFIX/lib64\${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH}
export CUDA_PATH=$PREFIX
EOF
. $PREFIX/profile
cd $PREFIX
OLD_STUFF=$(echo $(ls | grep -vw -e build -e profile))
test -n "$OLD_STUFF" && rm -r $OLD_STUFF
BUILDDIR=$PREFIX/build
mkdir -p $BUILDDIR
cd $BUILDDIR
INSTALLFILE=cuda_${VERSION}_${DRIVERVERSION}_linux.run
URL=https://developer.nvidia.com/compute/cuda/$MAJOR/Prod/local_installers/$INSTALLFILE
# in case it was downloaded before
if [ ! -e $INSTALLFILE -a -e /package/cuda/src/$INSTALLFILE ]; then
cp -vp /package/cuda/src/$INSTALLFILE $INSTALLFILE
fi
if [ ! -e $INSTALLFILE ]; then
wget $URL
fi
rm -rf cuda_tmp
mkdir -p cuda_tmp
bash $INSTALLFILE --extract=$BUILDDIR/cuda_tmp --nox11
cd cuda_tmp
### reorganize the tree a bit ###
cd cuda-toolkit
# dump javabased nsight profiler
rm -rf nsight-compute-* nsight-systems-* libnsight nsightee_plugins
# stuff all the 'extras' into 'share', but keep
# nvvm (nvidia virtual machine, see bin/nvcc.profile)
mv doc extras libnvvp nvml tools share
# 'elevate' libs and includes
rm include lib64
mv targets/x86_64-linux/* .
mv lib lib64
rm -r targets
# this one is required but a bit incorrect if it comes to the lib suffix
sed -i -e '/LD_LIBRARY_PATH/ s/lib:/lib$(_TARGET_SIZE_):/' bin/nvcc.profile
### return ###
cd $BUILDDIR/cuda_tmp
# obviously a name change was overlooked
sed -i -e '/^SAMPLES_SRC/ s,samples,../cuda-samples,' cuda-samples/bin/cuda-install-samples-10.2.sh
# we don't need this distro aware handler for finding glut & co
for D in $(find -name findgllib.mk -exec dirname {} \;) ; do
test -e $D/Makefile && sed -i -e '/findgllib.mk/ s/include/# include/' $D/Makefile
done
# install and merge cublas (which is pretty redundant)
mv cuda-toolkit/* $PREFIX
cp -au cublas/* $PREFIX
rm -r cublas/*
mv cuda-samples $PREFIX/share
# cudNN
cd $BUILDDIR
test -e $CUDNNFILE || cp /package/cuda/src/$CUDNNFILE .
mkdir -p cudnn
cd cudnn
tar xvf ../$CUDNNFILE
cp cuda/include/cudnn.h $PREFIX/include/
cp cuda/lib64/libcudnn* $PREFIX/lib64/
exit