From 9a5d1f6d9e1f4f69e6231d34e00b90c72e2f6211 Mon Sep 17 00:00:00 2001 From: Mike Orzel Date: Sun, 24 Apr 2016 01:28:55 +0000 Subject: [PATCH] Updated for latest coreos releases --- corenvidiadrivers/Dockerfile | 19 ++++++++++++------- corenvidiadrivers/nvprocfs.patch | 15 +++++++++++++++ tflowgpu/Dockerfile | 29 +++++++++-------------------- tflowgpu/nvprocfs.patch | 15 +++++++++++++++ 4 files changed, 51 insertions(+), 27 deletions(-) create mode 100644 corenvidiadrivers/nvprocfs.patch create mode 100644 tflowgpu/nvprocfs.patch diff --git a/corenvidiadrivers/Dockerfile b/corenvidiadrivers/Dockerfile index 37f3aed..e776f0d 100644 --- a/corenvidiadrivers/Dockerfile +++ b/corenvidiadrivers/Dockerfile @@ -1,7 +1,7 @@ FROM ubuntu:14.04 MAINTAINER Mike Orzel -RUN apt-get -y update && apt-get -y install git bc make dpkg-dev && mkdir -p /usr/src/kernels && mkdir -p /opt/nvidia/nvidia_installers +RUN apt-get -y update && apt-get -y install git bc make dpkg-dev libssl-dev && mkdir -p /usr/src/kernels && mkdir -p /opt/nvidia/nvidia_installers RUN apt-get -y install software-properties-common python-software-properties @@ -11,7 +11,8 @@ RUN apt-get update RUN apt-get install -y gcc-4.9 g++-4.9 RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9 -ADD http://developer.download.nvidia.com/compute/cuda/7_0/Prod/local_installers/cuda_7.0.28_linux.run /opt/nvidia/ +ADD http://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda_7.5.18_linux.run /opt/nvidia +#ADD http://developer.download.nvidia.com/compute/cuda/7_0/Prod/local_installers/cuda_7.0.28_linux.run /opt/nvidia/ WORKDIR /usr/src/kernels RUN git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux @@ -21,11 +22,15 @@ RUN sed -i -e "s/`uname -r | sed -e "s/-.*//" | sed -e "s/\.[0]*$//"`/`uname -r` # Nvidia drivers setup WORKDIR /opt/nvidia/ -RUN chmod +x cuda_7.0.28_linux.run && ./cuda_7.0.28_linux.run -extract=`pwd`/nvidia_installers +RUN chmod +x cuda_7.5.18_linux.run && ./cuda_7.5.18_linux.run -extract=`pwd`/nvidia_installers WORKDIR /opt/nvidia/nvidia_installers -RUN ./NVIDIA-Linux-x86_64-346.46.run -a -x --ui=none -RUN sed -i "s/read_cr4/__read_cr4/g" NVIDIA-Linux-x86_64-346.46/kernel/nv-pat.c -RUN sed -i "s/write_cr4/__write_cr4/g" NVIDIA-Linux-x86_64-346.46/kernel/nv-pat.c -CMD ./NVIDIA-Linux-x86_64-346.46/nvidia-installer -q -a -n -s --kernel-source-path=/usr/src/kernels/linux/ && insmod /opt/nvidia/nvidia_installers/NVIDIA-Linux-x86_64-346.46/kernel/uvm/nvidia-uvm.ko +RUN ./NVIDIA-Linux-x86_64-352.39.run -a -x --ui=none +#RUN sed -i "s/read_cr4/__read_cr4/g" NVIDIA-Linux-x86_64-346.46/kernel/nv-pat.c +#RUN sed -i "s/write_cr4/__write_cr4/g" NVIDIA-Linux-x86_64-346.46/kernel/nv-pat.c + +COPY nvprocfs.patch /opt/nvidia/nvidia_installers +RUN patch NVIDIA-Linux-x86_64-352.39/kernel/nv-procfs.c < nvprocfs.patch + +CMD ./NVIDIA-Linux-x86_64-352.39/nvidia-installer -q -a -n -s --kernel-source-path=/usr/src/kernels/linux/ && insmod /opt/nvidia/nvidia_installers/NVIDIA-Linux-x86_64-352.39/kernel/uvm/nvidia-uvm.ko diff --git a/corenvidiadrivers/nvprocfs.patch b/corenvidiadrivers/nvprocfs.patch new file mode 100644 index 0000000..191c952 --- /dev/null +++ b/corenvidiadrivers/nvprocfs.patch @@ -0,0 +1,15 @@ +360,361c360,363 +< +< return seq_printf(s, "Binary: \"%s\"\n", registry_keys); +--- +> //mikes fix below +> seq_printf(s, "Binary: \"%s\"\n", registry_keys); +> return 0; +> //return seq_printf(s, "Binary: \"%s\"\n", registry_keys); +562c564,567 +< return seq_puts(s, s->private); +--- +> //mikes fix below +> seq_puts(s, s->private); +> return 0; +> //return seq_puts(s, s->private); diff --git a/tflowgpu/Dockerfile b/tflowgpu/Dockerfile index 2e27ba6..1302efa 100644 --- a/tflowgpu/Dockerfile +++ b/tflowgpu/Dockerfile @@ -2,7 +2,7 @@ FROM b.gcr.io/tensorflow/tensorflow:latest-gpu MAINTAINER Mike Orzel # Add some dependent packages we will need for the build process -RUN apt-get -y update && apt-get -y install git bc make dpkg-dev && mkdir -p /usr/src/kernels && mkdir -p /opt/nvidia/nvidia_installers +RUN apt-get -y update && apt-get -y install git bc make dpkg-dev libssl-dev && mkdir -p /usr/src/kernels && mkdir -p /opt/nvidia/nvidia_installers RUN apt-get -y install software-properties-common python-software-properties @@ -13,8 +13,8 @@ RUN apt-get install -y gcc-4.9 g++-4.9 RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9 # Download the nvidia cuda package -ADD http://developer.download.nvidia.com/compute/cuda/7_0/Prod/local_installers/cuda_7.0.28_linux.run /opt/nvidia/ -RUN chmod +x /opt/nvidia/cuda_7.0.28_linux.run +ADD http://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda_7.5.18_linux.run /opt/nvidia +RUN chmod +x /opt/nvidia/cuda_7.5.18_linux.run # download the linux kernel source and prepare it for use WORKDIR /usr/src/kernels @@ -23,30 +23,19 @@ WORKDIR linux RUN git checkout -b stable v`uname -r | sed -e "s/-.*//" | sed -e "s/\.[0]*$//"` && zcat /proc/config.gz > .config && make modules_prepare RUN sed -i -e "s/`uname -r | sed -e "s/-.*//" | sed -e "s/\.[0]*$//"`/`uname -r`/" include/generated/utsrelease.h # In case a '+' was added - - -#RUN git checkout -b stable v`uname -r` && zcat /proc/config.gz > .config && make modules_prepare - -#RUN sed -i -e "s/`uname -r`+/`uname -r`/" include/generated/utsrelease.h # In case a '+' was added RUN sed -i -e "s/`uname -r | sed -e "s/-.*//" | sed -e "s/\.[0]*$//"`/`uname -r`/" include/config/kernel.release # In case a '+' was added # Nvidia drivers setup WORKDIR /opt/nvidia/ -RUN chmod +x cuda_7.0.28_linux.run && ./cuda_7.0.28_linux.run -extract=`pwd`/nvidia_installers +RUN chmod +x cuda_7.5.18_linux.run && ./cuda_7.5.18_linux.run -extract=`pwd`/nvidia_installers WORKDIR /opt/nvidia/nvidia_installers -RUN ./NVIDIA-Linux-x86_64-346.46.run -a -x --ui=none -RUN sed -i "s/read_cr4/__read_cr4/g" NVIDIA-Linux-x86_64-346.46/kernel/nv-pat.c -RUN sed -i "s/write_cr4/__write_cr4/g" NVIDIA-Linux-x86_64-346.46/kernel/nv-pat.c +RUN ./NVIDIA-Linux-x86_64-352.39.run -a -x --ui=none +# Patch code to be compatible with current coreos kernel +COPY nvprocfs.patch /opt/nvidia/nvidia_installers +RUN patch NVIDIA-Linux-x86_64-352.39/kernel/nv-procfs.c < nvprocfs.patch -RUN ./NVIDIA-Linux-x86_64-346.46/nvidia-installer -q -a -n -s --kernel-source-path=/usr/src/kernels/linux/ --no-kernel-module - -# install modules to expected location, cuda will do modprobes in certain situations which require this -WORKDIR /usr/src/kernels/linux -RUN make modules && make modules_install -RUN mv /lib/modules/`uname -r | sed -e "s/-.*//" | sed -e "s/\.[0]*$//"`+ /lib/modules/`uname -r` -WORKDIR /opt/nvidia/nvidia_installers -RUN depmod +RUN ./NVIDIA-Linux-x86_64-352.39/nvidia-installer -q -a -n -s --kernel-source-path=/usr/src/kernels/linux/ --no-kernel-module # Run jupyter notebook and create a folder for the notebooks RUN chmod +x /run_jupyter.sh diff --git a/tflowgpu/nvprocfs.patch b/tflowgpu/nvprocfs.patch new file mode 100644 index 0000000..191c952 --- /dev/null +++ b/tflowgpu/nvprocfs.patch @@ -0,0 +1,15 @@ +360,361c360,363 +< +< return seq_printf(s, "Binary: \"%s\"\n", registry_keys); +--- +> //mikes fix below +> seq_printf(s, "Binary: \"%s\"\n", registry_keys); +> return 0; +> //return seq_printf(s, "Binary: \"%s\"\n", registry_keys); +562c564,567 +< return seq_puts(s, s->private); +--- +> //mikes fix below +> seq_puts(s, s->private); +> return 0; +> //return seq_puts(s, s->private);