From 9ceb1309270cbb540b5787ddd6da39b5be8dff45 Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Wed, 7 Feb 2018 14:58:08 +0100 Subject: [PATCH] Add cuda-9.0.176-0 The current tensorflow seems to require cuda 9.0 not cuda 9.1. Created cuda-9.0.176-0.build.sh from cuda-9.1.85-0.build.sh with the following changes: 4,5c4,5 < MAJOR=9.1 < MINOR=85 --- > MAJOR=9.0 > MINOR=176 8c8 < DRIVERVERSION=387.26 --- > DRIVERVERSION=384.81 59c59 < INSTALLFILE=cuda_${VERSION}_${DRIVERVERSION}_linux --- > INSTALLFILE=cuda_${VERSION}_${DRIVERVERSION}_linux-run --- cuda-9.0.176-0.build.sh | 114 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100755 cuda-9.0.176-0.build.sh diff --git a/cuda-9.0.176-0.build.sh b/cuda-9.0.176-0.build.sh new file mode 100755 index 0000000..f15ea33 --- /dev/null +++ b/cuda-9.0.176-0.build.sh @@ -0,0 +1,114 @@ +#! /bin/bash + +PKG=cuda +MAJOR=9.0 +MINOR=176 +VERSION=${MAJOR}.${MINOR} +BUILD=0 +DRIVERVERSION=384.81 + +# get versions combination and file URL from +# https://developer.nvidia.com/cuda-downloads?target_os=Linux +# Linux - x86_64 - any - any - runfile (local) +# +# the cuda toolkit comes bundled with a (kernel) driver. Here we only install the toolkit. +# It seems to function with other driver versions, but this can't be relied on. + +# Additonal we insall cudnn7 which comes in variants for each cuda version. +CUDNNFILE=cudnn-$MAJOR-linux-x64-v7.tgz +# +# this file can only be downloaded with a developer login. Dowload drom +# https://developer.nvidia.com/cudnn +# and put the file into /package/cuda/src + +# Note: +# https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html +# "The CUDA Development Tools are only supported on some specific distributions of Linux. These are listed in the CUDA Toolkit release notes." + +PREFIX=/pkg/$PKG-$VERSION-$BUILD +#PREFIX=/dev/shm/$PKG-$VERSION-$BUILD + +set -xe +umask 022 + +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 $PREFIX/profile <<-EOF + PATH=$PREFIX/bin:\$PATH + export LD_LIBRARY_PATH=$PREFIX/lib64\${LD_LIBARRY_PATH:+:\$LD_LIBARRY_PATH} +EOF +. $PREFIX/profile + +export MAKEFLAGS="-j $(nproc)" + +BUILDDIR=$PREFIX/build + +mkdir -p $BUILDDIR +cd $BUILDDIR + +# URL from https://developer.nvidia.com/cuda-downloads?target_os=Linux +# Linux - x86_64 - any - any - runfile (local) + +INSTALLFILE=cuda_${VERSION}_${DRIVERVERSION}_linux-run +URL=https://developer.nvidia.com/compute/cuda/$MAJOR/Prod/local_installers/$INSTALLFILE + +if [ ! -e ${INSTALLFILE} ]; then + wget $URL +fi + +# We have the first-level of "Makeself tool" generated script/archive. +# We just extract to tmp and dont run the content + +test -d "cuda" || bash ${INSTALLFILE} --nox11 --target cuda --noexec +cd cuda + +# we dont run the installer. +# perl ./cuda-installer.pl --silent --toolkit --toolkitpath=${PREFIX} --verbose +# would do all kind of stupid things and the call in run-files +# ./cuda-linux.9.1.85-23083092.run --nox11 -- --noprompt --prefix="/dev/shm/x" --manifest="/dev/shm/x/bin/.uninstall_manifest_do_not_delete.txt" +# +# instead do it ourself +cd run_files +script=cuda-linux.*.run + +# again, cuda-linux-SOMETHING.run is a "Makeself tool" generated script. +# We just extract to tmp and dont run the content + +test -d cuda-linux || bash $script --nox11 --target cuda-linux --noexec +cd cuda-linux + +# we dont run the installer +# perl ./install-linux.pl --prefix=$PREFIX --noprompt +# would do all kind of stupid things like deleting evertyhing in $PREFIX +# the main thing it does is this: + +find * -type d -prune -exec cp -a {} $PREFIX/ \; + +# copy the samples.... +# + +#cd .. +#script=cuda-samples.*.run +#test -d cuda-samples || bash $script --nox11 --target cuda-samples --noexec +#cd cuda-samples +#cp -a samples $PREFIX/ + +# cudNN +# + +cd $BUILDDIR +test -e $CUDNNFILE || cp /package/cuda/src/$CUDNNFILE . +test -d cudnn || mkdir cudnn +cd cudnn +tar xvf ../$CUDNNFILE +cp cuda/include/cudnn.h $PREFIX/include/ +cp cuda/lib64/libcudnn* $PREFIX/lib64/ + +exit