Skip to content

Commit

Permalink
Unpinned torch version for aimet onnx variants (quic#3382)
Browse files Browse the repository at this point in the history
* Delete symlinks, Unpin torch version, upgrade cuda version to 11.8

Signed-off-by: Hitarth Mehta <quic_hitameht@quicinc.com>

* Add complete path to html with --find-links

Signed-off-by: Hitarth Mehta <quic_hitameht@quicinc.com>

* Fixed unpinned torch install in onnx dockerfiles, updated ALL dockerfiles for consistency

Signed-off-by: Bharath Ramaswamy <quic_bharathr@quicinc.com>

* Pinned back numpy in onnx dev dockers, updated numpy version in reqs file

Signed-off-by: Bharath Ramaswamy <quic_bharathr@quicinc.com>

* Cleaned up onnx depndency lists

Signed-off-by: Bharath Ramaswamy <quic_bharathr@quicinc.com>

* Added missing files

Signed-off-by: Bharath Ramaswamy <quic_bharathr@quicinc.com>

* Updated reqs_deb_onnx_gpu file with cuda 11.8 versions of packages

Signed-off-by: Bharath Ramaswamy <quic_bharathr@quicinc.com>

---------

Signed-off-by: Hitarth Mehta <quic_hitameht@quicinc.com>
Signed-off-by: Bharath Ramaswamy <quic_bharathr@quicinc.com>
Co-authored-by: Hitarth Mehta <quic_hitameht@quicinc.com>
  • Loading branch information
2 people authored and quic-twilkens committed Oct 15, 2024
1 parent efece8a commit f377aa6
Show file tree
Hide file tree
Showing 22 changed files with 602 additions and 30 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,4 @@ unit_test_results
# Other generated files
*.swp
packaging/setup_cfg.py
package_info.py
1 change: 0 additions & 1 deletion Jenkins/Dockerfile.onnx-cpu

This file was deleted.

268 changes: 268 additions & 0 deletions Jenkins/Dockerfile.onnx-cpu
Original file line number Diff line number Diff line change
@@ -0,0 +1,268 @@
# =============================================================================
# @@-COPYRIGHT-START-@@
#
# Copyright (c) 2021-2024, Qualcomm Innovation Center, Inc. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
# SPDX-License-Identifier: BSD-3-Clause
#
# @@-COPYRIGHT-END-@@
# =============================================================================

# Docker image file to build and test AIMET for ONNX in a CPU environment

ARG REGISTRY
FROM ${REGISTRY}ubuntu:jammy

ARG DEBIAN_FRONTEND=noninteractive
ARG APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn

RUN apt-get update > /dev/null && \
apt-get install --no-install-recommends -y \
# Bare minimum Packages
ca-certificates \
git \
ssh \
sudo \
wget \
xterm \
xauth > /dev/null && \
rm -rf /var/lib/apt/lists/*

# Install certificates
RUN sudo update-ca-certificates

# Modified version of bash.bashrc that adjusts the prompt
### COPY bash.bashrc /etc/
### RUN chmod 644 /etc/bash.bashrc

### COPY profile.global /usr/local/etc/
### RUN chmod 555 /usr/local/etc/profile.global

# Add sudo support
RUN echo "%users ALL = (ALL) NOPASSWD: ALL" >> /etc/sudoers

RUN apt-get update -y > /dev/null && \
apt-get install --no-install-recommends -y \
# Python
python3.10 \
python3.10-dev \
python3.10-venv \
python3-pip \
python3-setuptools \
build-essential \
# lmdb dependency
libffi-dev && \
rm -rf /var/lib/apt/lists/*

# Register the version in alternatives
RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
# Set python 3.10 as the default python
RUN update-alternatives --set python3 /usr/bin/python3.10

# Upgrade Python3 pip and install some more packages
RUN python3 -m pip --no-cache-dir install --upgrade \
pip \
setuptools==49.4.0 \
wheel

# Ubuntu packages for pytorch aimet
RUN dpkg --add-architecture i386
RUN apt-get update > /dev/null && \
apt-get install --no-install-recommends -y \
build-essential \
cmake \
emacs \
environment-modules \
less \
libavcodec-dev \
libavformat-dev \
libeigen3-dev \
libgtest-dev \
libgtk2.0-dev \
libncurses5 \
libsox-dev \
libsox-fmt-all \
libstdc++6:i386 \
libswscale-dev \
libtinfo5 \
libunwind-14 \
libc++-dev \
libxtst6 \
lsb-release \
meld \
nano \
pandoc \
pkg-config \
python3-tk \
sox \
tree \
unzip \
vim && \
rm -rf /var/lib/apt/lists/*

# Python3 Packages
RUN python3 -m pip --no-cache-dir install \
astroid==2.5.6 \
attrs>=19.1.0 \
behave==1.2.6 \
blosc==1.10.1 \
cffi \
click \
cma \
cumm \
cvxpy \
cylp \
cython \
dataclasses \
datasets \
Deprecated \
deepspeed \
docutils==0.16 \
graphviz \
grpcio \
grpcio-tools \
h5py \
ipykernel \
ipython \
Jinja2==3.0.3 \
jupyter \
keras==2.2.4 \
lmdb==1.2.1 \
matplotlib>=3 \
mock \
nbsphinx \
networkx \
'numpy<1.24,>=1.20.5' \
onnx==1.16.1 \
onnxscript \
onnxsim \
onnxruntime==1.18.1 \
onnxruntime-extensions \
opencv-python \
peft \
Pillow==9.3.0 \
pluggy==0.12.0 \
progressbar2 \
protobuf==3.20.2 \
psutil \
ptflops \
pybind11 \
pydot \
pyDOE2 \
pylint==2.8.3 \
pymoo \
pytest \
pytest-cov \
pytorch-ignite \
PyYAML \
scikit-learn==1.1.3 \
scipy==1.8.1 \
spconv \
sphinx \
sphinx-autodoc-typehints \
sphinx-jinja \
sphinx-rtd-theme \
tensorboard==2.4.0 \
tensorboardX==2.4 \
timm==0.4.12 \
torchtext \
tqdm \
transformers==4.27.4 \
wget && \
python3 -m ipykernel.kernelspec

# Onnxruntime C/C++ package needed to create custom C++ onnx ops for quantsim
RUN mkdir /opt/onnxruntime && \
export ONNXRUNTIME_VER=$(python3 -c 'import onnxruntime; print(onnxruntime.__version__)') && \
wget -qO- "https://github.com/microsoft/onnxruntime/releases/download/v${ONNXRUNTIME_VER}/onnxruntime-linux-x64-${ONNXRUNTIME_VER}.tgz" | tar xvz --strip-components 1 -C /opt/onnxruntime && \
ln -s /opt/onnxruntime /usr/local/bin/onnxruntime_headers

ENV PATH=/usr/local/bin:$PATH

# Opencv
# Ref: https://docs.opencv.org/3.4.19/d7/d9f/tutorial_linux_install.html
RUN wget -q https://github.com/opencv/opencv/archive/refs/tags/3.4.19.tar.gz -O /tmp/3.4.19.tar.gz > /dev/null && \
tar -C /tmp -xvf /tmp/3.4.19.tar.gz > /dev/null && \
cd /tmp/opencv-3.4.19 && mkdir release && cd release && \
cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=release -DWITH_FFMPEG=OFF -DBUILD_TESTS=OFF -DWITH_CUDA=OFF -DBUILD_PERF_TESTS=OFF -DWITH_IPP=OFF -DENABLE_PRECOMPILED_HEADERS=OFF -DWITH_ITT=OFF .. > /dev/null && \
make -j16 > /dev/null && \
make -j16 install > /dev/null && \
rm -rf /tmp/opencv-3.4.19*

EXPOSE 25000
RUN apt-get update && apt-get install -y openssh-server && rm -rf /var/lib/apt/lists/*
RUN mkdir /var/run/sshd

RUN apt-get update && apt-get install -y liblapacke liblapacke-dev && rm -rf /var/lib/apt/lists/*

RUN apt-get update && apt-get install -y libjpeg8-dev && \
rm -rf /var/lib/apt/lists/*

# Set up symlink to point to the correct python version
RUN ln -sf /usr/bin/python3.10 /usr/bin/python
RUN ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib

RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && \
sed -i 's/Port 22/Port 25000/' /etc/ssh/sshd_config

# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd

RUN python3 -m pip install git-pylint-commit-hook osqp twine

# NOTE: We need to pin the holoviews version to this since the latest version has a circular dependency on bokeh 2.0.0 through the panel package
RUN python3 -m pip install holoviews==1.18.3 netron jsonschema pandas==1.5.3

# Note: bokeh requires Pillow while we need to use Pillow-SIMD for performance reasons.
RUN python3 -m pip install bokeh==3.2.2 hvplot==0.9.2

# Remove existing Pillow & Pillow-SIMD and replace with correct version of Pillow-SIMD.
RUN python3 -m pip uninstall -y Pillow Pillow-SIMD
RUN python3 -m pip --no-cache-dir install Pillow-SIMD==9.0.0.post1

# Force-install the LATEST version of Python3 Torch Packages, then pin back some dependencies
RUN unset PIP_CONFIG_FILE && \
python3 -m pip install --upgrade --force-reinstall --isolated \
torch -f https://download.pytorch.org/whl/cpu/torch \
torchaudio -f https://download.pytorch.org/whl/cpu/torchaudio \
torchvision -f https://download.pytorch.org/whl/cpu/torchvision \
numpy==1.24.4 \
fsspec[http]==2024.6.1

RUN apt-get update && apt-get install -y gnupg2
# Downloaded from https://apt.llvm.org/
RUN wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key|sudo apt-key add - && echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-14 main" >> /etc/apt/sources.list
RUN apt-get update --fix-missing -y && apt upgrade -y && apt-get install -y clang-11 clang-format clang-tidy-11 && \
rm -rf /var/lib/apt/lists/*

# Create a version-less symbolic link for clang-tidy
RUN ln -s /usr/bin/run-clang-tidy-11.py /usr/bin/run-clang-tidy.py

# Provide write permission to the python package folder in order to install AIMET in editable mode
RUN chmod o+w /usr/local/lib/python3.10/dist-packages
1 change: 0 additions & 1 deletion Jenkins/Dockerfile.onnx-gpu

This file was deleted.

Loading

0 comments on commit f377aa6

Please sign in to comment.