84 lines
2.9 KiB
ReStructuredText
84 lines
2.9 KiB
ReStructuredText
.. Licensed to the Apache Software Foundation (ASF) under one
|
|
or more contributor license agreements. See the NOTICE file
|
|
distributed with this work for additional information
|
|
regarding copyright ownership. The ASF licenses this file
|
|
to you under the Apache License, Version 2.0 (the
|
|
"License"); you may not use this file except in compliance
|
|
with the License. You may obtain a copy of the License at
|
|
|
|
.. http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
.. Unless required by applicable law or agreed to in writing,
|
|
software distributed under the License is distributed on an
|
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
KIND, either express or implied. See the License for the
|
|
specific language governing permissions and limitations
|
|
under the License.
|
|
|
|
.. _docker-images:
|
|
|
|
Docker Images
|
|
=============
|
|
We provide docker utility scripts to help developers to setup development environment.
|
|
They are also helpful run through TVM demo and tutorials.
|
|
We need `docker <https://docs.docker.com/engine/installation/>`_ and
|
|
`NVIDIA Container Toolkit <https://github.com/NVIDIA/nvidia-container-toolkit>`_
|
|
if we want to use CUDA.
|
|
|
|
Get a tvm source distribution or clone the GitHub repo to get the auxiliary scripts
|
|
|
|
.. code:: bash
|
|
|
|
git clone --recursive https://github.com/apache/tvm tvm
|
|
|
|
|
|
We can then use the following command to launch a docker image.
|
|
|
|
.. code:: bash
|
|
|
|
/path/to/tvm/docker/bash.sh <image-name>
|
|
|
|
Here the image-name can be a local docker image name, e.g. ``tvm.ci_cpu`` after you have done the local build.
|
|
|
|
This auxiliary script does the following things:
|
|
|
|
- Mount current directory to ``/workspace``
|
|
- Switch user to be the same user that calls the ``bash.sh`` (so you can read/write host system)
|
|
- Use the host-side network on Linux. Use the bridge network and expose port 8888 on macOS,
|
|
because host networking driver isn't supported. (so you can use ``jupyter notebook``)
|
|
|
|
|
|
Then you can start a Jupyter notebook by typing
|
|
|
|
.. code:: bash
|
|
|
|
jupyter notebook
|
|
|
|
You might see an error ``OSError: [Errno 99] Cannot assign requested address`` when starting
|
|
a Jupyter notebook on macOS. You can change the binding IP address by
|
|
|
|
.. code:: bash
|
|
|
|
jupyter notebook --ip=0.0.0.0
|
|
|
|
Note that on macOS, because ``bash.sh`` uses the Docker bridge network, Jupyter will be reportedly running
|
|
at an URL like ``http://{container_hostname}:8888/?token=...``. You should replace the ``container_hostname``
|
|
with ``localhost`` when pasting it into browser.
|
|
|
|
|
|
Docker Source
|
|
-------------
|
|
Check out `the docker source <https://github.com/apache/tvm/tree/main/docker>`_ if you are interested in
|
|
building your own docker images.
|
|
|
|
|
|
Run the following command to build the docker image.
|
|
|
|
.. code:: bash
|
|
|
|
/path/to/tvm/docker/build.sh <image-name>
|
|
|
|
|
|
You can find some un-official third party pre-built images at `<https://hub.docker.com/r/tlcpack/>`_.
|
|
These images are used for test purposes and are NOT of the ASF release.
|