Skip to content

Commit

Permalink
Add cuda-9.0.176-0
Browse files Browse the repository at this point in the history
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
  • Loading branch information
donald committed Feb 7, 2018
1 parent 4d6ab03 commit 9ceb130
Showing 1 changed file with 114 additions and 0 deletions.
114 changes: 114 additions & 0 deletions cuda-9.0.176-0.build.sh
Original file line number Diff line number Diff line change
@@ -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 </dev/null

mkdir -p $PREFIX
cat >$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

0 comments on commit 9ceb130

Please sign in to comment.