Unverified Commit 0b2d11a5 by Tianqi Chen Committed by GitHub

[DOCS] Introduce how to add hardware backend to FAQ (#4898)

parent 13140916
...@@ -19,4 +19,4 @@ tvm.target ...@@ -19,4 +19,4 @@ tvm.target
---------- ----------
.. automodule:: tvm.target .. automodule:: tvm.target
:members: :members:
:imported-members: :imported-members:
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
specific language governing permissions and limitations specific language governing permissions and limitations
under the License. under the License.
.. _relay-bring-your-own-codegen:
============================= =============================
Bring Your Own Codegen To TVM Bring Your Own Codegen To TVM
============================= =============================
......
<!--- Licensed to the Apache Software Foundation (ASF) under one --> .. Licensed to the Apache Software Foundation (ASF) under one
<!--- or more contributor license agreements. See the NOTICE file --> or more contributor license agreements. See the NOTICE file
<!--- distributed with this work for additional information --> distributed with this work for additional information
<!--- regarding copyright ownership. The ASF licenses this file --> regarding copyright ownership. The ASF licenses this file
<!--- to you under the Apache License, Version 2.0 (the --> to you under the Apache License, Version 2.0 (the
<!--- "License"); you may not use this file except in compliance --> "License"); you may not use this file except in compliance
<!--- with the License. You may obtain a copy of the License at --> with the License. You may obtain a copy of the License at
<!--- http://www.apache.org/licenses/LICENSE-2.0 --> .. http://www.apache.org/licenses/LICENSE-2.0
<!--- Unless required by applicable law or agreed to in writing, --> .. Unless required by applicable law or agreed to in writing,
<!--- software distributed under the License is distributed on an --> software distributed under the License is distributed on an
<!--- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY --> "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
<!--- KIND, either express or implied. See the License for the --> KIND, either express or implied. See the License for the
<!--- specific language governing permissions and limitations --> specific language governing permissions and limitations
<!--- under the License. --> under the License.
Frequently Asked Questions Frequently Asked Questions
========================== ==========================
This document contains frequently asked questions.
How to Install How to Install
-------------- --------------
See [Installation](http://docs.tvm.ai/install/) See :ref:`installation`.
How to add a new Hardware Backend
---------------------------------
- If the hardware backend has LLVM support,
then we can directly generate the code by setting the correct target triple as in :py:mod:`~tvm.target`.
- If the target hardware is a GPU, try to use the cuda, opencl or vulkan backend.
- If the target hardware is a special accelerator,
checkout :ref:`vta-index` and :ref:`relay-bring-your-own-codegen`.
- For all of the above cases, You may want to add target specific
optimization templates using AutoTVM, see :ref:`tutorials-autotvm-sec`.
- Besides using LLVM's vectorization, we can also embed micro-kernels to leverage hardware intrinsics,
see :ref:`tutorials-tensorize`.
TVM's relation to Other IR/DSL Projects TVM's relation to Other IR/DSL Projects
--------------------------------------- ---------------------------------------
...@@ -41,9 +57,8 @@ end-to-end compilation stack. ...@@ -41,9 +57,8 @@ end-to-end compilation stack.
TVM's relation to libDNN, cuDNN TVM's relation to libDNN, cuDNN
------------------------------ -------------------------------
TVM can incorporate these libraries as external calls. One goal of TVM is to be able to TVM can incorporate these libraries as external calls. One goal of TVM is to be able to
generate high-performing kernels. We will evolve TVM an incremental manner as generate high-performing kernels. We will evolve TVM an incremental manner as
we learn from the techniques of manual kernel crafting and add these as primitives in DSL. we learn from the techniques of manual kernel crafting and add these as primitives in DSL.
See also [TVM Operator Inventory](https://github.com/apache/incubator-tvm/tree/master/topi) for See also top for recipes of operators in TVM.
recipes of operators in TVM.
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
specific language governing permissions and limitations specific language governing permissions and limitations
under the License. under the License.
.. _installation:
Installation Installation
============ ============
To install TVM, please read :ref:`install-from-source`. To install TVM, please read :ref:`install-from-source`.
......
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
specific language governing permissions and limitations specific language governing permissions and limitations
under the License. under the License.
.. _vta-index:
VTA: Deep Learning Accelerator Stack VTA: Deep Learning Accelerator Stack
==================================== ====================================
...@@ -50,4 +52,4 @@ Literature ...@@ -50,4 +52,4 @@ Literature
- Read the VTA tech report: `An Open Hardware Software Stack for Deep Learning`_. - Read the VTA tech report: `An Open Hardware Software Stack for Deep Learning`_.
.. _release blog post: https://tvm.apache.org/2018/07/12/vta-release-announcement .. _release blog post: https://tvm.apache.org/2018/07/12/vta-release-announcement
.. _An Open Hardware Software Stack for Deep Learning: https://arxiv.org/abs/1807.04188 .. _An Open Hardware Software Stack for Deep Learning: https://arxiv.org/abs/1807.04188
\ No newline at end of file
Auto tuning .. _tutorials-autotvm-sec:
-------------
Auto tuning
-----------
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
# specific language governing permissions and limitations # specific language governing permissions and limitations
# under the License. # under the License.
""" """
.. _tutorials-tensorize:
Use Tensorize to Leverage Hardware Intrinsics Use Tensorize to Leverage Hardware Intrinsics
============================================= =============================================
**Author**: `Yizhi Liu <https://github.com/yzhliu>`_ **Author**: `Yizhi Liu <https://github.com/yzhliu>`_
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment