1
+ FROM ubuntu:18.04
2
+
3
+ RUN apt-get update -y
4
+ # install mivisionx base dependencies - Level 1
5
+ RUN apt-get -y install gcc g++ cmake git
6
+ # install ROCm for mivisionx OpenCL dependency - Level 2
7
+ RUN apt-get -y install libnuma-dev wget sudo gnupg2 kmod && \
8
+ wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | sudo apt-key add - && \
9
+ echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/debian/ xenial main' | sudo tee /etc/apt/sources.list.d/rocm.list && \
10
+ sudo apt-get update -y && \
11
+ sudo apt-get -y install rocm-dev
12
+ # install OpenCV & FFMPEG - Level 3
13
+ RUN apt-get -y install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libswscale-dev python-dev python-numpy \
14
+ libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev unzip && \
15
+ mkdir OpenCV && cd OpenCV && wget https://github.com/opencv/opencv/archive/3.4.0.zip && unzip 3.4.0.zip && \
16
+ mkdir build && cd build && cmake -DWITH_OPENCL=OFF ../opencv-3.4.0 && make -j8 && sudo make install && sudo ldconfig && cd
17
+ RUN apt-get -y install autoconf automake build-essential cmake git-core libass-dev libfreetype6-dev libsdl2-dev libtool libva-dev \
18
+ libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-dev \
19
+ nasm yasm libx264-dev libx265-dev libnuma-dev libfdk-aac-dev && \
20
+ git clone --recursive -b n4.0.4 https://git.ffmpeg.org/ffmpeg.git && cd ffmpeg && sudo ldconfig && \
21
+ export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/" && \
22
+ ./configure --enable-shared --disable-static --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libass --enable-gpl --enable-nonfree && \
23
+ make -j8 && sudo make install && cd
24
+ # install MIVisionX neural net dependency - Level 4
25
+ RUN apt-get -y install sqlite3 libsqlite3-dev libbz2-dev libssl-dev python-dev python3-dev autoconf automake libtool curl make g++ unzip && \
26
+ mkdir neuralNet && cd neuralNet && wget https://sourceforge.net/projects/half/files/half/1.12.0/half-1.12.0.zip && \
27
+ unzip half-1.12.0.zip -d half-files && sudo cp half-files/include/half.hpp /usr/local/include/ && \
28
+ wget https://dl.bintray.com/boostorg/release/1.72.0/source/boost_1_72_0.tar.bz2 && tar xjvf boost_1_72_0.tar.bz2 && \
29
+ cd boost_1_72_0 && ./bootstrap.sh --prefix=/usr/local --with-python=python3 && \
30
+ ./b2 stage -j16 threading=multi link=shared && sudo ./b2 install threading=multi link=shared --with-system --with-filesystem && \
31
+ sudo ./b2 install threading=multi link=static --with-system --with-filesystem && cd ../ && \
32
+ git clone https://github.com/RadeonOpenCompute/rocm-cmake.git && cd rocm-cmake && mkdir build && cd build && \
33
+ cmake ../ && make -j8 && sudo make install && cd ../../ && \
34
+ wget https://github.com/ROCmSoftwarePlatform/MIOpenGEMM/archive/1.1.5.zip && unzip 1.1.5.zip && \
35
+ cd MIOpenGEMM-1.1.5 && mkdir build && cd build && cmake ../ && make -j8 && sudo make install && cd ../../ && \
36
+ wget https://github.com/ROCmSoftwarePlatform/MIOpen/archive/2.9.0.zip && unzip 2.9.0.zip && \
37
+ cd MIOpen-2.9.0 && sudo cmake -P install_deps.cmake --minimum && mkdir build && cd build && \
38
+ cmake -DMIOPEN_BACKEND=OpenCL -DMIOPEN_USE_MIOPENGEMM=On ../ && make -j8 && make MIOpenDriver && sudo make install && cd ../../ && \
39
+ git clone -b v3.12.0 https://github.com/protocolbuffers/protobuf.git && cd protobuf && git submodule update --init --recursive && \
40
+ ./autogen.sh && ./configure && make -j8 && make check -j8 && sudo make install && sudo ldconfig && cd
41
+ # install MIVisionX RALI dependency - Level 5
42
+ RUN apt-get -y install libgflags-dev libgoogle-glog-dev liblmdb-dev nasm yasm libjsoncpp-dev clang && \
43
+ git clone -b 2.0.6 https://github.com/rrawther/libjpeg-turbo.git && cd libjpeg-turbo && mkdir build && cd build && \
44
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RELEASE -DENABLE_STATIC=FALSE -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/libjpeg-turbo-2.0.3 \
45
+ -DCMAKE_INSTALL_DEFAULT_LIBDIR=lib ../ && make -j4 && sudo make install && cd && \
46
+ git clone -b 0.6 https://github.com/GPUOpen-ProfessionalCompute-Libraries/rpp.git && cd rpp && mkdir build && cd build && \
47
+ cmake -DBACKEND=OCL ../ && make -j4 && sudo make install && cd
48
+ # install MIVisionX
49
+ RUN git clone https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX.git && mkdir build && cd build && \
50
+ cmake ../MIVisionX && make -j8 && sudo make install && cd
0 commit comments