diff --git a/.jenkins/common.groovy b/.jenkins/common.groovy index 2f076c0fd6..5af1dc7fa2 100644 --- a/.jenkins/common.groovy +++ b/.jenkins/common.groovy @@ -21,17 +21,17 @@ def runCompileCommand(platform, project, jobName, boolean debug=false, boolean s cmake = 'cmake3' codeCovFlags = '-D CMAKE_CXX_FLAGS="-fprofile-arcs -ftest-coverage"' } - installPackageDeps = 'python3 MIVisionX-setup.py --reinstall yes --ffmpeg yes' + installPackageDeps = 'python MIVisionX-setup.py --reinstall yes --ffmpeg yes' } else if (platform.jenkinsLabel.contains('sles')) { osInfo = 'cat /etc/os-release && uname -r' update = 'sudo zypper -n --no-gpg-checks install lcov zip && sudo zypper -n --no-gpg-checks update' - installPackageDeps = 'python3 MIVisionX-setup.py --reinstall yes --ffmpeg yes' + installPackageDeps = 'python MIVisionX-setup.py --reinstall yes --ffmpeg yes' } else if (platform.jenkinsLabel.contains('ubuntu')) { osInfo = 'cat /etc/lsb-release && uname -r' update = 'sudo apt-get -y --allow-unauthenticated update && sudo apt-get -y --allow-unauthenticated install lcov zip' - installPackageDeps = 'python3 MIVisionX-setup.py --reinstall yes --ffmpeg yes' + installPackageDeps = 'python MIVisionX-setup.py --reinstall yes --ffmpeg yes' if (platform.jenkinsLabel.contains('ubuntu18')) { codeCovFlags = '-D CMAKE_CXX_FLAGS="-fprofile-arcs -ftest-coverage"' } diff --git a/MIVisionX-setup.py b/MIVisionX-setup.py index a14996b33b..e9719ee7bd 100644 --- a/MIVisionX-setup.py +++ b/MIVisionX-setup.py @@ -1,4 +1,4 @@ -# Copyright (c) 2018 - 2020 Advanced Micro Devices, Inc. All rights reserved. +# Copyright (c) 2018 - 2021 Advanced Micro Devices, Inc. All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -22,26 +22,23 @@ import sys import argparse import platform +if sys.version_info[0] < 3: + import commands +else: + import subprocess __author__ = "Kiriti Nagesh Gowda" -__copyright__ = "Copyright 2018 - 2020, AMD Radeon MIVisionX setup" +__copyright__ = "Copyright 2018 - 2021, AMD ROCm MIVisionX" __license__ = "MIT" -__version__ = "1.9.8" +__version__ = "1.9.9" __maintainer__ = "Kiriti Nagesh Gowda" __email__ = "Kiriti.NageshGowda@amd.com" __status__ = "Shipping" -if sys.version_info[0] < 3: - import commands -else: - import subprocess - -# Import arguments +# Arguments parser = argparse.ArgumentParser() parser.add_argument('--directory', type=str, default='~/mivisionx-deps', help='Setup home directory - optional (default:~/)') -parser.add_argument('--installer', type=str, default='apt-get', - help='Linux system installer - optional (default:apt-get) [options: Ubuntu - apt-get; CentOS - yum]') parser.add_argument('--opencv', type=str, default='3.4.0', help='OpenCV Version - optional (default:3.4.0)') parser.add_argument('--miopen', type=str, default='2.11.0', @@ -60,10 +57,13 @@ help='MIVisionX rocAL Dependency Install - optional (default:yes) [options:yes/no]') parser.add_argument('--reinstall', type=str, default='no', help='Remove previous setup and reinstall - optional (default:no) [options:yes/no]') +parser.add_argument('--backend', type=str, default='OCL', + help='MIVisionX Dependency Backend - optional (default:OCL) [options:OCL/HIP]') +parser.add_argument('--rocm_path', type=str, default='/opt/rocm', + help='ROCm Installation Path - optional (default:/opt/rocm) - ROCm Installation Required') args = parser.parse_args() setupDir = args.directory -linuxSystemInstall = args.installer opencvVersion = args.opencv MIOpenVersion = args.miopen MIOpenGEMMVersion = args.miopengemm @@ -73,7 +73,39 @@ neuralNetInstall = args.neural_net raliInstall = args.rocal reinstall = args.reinstall +backend = args.backend +ROCM_PATH = args.rocm_path + +if ffmpegInstall not in ('no', 'yes'): + print("ERROR: FFMPEG Install Option Not Supported - [Supported Options: no or yes]") + exit() +if neuralNetInstall not in ('no', 'yes'): + print("ERROR: Neural Net Install Option Not Supported - [Supported Options: no or yes]") + exit() +if raliInstall not in ('no', 'yes'): + print("ERROR: Neural Net Install Option Not Supported - [Supported Options: no or yes]") + exit() +if reinstall not in ('no', 'yes'): + print("ERROR: Re-Install Option Not Supported - [Supported Options: no or yes]") + exit() +if backend not in ('OCL', 'HIP'): + print("ERROR: Backend Option Not Supported - [Supported Options: OCL or HIP]") + exit() +# check ROCm installation +if os.path.exists(ROCM_PATH): + print("ROCm Installation Found -- "+ROCM_PATH+"\n") + os.system('echo ROCm Info -- && '+ROCM_PATH+'/bin/rocminfo') +else: + print("WARNING: ROCm Not Found at -- "+ROCM_PATH+"\n") + print( + "WARNING: Set ROCm Path with --rocm_path option for full installation [Default:/opt/rocm]\n") + print("WARNING: Only OpenCV will be installed\n") + ffmpegInstall = 'no' + neuralNetInstall = 'no' + raliInstall = 'no' + +# get platfrom info platfromInfo = platform.platform() # sudo requirement check @@ -94,10 +126,11 @@ else: setupDir_deps = setupDir+'/mivisionx-deps' -# setup directory +# setup directory path deps_dir = os.path.expanduser(setupDir_deps) # setup for Linux +linuxSystemInstall = '' linuxCMake = 'cmake' linuxSystemInstall_check = '' linuxFlag = '' @@ -115,52 +148,74 @@ linuxSystemInstall = 'zypper -n' linuxSystemInstall_check = '--no-gpg-checks' platfromInfo = platfromInfo+'-SLES' +else: + print("\nMIVisionX Setup on "+platfromInfo+" is unsupported\n") + print("\nMIVisionX Setup Supported on: Ubuntu 18/20; CentOS 7/8; RedHat 7/8; & SLES 15-SP2\n") + exit() + +# MIVisionX Setup +print("\nMIVisionX Setup on: "+platfromInfo+"\n") if userName == 'root': os.system(linuxSystemInstall+' update') os.system(linuxSystemInstall+' install sudo') # Delete previous install -if(os.path.exists(deps_dir) and reinstall == 'yes'): +if os.path.exists(deps_dir) and reinstall == 'yes': os.system('sudo -v') os.system('sudo rm -rf '+deps_dir) + print("\nMIVisionX Setup: Removing Previous Install -- "+deps_dir+"\n") -# MIVisionX setup -print("\nMIVisionX Setup on "+platfromInfo+"\n") -if(os.path.exists(deps_dir)): +# Re-Install +if os.path.exists(deps_dir): + print("\nMIVisionX Setup: Re-Installing Libraries from -- "+deps_dir+"\n") # opencv - os.system('sudo -v') - os.system('(cd '+deps_dir+'/build/OpenCV; sudo ' + - linuxFlag+' make install -j8)') - if neuralNetInstall == 'yes': - # rocm-cmake + if os.path.exists(deps_dir+'/build/OpenCV'): os.system('sudo -v') - os.system('(cd '+deps_dir+'/build/rocm-cmake; sudo ' + + os.system('(cd '+deps_dir+'/build/OpenCV; sudo ' + linuxFlag+' make install -j8)') + + if neuralNetInstall == 'yes': + # rocm-cmake + if os.path.exists(deps_dir+'/build/rocm-cmake'): + os.system('sudo -v') + os.system('(cd '+deps_dir+'/build/rocm-cmake; sudo ' + + linuxFlag+' make install -j8)') # MIOpenGEMM - os.system('sudo -v') - os.system('(cd '+deps_dir+'/build/MIOpenGEMM; sudo ' + - linuxFlag+' make install -j8)') + if os.path.exists(deps_dir+'/build/MIOpenGEMM'): + os.system('sudo -v') + os.system('(cd '+deps_dir+'/build/MIOpenGEMM; sudo ' + + linuxFlag+' make install -j8)') # MIOpen - os.system('sudo -v') - os.system('(cd '+deps_dir+'/build/MIOpen; sudo ' + - linuxFlag+' make install -j8)') + if os.path.exists(deps_dir+'/build/MIOpen*'): + os.system('sudo -v') + os.system('(cd '+deps_dir+'/build/MIOpen*; sudo ' + + linuxFlag+' make install -j8)') + if raliInstall == 'yes' or neuralNetInstall == 'yes': # ProtoBuf - os.system('sudo -v') - os.system('(cd '+deps_dir+'/protobuf-'+ProtoBufVersion + - '; sudo '+linuxFlag+' make install -j8)') + if os.path.exists(deps_dir+'/protobuf-'+ProtoBufVersion): + os.system('sudo -v') + os.system('(cd '+deps_dir+'/protobuf-'+ProtoBufVersion + + '; sudo '+linuxFlag+' make install -j8)') + if raliInstall == 'yes': # RPP - os.system('sudo -v') - os.system('(cd '+deps_dir+'/rpp/build; sudo ' + - linuxFlag+' make install -j8)') + if os.path.exists(deps_dir+'/rpp/build-'+backend): + os.system('sudo -v') + os.system('(cd '+deps_dir+'/rpp/build-'+backend+'; sudo ' + + linuxFlag+' make install -j8)') + if ffmpegInstall == 'yes': # FFMPEG - os.system('sudo -v') - os.system('(cd '+deps_dir+'/ffmpeg; sudo ' + - linuxFlag+' make install -j8)') - print("\nMIVisionX Dependencies Installed with MIVisionX-setup.py V-"+__version__+"\n") + if os.path.exists(deps_dir+'/ffmpeg'): + os.system('sudo -v') + os.system('(cd '+deps_dir+'/ffmpeg; sudo ' + + linuxFlag+' make install -j8)') + + print("\nMIVisionX Dependencies Re-Installed with MIVisionX-setup.py V-"+__version__+"\n") + exit() +# Clean Install else: print("\nMIVisionX Dependencies Installation with MIVisionX-setup.py V-"+__version__+"\n") os.system('mkdir '+deps_dir) @@ -170,6 +225,7 @@ os.system('sudo -v') os.system('sudo '+linuxFlag+' '+linuxSystemInstall+' ' + linuxSystemInstall_check+' install gcc cmake git wget unzip pkg-config inxi') + # Get Installation Source os.system( '(cd '+deps_dir+'; wget https://github.com/opencv/opencv/archive/'+opencvVersion+'.zip )') @@ -190,6 +246,7 @@ if ffmpegInstall == 'yes': os.system( '(cd '+deps_dir+'; git clone --recursive -b n4.0.4 https://git.ffmpeg.org/ffmpeg.git )') + # Install if raliInstall == 'yes' or neuralNetInstall == 'yes': # package dependencies @@ -246,28 +303,47 @@ os.system('sudo -v') os.system('(cd '+deps_dir+'/protobuf-'+ProtoBufVersion + '; sudo '+linuxFlag+' ldconfig )') + if neuralNetInstall == 'yes': - os.system('(cd '+deps_dir+'/build; mkdir rocm-cmake MIOpenGEMM MIOpen)') + # Remove Previous Install - MIOpen + os.system('sudo -v') + if os.path.exists(ROCM_PATH+'/miopen'): + os.system('sudo rm -rf '+ROCM_PATH+'/miopen*') + + if backend == 'OCL': + os.system('sudo '+linuxFlag+' '+linuxSystemInstall+' ' + + linuxSystemInstall_check+' remove miopen-hip') + else: + os.system('sudo '+linuxFlag+' '+linuxSystemInstall+' ' + + linuxSystemInstall_check+' remove miopen-opencl') + + os.system('(cd '+deps_dir+'/build; mkdir rocm-cmake MIOpenGEMM MIOpen-'+backend+')') # Install ROCm-CMake os.system('(cd '+deps_dir+'/build/rocm-cmake; ' + linuxCMake+' ../../rocm-cmake )') os.system('(cd '+deps_dir+'/build/rocm-cmake; make -j8 )') os.system('(cd '+deps_dir+'/build/rocm-cmake; sudo ' + linuxFlag+' make install )') - # Install MIOpenGEMM - os.system('(cd '+deps_dir+'/build/MIOpenGEMM; '+linuxCMake + - ' ../../MIOpenGEMM-'+MIOpenGEMMVersion+' )') - os.system('(cd '+deps_dir+'/build/MIOpenGEMM; make -j8 )') - os.system('(cd '+deps_dir+'/build/MIOpenGEMM; sudo ' + - linuxFlag+' make install )') + if backend == 'OCL': + # Install MIOpenGEMM + os.system('(cd '+deps_dir+'/build/MIOpenGEMM; '+linuxCMake + + ' ../../MIOpenGEMM-'+MIOpenGEMMVersion+' )') + os.system('(cd '+deps_dir+'/build/MIOpenGEMM; make -j8 )') + os.system('(cd '+deps_dir+'/build/MIOpenGEMM; sudo ' + + linuxFlag+' make install )') # Install MIOpen os.system('(cd '+deps_dir+'/MIOpen-'+MIOpenVersion+'; sudo ' + linuxFlag+' '+linuxCMake+' -P install_deps.cmake --minimum )') - os.system('(cd '+deps_dir+'/build/MIOpen; '+linuxCMake + - ' -DMIOPEN_BACKEND=OpenCL -DMIOPEN_USE_MIOPENGEMM=On ../../MIOpen-'+MIOpenVersion+' )') - os.system('(cd '+deps_dir+'/build/MIOpen; make -j8 )') - os.system('(cd '+deps_dir+'/build/MIOpen; sudo ' + + if backend == 'OCL': + os.system('(cd '+deps_dir+'/build/MIOpen-'+backend+'; '+linuxCMake + + ' -DMIOPEN_BACKEND=OpenCL -DMIOPEN_USE_MIOPENGEMM=On ../../MIOpen-'+MIOpenVersion+' )') + else: + os.system('(cd '+deps_dir+'/build/MIOpen-'+backend+'; CXX=/opt/rocm/llvm/bin/clang++ '+linuxCMake + + ' -DMIOPEN_BACKEND=HIP ../../MIOpen-'+MIOpenVersion+' )') + os.system('(cd '+deps_dir+'/build/MIOpen-'+backend+'; make -j8 )') + os.system('(cd '+deps_dir+'/build/MIOpen-'+backend+'; sudo ' + linuxFlag+' make install )') + # Install Packages for NN Apps - Apps Requirement to be installed by Developer # os.system('sudo ' + linuxFlag+' '+linuxSystemInstall+' autoremove ') # os.system('sudo -v') @@ -286,6 +362,7 @@ # os.system('sudo '+linuxFlag+' yes | pip install pytz') # os.system('sudo -v') # os.system('sudo '+linuxFlag+' yes | pip install numpy') + # Install OpenCV os.system('(cd '+deps_dir+'/build; mkdir OpenCV )') # Install pre-reqs @@ -318,6 +395,7 @@ os.system('(cd '+deps_dir+'/build/OpenCV; sudo '+linuxFlag+' make install )') os.system('sudo -v') os.system('(cd '+deps_dir+'/build/OpenCV; sudo '+linuxFlag+' ldconfig )') + if raliInstall == 'yes': # Install RPP if "Ubuntu" in platfromInfo: @@ -337,14 +415,19 @@ os.system('sudo -v') os.system('sudo '+linuxFlag+' '+linuxSystemInstall+' ' + linuxSystemInstall_check+' install clang') - # turbo-JPEG + # turbo-JPEG - https://github.com/rrawther/libjpeg-turbo.git -- 2.0.6.1 os.system( '(cd '+deps_dir+'; git clone -b 2.0.6.1 https://github.com/rrawther/libjpeg-turbo.git )') os.system('(cd '+deps_dir+'/libjpeg-turbo; mkdir build; cd build; '+linuxCMake + ' -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RELEASE -DENABLE_STATIC=FALSE -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/libjpeg-turbo-2.0.3 -DCMAKE_INSTALL_DEFAULT_LIBDIR=lib ..; make -j 4; sudo make install )') # RPP - os.system('(cd '+deps_dir+'; git clone -b '+rppVersion+' https://github.com/GPUOpen-ProfessionalCompute-Libraries/rpp.git; cd rpp; mkdir build; cd build; ' + - linuxCMake+' -DBACKEND=OCL ../; make -j4; sudo make install)') + # Remove Previous Install - RPP + os.system('sudo -v') + if os.path.exists(ROCM_PATH+'/rpp'): + os.system('sudo rm -rf '+ROCM_PATH+'/rpp') + os.system('(cd '+deps_dir+'; git clone -b '+rppVersion+' https://github.com/GPUOpen-ProfessionalCompute-Libraries/rpp.git; cd rpp; mkdir build-'+backend+'; cd build-'+backend+'; ' + + linuxCMake+' -DBACKEND='+backend+' ../; make -j4; sudo make install)') + # Turn off for CentOS - TBD: TURN ON when RPP is supported on CentOS # else: # Nasm @@ -371,6 +454,7 @@ # os.system('(cd '+deps_dir+'/libjpeg-turbo-2.0.3; mkdir build; cd build; '+linuxCMake+' -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RELEASE -DENABLE_STATIC=FALSE -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/libjpeg-turbo-2.0.3 -DCMAKE_INSTALL_DEFAULT_LIBDIR=lib ..; make -j 4; sudo make install )') # RPP # os.system('(cd '+deps_dir+'; git clone -b '+rppVersion+' https://github.com/GPUOpen-ProfessionalCompute-Libraries/rpp.git; cd rpp; mkdir build; cd build; '+linuxCMake+' -DBACKEND=OCL ../; make -j4; sudo make install)') + # Install ffmpeg if ffmpegInstall == 'yes': if "Ubuntu" in platfromInfo: @@ -425,50 +509,19 @@ ' install ffmpeg ffmpeg-devel') elif "SLES" in platfromInfo: # FFMPEG-4 packages - os.system('sudo zypper ar -cfp 90 \'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_$releasever/Essentials\' packman-essentials') + os.system( + 'sudo zypper ar -cfp 90 \'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_$releasever/Essentials\' packman-essentials') os.system('sudo '+linuxFlag+' '+linuxSystemInstall+' '+linuxSystemInstall_check + ' install ffmpeg-4') - else: - # Yasm - os.system( - '(cd '+deps_dir+'; curl -O -L https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz )') - os.system('(cd '+deps_dir+'; tar xzvf yasm-1.3.0.tar.gz )') - os.system('(cd '+deps_dir+'/yasm-1.3.0; ./configure; make -j8 )') - os.system('sudo -v') - os.system('(cd '+deps_dir+'/yasm-1.3.0; sudo ' + - linuxFlag+' make install )') - # libx264 - os.system( - '(cd '+deps_dir+'; git clone --depth 1 https://code.videolan.org/videolan/x264.git )') - os.system( - '(cd '+deps_dir+'/x264; ./configure --enable-static --disable-opencl; make -j8 )') - os.system('sudo -v') - os.system('(cd '+deps_dir+'/x264; sudo ' + - linuxFlag+' make install )') - # libx265 - os.system('sudo '+linuxFlag+' '+linuxSystemInstall+' ' + - linuxSystemInstall_check+' install hg ') - os.system( - '(cd '+deps_dir+'; hg clone http://hg.videolan.org/x265 )') - os.system( - '(cd '+deps_dir+'/x265/build/linux; '+linuxCMake+' -G "Unix Makefiles" ../../source; make -j8 )') - os.system('sudo -v') - os.system('(cd '+deps_dir+'/x265/build/linux; sudo ' + - linuxFlag+' make install; sudo '+linuxFlag+' ldconfig )') - # libfdk_aac - os.system( - '(cd '+deps_dir+'; git clone https://github.com/mstorsjo/fdk-aac.git )') - os.system( - '(cd '+deps_dir+'/fdk-aac; autoreconf -fiv; ./configure --disable-shared; make -j8 )') - os.system('sudo -v') - os.system('(cd '+deps_dir+'/fdk-aac; sudo ' + - linuxFlag+' make install )') - # FFMPEG 4 - os.system('sudo -v') - os.system('(cd '+deps_dir+'/ffmpeg; sudo '+linuxFlag+' ldconfig )') - os.system('(cd '+deps_dir+'/ffmpeg; export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"; ./configure --enable-shared --disable-static --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libass --enable-gpl --enable-nonfree)') - os.system('(cd '+deps_dir+'/ffmpeg; make -j8 )') - os.system('sudo -v') - os.system('(cd '+deps_dir+'/ffmpeg; sudo ' + - linuxFlag+' make install )') + + # FFMPEG 4 from source -- for Ubuntu, CentOS 7, & RedHat 7 + if "Ubuntu" in platfromInfo or "centos-7" in platfromInfo or "redhat-7" in platfromInfo: + os.system('sudo -v') + os.system('(cd '+deps_dir+'/ffmpeg; sudo '+linuxFlag+' ldconfig )') + os.system('(cd '+deps_dir+'/ffmpeg; export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"; ./configure --enable-shared --disable-static --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libass --enable-gpl --enable-nonfree)') + os.system('(cd '+deps_dir+'/ffmpeg; make -j8 )') + os.system('sudo -v') + os.system('(cd '+deps_dir+'/ffmpeg; sudo ' + + linuxFlag+' make install )') + print("\nMIVisionX Dependencies Installed with MIVisionX-setup.py V-"+__version__+"\n") diff --git a/README.md b/README.md index ec29dabebc..e1da922e92 100644 --- a/README.md +++ b/README.md @@ -162,20 +162,20 @@ For the convenience of the developer, we here provide the setup script which wil **usage:** ``` - python MIVisionX-setup.py --directory [setup directory - optional (default:~/)] - --installer [Package management tool - optional (default:apt-get) [options: Ubuntu:apt-get;CentOS:yum]] - --opencv [OpenCV Version - optional (default:3.4.0)] - --miopen [MIOpen Version - optional (default:2.11.0)] - --miopengemm[MIOpenGEMM Version - optional (default:1.1.5)] - --protobuf [ProtoBuf Version - optional (default:3.12.0)] - --rpp [RPP Version - optional (default:0.7)] - --ffmpeg [FFMPEG Installation - optional (default:no) [options:yes/no]] - --rocal [MIVisionX rocAL Dependency Install - optional (default:yes) [options:yes/no]] - --neural_net[MIVisionX Neural Net Dependency Install - optional (default:yes) [options:yes/no]] - --reinstall [Remove previous setup and reinstall (default:no)[options:yes/no]] + python3 MIVisionX-setup.py --directory [setup directory - optional (default:~/)] + --opencv [OpenCV Version - optional (default:3.4.0)] + --miopen [MIOpen Version - optional (default:2.11.0)] + --miopengemm[MIOpenGEMM Version - optional (default:1.1.5)] + --protobuf [ProtoBuf Version - optional (default:3.12.0)] + --rpp [RPP Version - optional (default:0.7)] + --ffmpeg [FFMPEG Installation - optional (default:no) [options:yes/no]] + --rocal [MIVisionX rocAL Dependency Install - optional (default:yes) [options:yes/no]] + --neural_net[MIVisionX Neural Net Dependency Install - optional (default:yes) [options:yes/no]] + --reinstall [Remove previous setup and reinstall (default:no)[options:yes/no]] + --backend [MIVisionX Dependency Backend - optional (default:OCL) [options:OCL/HIP]] + --rocm_path [ROCm Installation Path - optional (default:/opt/rocm) - ROCm Installation Required] ``` **Note:** - * use `--installer yum` for **CentOS** * **ROCm upgrade** with `sudo apt upgrade` requires the setup script **rerun**. * use `X Window` / `X11` for [remote GUI app control](https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/wiki/X-Window-forwarding) @@ -235,7 +235,7 @@ macOS [build instructions](https://github.com/GPUOpen-ProfessionalCompute-Librar ``` ``` - python MIVisionX-setup.py + python3 MIVisionX-setup.py ``` **Note:** MIVisionX has support for two GPU backends: **OPENCL** and **HIP**: @@ -395,6 +395,7 @@ sudo docker run -it --device=/dev/kfd --device=/dev/dri --cap-add=SYS_RAWIO --de * Linux distribution + Ubuntu - `18.04` / `20.04` + CentOS - `7` / `8` + + SLES - `15-SP2` * ROCm: rocm-dkms - `4.2.0.40200-21` * rocm-cmake - [rocm-4.2.0](https://github.com/RadeonOpenCompute/rocm-cmake/releases/tag/rocm-4.2.0) * MIOpenGEMM - [1.1.5](https://github.com/ROCmSoftwarePlatform/MIOpenGEMM/releases/tag/1.1.5) @@ -403,7 +404,7 @@ sudo docker run -it --device=/dev/kfd --device=/dev/dri --cap-add=SYS_RAWIO --de * OpenCV - [3.4.0](https://github.com/opencv/opencv/releases/tag/3.4.0) * RPP - [0.7](https://github.com/GPUOpen-ProfessionalCompute-Libraries/rpp/releases/tag/0.7) * Dependencies for all the above packages -* MIVisionX Setup Script - `V1.9.8` +* MIVisionX Setup Script - `V1.9.9` ### Latest Release