Dougalll opened a new issue, #11182:
URL: https://github.com/apache/tvm/issues/11182

   here as the ApacheTVM site will not allow links.
   **Computer**
   I’m running on Ubuntu 18.04 LTS. Windows is not possible for me as I do not 
have access to Visual studio Enterprise 2019 and most of the download websites 
are blocked by my companies firewall. My Ubuntu 18.04 LTS has no restrictions. 
I want to test deployment onto Xilinx FPGAs.
   **Why I’m evaluating Apache TVM**
   I’m looking for a tool to port trained machine learning onto various targets 
including FPGAs, and Apache TVM:
   •    Has a lot of relevant major companies backing it
   •    Has a lot of active current contributors on GIT 
   •    Aims to solve many of the problems we are interested in
   •    Claims to support pipelining and parallelism, so implementing a CNN 
with parallel units in each layer and a pipeline stage for each CNN layer may 
be possible.
   •    Has a stage which optimises CNN layers by combining them were possible
   **The good**
   The only thing that I have got to work is compiling the V8 code from the 
website:
   https://tvm.apache.org/download
   Following the instructions in the page
   https://tvm.apache.org/docs/install/from_source.html
   **Proposal 1**
   Page:
   https://tvm.apache.org/docs/install/from_source.html
   Is too complex becuase there are many different options and some such as 
conda are not chronological on the page. I propose providing a page like this:
   https://tlcpack.ai/
   With options for:
   •    Windows Mac Linux
   •    Development, source, docker, docker prebuilt
   •    Conda pip source
   •    Options for the common flags that are likely be changed
   •    etc
   Use the options to write a script file with a set of chronological commands 
to install Apache TVM, with comments stating what is happening.
   The script file has the benefit that they can be run as part of a nightly 
build to verify that the various software builds compile. The builds provide 
versions of TVM that can be used to verify the commands in the tutorials. The 
tutorials should be run as part of the nightly build. These tests, which 
consist of builds followed by tutorial tests, can all be run in parallel on 
different virtual machines.
   **Problem 1 Hello world does not work (The first TVM command in the first 
tutorial)**
   Successfully installing the v0.8 from the https://tvm.apache.org/download 
tvm (Ubuntu 18.04.6 LTS, x64, no GPU, with LLVM, miniconda)
   To familiarise myself with Apache TVM I decided to run the  tutorial.
   The onnx download works, but the first line running ApacheTVM fails, so I 
can’t get past the first tvm  step in the first tutorial. It appears that the 
example onnx example is too a message. Error output:
   
   https://tvm.apache.org/docs/install/from_source.html
   
   wget 
https://github.com/onnx/models/raw/main/vision/classification/resnet/model/resnet50-v2-7.onnx
   
   (tvm-build) dlaod@dlaod-HP:~/apachetvm/apache-tvm-src-v0.8.0.rc0$ tvmc 
compile \
   > --target "llvm" \
   > --output resnet50-v2-7-tvm.tar \
   > resnet50-v2-7.onnx
   [13:57:32] 
/home/dlaod/apachetvm/apache-tvm-src-v0.8.0.rc0/src/target/target_kind.cc:164: 
Warning: Unable to detect CUDA version, default to "-mcpu=sm_20" instead
   [13:57:32] 
/home/dlaod/apachetvm/apache-tvm-src-v0.8.0.rc0/src/target/target_kind.cc:190: 
Warning: Unable to detect ROCm compute arch, default to "-mcpu=gfx900" instead
   [13:57:32] 
/home/dlaod/apachetvm/apache-tvm-src-v0.8.0.rc0/src/target/target_kind.cc:204: 
Warning: Unable to detect ROCm version, assuming >= 3.5
   [13:57:32] 
/home/dlaod/apachetvm/apache-tvm-src-v0.8.0.rc0/src/target/target_kind.cc:164: 
Warning: Unable to detect CUDA version, default to "-mcpu=sm_20" instead
   [13:57:32] 
/home/dlaod/apachetvm/apache-tvm-src-v0.8.0.rc0/src/target/target_kind.cc:190: 
Warning: Unable to detect ROCm compute arch, default to "-mcpu=gfx900" instead
   [13:57:32] 
/home/dlaod/apachetvm/apache-tvm-src-v0.8.0.rc0/src/target/target_kind.cc:204: 
Warning: Unable to detect ROCm version, assuming >= 3.5
   [libprotobuf ERROR google/protobuf/io/coded_stream.cc:207] A protocol 
message was rejected because it was too big (more than 67108864 bytes).  To 
increase the limit (or to disable these warnings), see 
CodedInputStream::SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.
   Traceback (most recent call last):
     File "/home/dlaod/.local/bin/tvmc", line 33, in <module>
       sys.exit(load_entry_point('tvm==0.8.0', 'console_scripts', 'tvmc')())
     File 
"/home/dlaod/.local/lib/python3.6/site-packages/tvm-0.8.0-py3.6-linux-x86_64.egg/tvm/driver/tvmc/main.py",
 line 94, in main
       sys.exit(_main(sys.argv[1:]))
     File 
"/home/dlaod/.local/lib/python3.6/site-packages/tvm-0.8.0-py3.6-linux-x86_64.egg/tvm/driver/tvmc/main.py",
 line 87, in _main
       return args.func(args)
     File 
"/home/dlaod/.local/lib/python3.6/site-packages/tvm-0.8.0-py3.6-linux-x86_64.egg/tvm/driver/tvmc/compiler.py",
 line 137, in drive_compile
       tvmc_model = frontends.load_model(args.FILE, args.model_format, 
args.input_shapes)
     File 
"/home/dlaod/.local/lib/python3.6/site-packages/tvm-0.8.0-py3.6-linux-x86_64.egg/tvm/driver/tvmc/frontends.py",
 line 404, in load_model
       mod, params = frontend.load(path, shape_dict, **kwargs)
     File 
"/home/dlaod/.local/lib/python3.6/site-packages/tvm-0.8.0-py3.6-linux-x86_64.egg/tvm/driver/tvmc/frontends.py",
 line 169, in load
       model = onnx.load(path)
     File "/home/dlaod/.local/lib/python3.6/site-packages/onnx/__init__.py", 
line 115, in load_model
       model = load_model_from_string(s, format=format)
     File "/home/dlaod/.local/lib/python3.6/site-packages/onnx/__init__.py", 
line 152, in load_model_from_string
       return _deserialize(s, ModelProto())
     File "/home/dlaod/.local/lib/python3.6/site-packages/onnx/__init__.py", 
line 95, in _deserialize
       decoded = cast(Optional[int], proto.ParseFromString(s))
   google.protobuf.message.DecodeError: Error parsing message
   (tvm-build) dlaod@dlaod-HP:~/apachetvm/apache-tvm-src-v0.8.0.rc0$ 
   
   **Problem 2 Docker does not build with conda**
   I thought I’d try a second build of Apache TVM to see if it would run, but 
Apache TVM will not build.
   Building docker does not work, even though I have the correct python version 
because conda has the wrong python version.
   Install conda as recommended in 
   
   https://tvm.apache.org/docs/install/from_source.html
   
   (without the following activate tline it says that everything is upto date, 
but the tutorial fails)
   
   Conda activate tvm-build
   
   https://tlcpack.ai/
   states v0.8 Linux Conda No cuda
   
   conda install tlcpack -c tlcpack
   
   without conda my python is 3.7.11
   in conda my python is 3.10.4
   
   error message running
   
   
   (tvm-build) dlaod@dlaod-HP:~/apachetvm/docker/conda$ conda install tlcpack 
-c tlcpack
   Collecting package metadata (current_repodata.json): done
   Solving environment: failed with initial frozen solve. Retrying with 
flexible solve.
   Solving environment: failed with repodata from current_repodata.json, will 
retry with next repodata source.
   Collecting package metadata (repodata.json): done
   Solving environment: failed with initial frozen solve. Retrying with 
flexible solve.
   Solving environment: | 
   Found conflicts! Looking for incompatible packages.
   This can take several minutes.  Press CTRL-C to abort.
   failed                                                                       
                                                                                
                                              
   
   UnsatisfiableError: The following specifications were found
   to be incompatible with the existing python installation in your environment:
   
   Specifications:
   
     - tlcpack -> python[version='>=3.6,<3.7.0a0|>=3.8,<3.9.0a0|>=3.7,<3.8.0a0']
   
   Your python: python=3.10
   
   If python is on the left-most side of the chain, that's the version you've 
asked for.
   When python appears to the right, that indicates that the thing on the left 
is somehow
   not available for the python version you are constrained to. Note that conda 
will not
   change your python version to a different minor version unless you 
explicitly specify
   that.
   
   The following specifications were found to be incompatible with your system:
   
     - feature:/linux-64::__glibc==2.27=0
     - feature:|@/linux-64::__glibc==2.27=0
   
   Your installed version is: 2.27
   
   
   (tvm-build) dlaod@dlaod-HP:~/apachetvm/docker/conda$ python --version
   Python 3.10.4
   (tvm-build) dlaod@dlaod-HP:~/apachetvm/docker/conda$
   
   **Problem 3 Docker NO conda**
   In v8 dir 
   docker ci_cpu
   states this script does not work in python 3.6 the minimum is 3.7. The 
python installed on the computer is 3.7.11. The python being downloaded as part 
of the docker computer is 3.6.
   Selecting previously unselected package python3.6-dev.
   Preparing to unpack .../07-python3.6-dev_3.6.9-1~18.04ubuntu1.7_amd64.deb ...
   Unpacking python3.6-dev (3.6.9-1~18.04ubuntu1.7) ...
   Selecting previously unselected package python3-dev.
   Preparing to unpack .../08-python3-dev_3.6.7-1~18.04_amd64.deb ...
   Unpacking python3-dev (3.6.7-1~18.04) ...
   Selecting previously unselected package python3-pkg-resources.
   Preparing to unpack .../09-python3-pkg-resources_39.0.1-2_all.deb ...
   Unpacking python3-pkg-resources (39.0.1-2) ...
   Selecting previously unselected package python3-setuptools.
   Preparing to unpack .../10-python3-setuptools_39.0.1-2_all.deb ...
   Unpacking python3-setuptools (39.0.1-2) ...
   Setting up python3-pkg-resources (39.0.1-2) ...
   Setting up libexpat1-dev:amd64 (2.2.5-3ubuntu0.7) ...
   Setting up python3-lib2to3 (3.6.9-1~18.04) ...
   Setting up python3-distutils (3.6.9-1~18.04) ...
   Setting up libpython3.6:amd64 (3.6.9-1~18.04ubuntu1.7) ...
   Setting up libpython3.6-dev:amd64 (3.6.9-1~18.04ubuntu1.7) ...
   Setting up python3-setuptools (39.0.1-2) ...
   Setting up python3.6-dev (3.6.9-1~18.04ubuntu1.7) ...
   Setting up dh-python (3.20180325ubuntu2) ...
   Setting up libpython3-dev:amd64 (3.6.7-1~18.04) ...
   Setting up python3-dev (3.6.7-1~18.04) ...
   Processing triggers for libc-bin (2.27-3ubuntu1.5) ...
   ERROR: This script does not work on Python 3.6 The minimum supported Python 
version is 3.7. Please use https://bootstrap.pypa.io/pip/3.6/get-pip.py instead.
   The command '/bin/sh -c bash /install/ubuntu1804_install_python.sh' returned 
a non-zero code: 1
   ERROR: docker build failed.
   (base) dlaod@dlaod-HP:~/apachetvm/apache-tvm-src-v0.8.0.rc0$ python --version
   Python 3.7.11
   (base) dlaod@dlaod-HP:~/apachetvm/apache-tvm-src-v0.8.0.rc0$
   
   **Problem 4 Docker images are not available**
   I thought I’d try a third build of Apache TVM to see if it would run, but 
Apache TVM will not build.
   This is external really, but the downloads of the prebuilt docker do not 
work.
   
   https://hub.docker.com/r/tlcpack/ci-cpu
   
   (base) dlaod@dlaod-HP:~/apachetvm/docker/prebuilt$ docker pull tlcpack/ci-cpu
   Using default tag: latest
   Error response from daemon: manifest for tlcpack/ci-cpu:latest not found: 
manifest unknown: manifest unknown
   (base) dlaod@dlaod-HP:~/apachetvm/docker/prebuilt$ 
   
   **Problem 5 Docker for Vitis does not work**
   As the introduction does not work I thought I’d skip the introduction and go 
straight to FPGA synthesis. Again the docker build does not work, but in a 
different way. Apache TVM document:
   •    tvm/docs/how_to/deploy/vitis_ai.rst
   But 'https://apt.kitware.com/ubuntu bionic InRelease' is not signed or the 
public key cannot be obtained.
   
   tvm$ ./docker/build.sh demo_vitis_ai bash
   
   (base) dlaod@dlaod-HP:~/apachetvm/vitis/tvm$ ./docker/build.sh demo_vitis_ai 
bash 
   Using default context path: /home/dlaod/apachetvm/vitis/tvm/docker
   WORKSPACE: /home/dlaod/apachetvm/vitis/tvm/docker/../
   CI_DOCKER_EXTRA_PARAMS: 
   COMMAND: bash --allow-unauthenticated
   CONTAINER_TYPE: demo_vitis_ai
   BUILD_TAG: tvm
   DOCKER CONTAINER NAME: tvm.demo_vitis_ai
   DOCKER_IMAGE_TAG: latest
   DOCKER_IMG_SPEC: tvm.demo_vitis_ai:latest
   
   Building container (tvm.demo_vitis_ai)...
   Sending build context to Docker daemon    235kB
   Step 1/19 : FROM xilinx/vitis-ai:1.4.916
    ---> a325686c45a3
   Step 2/19 : RUN apt-get update --fix-missing
    ---> Running in f5acf8b929e9
   Get:1 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB]
   Get:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]    
  
   Get:3 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]  
  
   Get:4 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]  
  
   Get:5 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages [1,344 kB] 
  
   Get:6 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [11.3 
MB]
   Get:7 http://ppa.launchpad.net/timsc/opencv-3.4/ubuntu bionic InRelease 
[15.9 kB]
   Get:8 http://archive.ubuntu.com/ubuntu bionic/restricted amd64 Packages 
[13.5 kB]
   Get:9 http://archive.ubuntu.com/ubuntu bionic/multiverse amd64 Packages [186 
kB]
   Get:10 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 
Packages [29.8 kB]
   Get:11 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages 
[3,167 kB]
   Get:12 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic 
InRelease [20.8 kB]
   Get:13 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 
Packages [2,272 kB]
   Get:14 http://archive.ubuntu.com/ubuntu bionic-updates/restricted amd64 
Packages [942 kB]
   Get:15 http://archive.ubuntu.com/ubuntu bionic-backports/universe amd64 
Packages [12.9 kB]
   Get:16 http://archive.ubuntu.com/ubuntu bionic-backports/main amd64 Packages 
[12.2 kB]
   Get:17 https://apt.kitware.com/ubuntu bionic InRelease [11.0 kB]             
  
   Get:18 http://ppa.launchpad.net/timsc/opencv-3.4/ubuntu bionic/main amd64 
Packages [11.1 kB]
   Get:19 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 
Packages [21.1 kB]
   Get:20 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 
Packages [1,496 kB]
   Err:17 https://apt.kitware.com/ubuntu bionic InRelease                       
  
     The following signatures couldn't be verified because the public key is 
not available: NO_PUBKEY 6AF7F09730B3F0A4
   Get:21 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages 
[2,732 kB]
   Get:22 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main 
amd64 Packages [50.4 kB]
   Get:23 http://security.ubuntu.com/ubuntu bionic-security/restricted amd64 
Packages [909 kB]
   Reading package lists... Done                                                
  
   W: GPG error: https://apt.kitware.com/ubuntu bionic InRelease: The following 
signatures couldn't be verified because the public key is not available: 
NO_PUBKEY 6AF7F09730B3F0A4
   E: The repository 'https://apt.kitware.com/ubuntu bionic InRelease' is not 
signed.
   N: Updating from such a repository can't be done securely, and is therefore 
disabled by default.
   N: See apt-secure(8) manpage for repository creation and user configuration 
details.
   The command '/bin/sh -c apt-get update --fix-missing' returned a non-zero 
code: 100
   ERROR: docker build failed.
   (base) dlaod@dlaod-HP:~/apachetvm/vitis/tvm$ ./docker/build.sh demo_vitis_ai 
bash 
   
   tried:
   
   sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 
6AF7F09730B3F0A4
   then rerunning ./docker/build.sh demo_vitis_ai bash 
   
   sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 30B3F0A4
   then rerunning ./docker/build.sh demo_vitis_ai bash 
   
   sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 
6AF7F09730B3F0A4
   then rerunning ./docker/build.sh demo_vitis_ai bash 
   
   sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 
30B3F0A4
   then rerunning ./docker/build.sh demo_vitis_ai bash 
   
   And some other versions of the above. They day the key exists and is not 
updated
   
   
   wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 
2>/dev/null | gpg --dearmor - | sudo tee 
/usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
   sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 
7EA0A9C3F273FCD8
   sudo apt-get update
   then rerunning ./docker/build.sh demo_vitis_ai bash 
   
   
   
   
   adding
   /etc/apt/apt.conf.d/99myown
   with line 
   APT::Get::AllowUnauthenticated "true";
   then rerunning ./docker/build.sh demo_vitis_ai bash 
   
   
   
   apt-get update --allow-unauthenticated
   then rerunning ./docker/build.sh demo_vitis_ai bash 
   
   sudo apt-get update --allow-insecure-repositories
   then rerunning ./docker/build.sh demo_vitis_ai bash 
   
   tried modifiying 
   apps/microtvm/reference-vm/zephyr/base-box/base_box_setup.sh
   docker/install/ubuntu_install_zephyr.sh
   but the code is not run
   
   **Proposal 2**
   I recommend verifying all the above in nightly build script files on blank 
virtual machines, so problems can be identified as they occur:
   •    External dependencies can mean that https://tvm.apache.org/download 
works one day and fails the next, and needs to be fixed.
   •    Blank virtual machines mean that the build is not dependant on things 
that have previously been manually fixed and forgotten to be added to the 
script files.
   •    I believe that Jenkins can schedule things like this for you and many 
other combinations of  tools and script files.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to